
关注我,每天收获一个新技能!
“DevOps ”从其诞生开始,就是一个非常不清晰的“概念”。即便提出 DevOps 概念的 Patrick Debois , 以及他与《DevOps 实践指南》合著者Gene Kim , Jez Humble 和 John Willis 在他们自己写的书中也没有DevOps的定义。因为他们四人也没有达成一致。




从左到右分别是:Patrick Debois, Jez Humble, Gene Kim,John Willis
我在2017年DevOpsDay (上海)大会上也问了 Patrick Debois 这个问题,他说:“让子弹飞一会儿吧~ DevOps 并不是我的,让它去进化吧~"而且,各大公司都对其进行了不同的阐述。当然,我们不排除各大公司为了售卖其云产品的目的而作出的“阐述”。 人:如果说,Agile 的使用者包含了【产品经理,项目经理,研发&测试,团队 Leader】,那么,DevOps 把【运维】【决策者】这个角色也引入了进来。事:如果说,Agile 的方法论集中在了【项目管理】【产品管理】【团队管理】【软件研发】,那么,DevOps 补充了【产品运维】【客户管理】。流程:如果说,Agile 对于生产线的流程是【协同作战】,那么,DevOps 在这个流程之上,注重了【闭环】。 要点:如果说,Agile 的核心在于【团队协同】,那么,DevOps 的核心在于【自动化】【文化】【评估】【共享】。软件行业仍旧是一个”大量的知识工作者大规模协作“的手工行业,例如,每个产品经理和软件工程师每天都在生产着不同的“零件”,并需要持续不断地将这些手工作品组装在一起,最终不断地推向客户/用户。所以,以什么样的方式来组织众多知识工作者一起协调高效地工作,仍旧是IT行业一直在解决的问题,这个问题从1970年 瀑布开发模式提出来时就存在了。既然是这样,那么,从”人“ 的角度来讨论 DevOps ,就是一个必选项。这是一个全链路,所以,当组织在引入”DevOps“ 这一概念,来驱动组织进化时,就必须将”DevOps“ 对全链路所涉及的员工进行解释。那么从哪里开始解释呢?一是从组织角度来解释它的必要性,二是从角色/岗位角色来解释它的必要性,以及对各角色的预期改变。否则,它就会变成【唱高调,提出正确的废话】,对于员工来说,根本无法体会。所以,一定要对员工解释:公司或组织正在通过 DevOps 进行组织进化,因此,对员工的行为有什么预期,对员工的工作成果有什么预期,这些预期对于员工个人来说,在上面的几个维度都意味着什么?在一个团队里,最了解团队业务的人应该是 Leader。同时,也应该是最了解每个团队成员能力,最熟悉所使用的工具,最了解系统架构的人。同时,也应该比团队成员更加深入的理解:什么是DevOps?在理解 DevOps 的时候,需要从CALMS 五个角度去理解 DevOps,这也是 DevOps 的核心文化 Culture
自动化 Automation
精益 Lean
评估 Measurement
共享 Sharing
这五个核心,根据不同的团队规模,有着不同的执行方法论,Leader 需要根据自身情况而定。然而,普及 DevOps 的时候,一定要抓住这五个核心。
从决策者的角度理解 DevOps
身为决策者,需要了解 DevOps 能为企业带来什么,不能带来什么。Puppet 将 DevOps 的获益归纳为了如下4类,我们再把这4类联系到企业核心要素中。由此看出,DevOps 本身不会【直接提升】某个业务或者某个产品的价值,DevOps 提升的是企业的生产效率,从而有可能提升企业在市场上的竞争力。
决策者若想引入,如何去做?
如果想要通过 DevOps 提升【企业竞争力】,推荐决策者根据如下的顺序进行决策。
判断时机
找出问题点,选择实施顺序
自上而下推广
提供资源,调整架构
评估结果,给予肯定
结果不理想,分析原因,持续改进