Welcome

首页 / 软件开发 / 数据结构与算法 / DevOps不等于ChefPuppet

DevOps不等于ChefPuppet2014-03-29 infoq 阮志敏DevOps是一个热词,但是毫无疑问,也是未来的趋势(注1)。高效率的IT组织常常贴着DevOps的标 签,是人们讨论的焦点和学习的对象。2009年时,人人都在讨论如何像Flickr一样一天内完成十几次的 部署(注2)。今天,人人都谈论如何像Netflix/Pinterest一样基于云基础设施构建大规模、高可用、 可伸缩的服务(注3)。

如何才能实现DevOps呢?很多人会不假思索地告诉你,使用Chef/Puppet,你就能实现DevOps。于是 ,DevOps变成了一个简单的问题,选择Chef还是Puppet。这并不奇怪,在开源软件盛行的今天,各种软 件声称自己是DevOps工具,而人们通常不会去思考一项新技术或者新思路背后的缘由,人们需要的是 “银弹”。

如同Agile,把DevOps等同于工具层面的Chef/Puppet,是错误的,会严重束缚人们的思维。在国内 Cloud Native应用开发时代即将开启的今天,充分认识DevOps是很有必要的(注4)。

(一)DevOps不仅仅是工具

DevOps是Agile的延伸,Ailge依靠Dev & Biz部门紧密协作,通过增量交付的方式来解决需求多 变的难题。DevOps则进一步延伸到IT运维,通过Dev & Ops的紧密协作提高软件交付的质量和频率。 人的重要性大于流程,流程的重要性大于工具。这个结论适应于Agile, 也同样适用于DevOps。工具带来 的影响是短期的和片面的,流程和人所产生的影响是长期的和全面的。

事实上,大部分人都知道这个道理,只是在潜意识中仍然把DevOps当成Chef/Puppet等工具。建设 DevOps的正确步骤应该是充分理解DevOps的原则,认真分析自身需求和条件,选择正确的方法和流程, 最后才是选择或构建适当的工具。Learn By Example仍然是学习和建设DevOps的重要途径。在今后的各 种会议上,分享DevOps经验会越来越多。我们应该不仅仅关注讲演中提到的工具,更要多关注流程、组 织结构和文化方面的分享。

DevOps不仅仅是工具,即便是工具,其也是建设DevOps所需工具链中的可选工具。

(二)Chef/Puppet只是DevOps工具链中的可选工具

DevOps目的是打造标准化的、可重复的、完全自动化的Delivery Pipeline, 其范围涵盖需求,设计 ,开发,构建,部署,测试和发布。除了需求、设计和开发外,其他的四个步骤都是可以自动化的。自 动化是提高可测试性,一致性,稳定性和交付频率的核心。

下图来自IBM Agile, ITITL, Cloud How DevOps brings it all together 。该图非常清晰地解释 DevOps如何实现交付的自动化(注5)。