首先我们简单看一下什么是 DevOps,这个词从何而来。我在这里把 DevOps 发展历史分为三个阶段:诞生期、定义期和落地期
DevOps 的“祖师爷”是比利时一名独立 IT 咨询师 Patrick Debois。2007 年, 他负责一个大型项目的测试和验证工作,一边和开发对接测试代码,一边和运维对接 “发版”。他发现项目组里的开发和运维两个角色的思维方式差异巨大,一边希望“快快快”,一边希望“稳稳稳”,这让他有点崩溃。
在 2008 Agile Conference 大会上,Patrick 遇到了 Andrew,两个人一拍即 合,开始琢磨如何改变这种 Dev 和 Ops 水火不容的现状。
2009 年 10 月,Patrick 通过 Twitter 召集开发工程师和运维工程师在比利时根 特市举办了首届“DevOpsDays”大会,开始大规模讨论 Dev 和 Ops 的协作话题。 后来为了便于传播“DevOpsDays”被缩写为“DevOps”。
在 2009 年以后,DevOps 开始火遍全球。2010 年,The Agile Admin 博客发表文章《What is DevOps》,详细阐述了 DevOps 的定义,包括一系列价值观、原则、方法、实践以及对应的工具。
同样是 2010 年,《持续交付》的作者 Jez Humble 出席第二届的 DevOpsDays大会,并做了“持续交付”的演讲。这是非常重要的里程碑,可以说《持续交付》这本书就是 DevOps 的最佳实践,以至于国内搞研发效能的同学人手一本。也正是这本书,加速了业界对 DevOps 的理解以及落地。
但我认为业界真正开始大规模落地 DevOps,还是不能离开容器化技术的功劳。“Docker”起到了决定性作用,通过编Dockerfile,第一次可以让开发者轻松定义软件运行环境,并且能通过 CI/CD 标准化流程去交付它。不过这么多容器运维起来仍然麻烦,于是 google 在 2014 年开源“k8s”(Kubernetes);2015 年 CNCF(Cloud Native Computing Foundation 云原生计算基金会)成立,正式将“k8s”作为核心,建立了一个巨大的生态系统。有了“docker”和“k8s”技术上助力,加速了开发和运维角色的融合,于是 DevOps 不再是空中楼阁。
回顾完历史,我们对照下自身,通过三个小问题来看看自己的团队是不是已经是“DevOps”了。
- 我每次写完代码都可以部署生产环境,不需要别人帮助。
- 有很多监控、运维工具可以任我使用,轻松处理线上各种问题和故障。
- 我直接为线上用户的体验负责,不管是代码缺陷还是运维故障,自己搞的自己背锅。
以上我三个问题,其实分别涉及到了 DevOps 最重要的三个方面,做法、工具、文化,这三者缺一不可。
学习更多编程知识与技巧,关注与私信博主(学习)!
热爱学习和渴望进阶的小伙伴,DevOps学习路线、笔记、面试题,免费分享!