最近几年,很多公司的IT部门负责人和对企业信息系统比较关注的人,都在谈DevOps。那么DevOps到底是什么,一个企业如何去实施DevOps?是不是像某些不负责任的IT顾问说的那样是IT部门的万灵药?最近我在研究DevOps的时候对轰轰烈烈的DevOps的历史进行了一些了解。进而对DevOps真正希望解决的问题,并在务虚的层面对DevOps进行了一些思考。
DevOps Days的发起人是Patrick Dubois,2007年的时候,他当时是一名IT项目经理和咨询顾问,参与一个政府的数据中心迁移项目,而他负责的是这个项目的测试部分。测试团队要和这项目的开发和实施团队,以及运维团队紧密协作。在这个项目中他发现运维和开发团队的工作方式和沟通方式区别很大,中间经常会出现各种信息缺失,协作冲突甚至矛盾。开发出来的产品往往在运维阶段有很多问题,而运维团队和开服团队又缺乏有效沟通;由于信息不对称,有时候雨微团队没法即时的定位和处理一些问题,这给用户和组织造成了不少的困扰。作为一名有心的IT小哥,他觉得这些问题也困扰着他,作为测试团队的一员,他夹在开发和运维中间肯定尤其难受,估计是经历了“刻骨铭心”的煎熬。一直心心念念这找到解决这些问题的方法。
2008年的时候,Agile 2008 大会在加拿大的多伦多举办,会议上一个叫Andrew Shafer的工程师计划做一个Agile Infrastructure的演讲和分享,结果这个分享基本没有人关注,只有Patrick参加了。在当时的情况下,敏捷开发方法的理论和实践已经相对成熟了,而且在IT项目的实践中获得了非常不错的结果。敏捷方法其实抓住了软件开发项目的痛点,解决了需求变化和内外部的沟通问题。而且在持续部署这一块也有很多成功的案例。只可以到了部署以后就进入了IT运维的范围,这一块和开发的衔接却有很多问题,在当时开发和和运维其实感觉是企业IT部门相对独立的两块。Patrick是抱着填平这个gap的想法去和Andrew沟通的。
时间到了2009年,Velocity 09大会在硅谷的San Jose召开,在会上有一个演讲是关于当时Flickr每天进行10上线和部署,开发和运维紧密协作的经验分享。这个视频现在还可以在Youtube上找到:https://www.youtube.com/watch?v=LdOe18KhtT4 有兴趣的话可以去看一下。Patrick看了这个视频后感到异常兴奋,觉得这就是他想要的DevOps相互协作的方法。他在自己的twitter上表示真希望能够现场参加这次会议。他的一个好友回复到,那为啥不在比利时搞一个这样的会议呢?当时虽然是个玩笑,不过Patrick同学真的当真了,于是就有了比利时根特的第一次DevOps Days会议,这次会议定在2009年10月30日和31日两天。在Patrick以及朋友们的号召下,有数十人从世界各地赶来参加了这次会议。他们都是工作在软件和IT运维一线的项目经理,软件工程师和系统管理员,大家都或多或少遇到了开发和运维协作的问题。这次会议其实还是非常成功的,建立起了DevOps社区,而且DevOps这个名称也被创建出来。
紧接着,在世界其他城市和地区,相继举行了各种DevOps Days。程序员,系统管理员们积极地参与其中,献计献策。同时大家根据自己的经验开始逐渐完善DevOps的理论体系和工具包,比如说Jekins,chef, Puppet, Ansible等等。DevOps其实是个从草根发起的IT运动,最终影响到了整个IT产业界。我觉得DevOps运动的一个很大的特点是他不是由IT厂商,学术界或者咨询公司主导和发起的,而是完全通过IT社区的程序员,系统管理员形成的社区推动的。其从一开始就没有沾染上一些特别的商业利益,而是拥抱了开源和协作,切实解决组织内遇到的IT合作和维护的问题。是第一线的工程师们提出,发展和维护的一个运动。
Cameron Hate是Gartner的资深分析师,他在2011年发表了关于DevOps和传统IT运维理论(ITIL)的关系,以及对DevOps在企业中的使用和落地的展望,他认为到2015年将会有20%的Top 2000大企业会逐渐采用DevOps的方法论和工具,DevOps会从一个小众的方法论发展成大的趋势。事实证明他的预测是准确的,而且他的加入,也使得IT厂商们开始关注和推广DevOps的方法论,包括主流的IT公式都开始在自己的方案和服务中提供了DevOps的方法,包括IBM,HP,微软,AWS等等。Cameron也成为DevOps于社区和产业界协作的一个纽带。
最后我们用Damon Edwards 对DevOps给出的几个特点来结尾吧:
- from practitioners, by practitioners
- not a product, specification, job title
- experience-based movement
- decentralized and open to all