原文链接:https://devops.com/elusive-definition-devops
你是如何定义DevOps的?如果你向其他的IT专家们请教,你能确保所获得的答案是相同的吗?
在大多数情况下,对于这个问题的答案是“不”。DevOps,不论它现在变的多么流行,仍然缺少一个被广泛认可的定义。在大多数对DevOps的解释当中,有几个基本原则,比如效率、协作和改善沟通。然而,当涉及到细节问题以及DevOps如何实现软件发布过程时,就会出现很大的差异。
最近,Clutch,一家研究B2B的公司,进行了一项调查,来评估IT专业人员对DevOps的知识与观点。所得到的信息证明了对DevOps广泛的定义仍然是模糊的,但是这种情况不会阻碍企业去进行DevOps的实施。
Clutch给受访者四种来自于不同组织的不同的定义,让他们从中选择出,他们认为最好的DevOps定义。
Wikipedia的定义记录与2016年11月,获得了最多的35%的认可。它的内容“DevOps … 是一种文化、运动或者实践,强调软件开发人员与其他(IT)专业人员在进行自动化软件发布流程和基础设施变更时的协作与沟通,”
Rackspace,HP和AWS所提供的定义分别获得了24%、21%和20的支持。他们的定义强调了与Wikipedia定义的不同点或者排除的因素,你可以在Clutch的报告中读到他们的内容(如下)。
- Rackspace:DevOps是一种运维方式…将开发和运维团队进行结合,通过自动化和标准化的流程进行基础架构的部署。
- HP:DevOps的最佳定义是作为包含很多基础原则和语言的学说或者思想…基于敏捷软件开发、改善法(Kaizen)、精益制造和六西格玛方法的组合。
- AWS:DevOps是文化思想、实践和工具的组合,用来增强组织以高速度进行应用和服务发布的能力。
在这项调查中,这几个定义发布组织的名字对被调查人是不可见的,定义的排列顺序也是随机的,以防止偏见。
没有那个定义能够赢得大多数的认同,Wikipedia的定义也仅仅领先了11个百分点。我们相信如果有这四个之中有一个“正确”的DevOps定义,那么它会获得更多的支持。
为什么一个定义如此艰难?
DevOps定义的抽象特质可能起因于这个运动的历史。
这种结合开发与运维团队的理念来源于敏捷开发运动的原则,强调在开发团队内部进行更好的沟通与协作。通过打破运维的边界,DevOps进一步简化了将产品交付给用户的过程。
如果DevOps运动的开始可以被确定到特定时刻,那么很有可能是Flickr员工John Allspaw和Paul Hammond在2009年加利福尼亚州圣荷西的O'Reilly Velocity大会上发表的题为“一天10次部署:Flickr中开发与运维的合作。“
比利时的一位已经对开发团队和运维团队之间的问题感到沮丧的IT顾问Patrick Debois,在线观看了这次会议,并在美国软件开发商Andrew Shafer的鼓励下,在比利时根特举办了首个“devopsdays”会议。 DevOps运动(以及术语“DevOps”)从那里起飞,并推向全球。
DevOps在民间的成长与扩张可能也造成了单一定义的缺乏。这个概念不是由一个单一的组织创造的,也不想敏捷运动一样,固定于书面的宣言。实际上,一个宣言可能会伤害到DevOps运动,Christopher Listtle在DevOps.com上写道:如果你对某物有一个宣言,那么所有在这一领域的谈话都会相当快速的回归到这个宣言来进行决断,而不是让每一个人一起进行工作。这在一个不断变化,快速增长,非常灵活,快速变更和发展的IT环境中是非常不合适的。
所以,DevOps的历史可能解释了它未明确定义的性质,但是那是它的实力。
谁是正确的?
为回应Clutch的数据,云专家针对Wikipedia的定义给出了不同的观点。
Menlo Technologies公司全球交付部门VP,Davide Hickman说“我认为,文化这个词被误用了。它更像是一种方法论,更多的与组织中的社会因素相关,以及人们如何从专业和业务方面的处理相互之间的关系。”
Mindsight公司的解决方案架构师Brian Dearman认同文化方面的观点:“它确实成了一种文化运动。15到20年之前,DevOps所包括的两个单独的事情,运维和开发总是在互相进行抱怨。这种文化正在改变,两者之间的敌意正在消除。”
同时,Nick Martin,Cardinal Solutions的首席应用开发顾问和Cloud开发者大会的组织者,对Wikipedia在自动化方面的强调提出了批评:“在谈到自动化流程时,这个定义有点过于规范了。DevOps可以不必如此强烈的关注与自动化。它最终是关于协作以及使团队共同工作,来解决相同的问题。”
结论
所以,DevOps缺乏定义明确的和普遍的准则。这会阻止你在企业中实施它吗?
绝对不会。DevOps的好处在绝大多数实施它的企业当中是显而易见的。然而,在你开始实施之前,有必要去澄清对你的企业来说,DevOps意味着什么。
DevOps的概念很宽泛,但是,大多数人都同意它在提高效率、增强协作与沟通方面的积极作用。然而,在实施它之前,与你的团队敲定细节非常重要。如果每一个员工都采用不同的方式来实现他们,那诸如增强沟通之类的想法就是徒劳的。
选择DevOps,但是一定要仔细选择。
欢迎关注我的微信公众号