东方瑞通_祝老师信箱 2018年第001号
2018-09-03阅读 3067


学员的问题(通过微信提交):

祝老师:您好。如果不打扰,我问您个问题。我的问题是:开发和运维承担不同工作内容,如果推动DevOps,这是弱化运维的能力?还是提高运维的能力?按我的理解,应该是提高各自能力,摆脱一种割裂的状态,把相互的能力优势互补。DevOps是无文档的运维过程吗?我理解无论哪种运维模式,运维文档都是必须的项目资产。这个过程如何协调呢?

祝老师的答复:

XX同学:你好!

关于你提出的问题,我从以下几点做个回答,很可能不全面,仅供参考。

1、 DevOps是一种管理理念,是一种文化,目前还没有形成标准。但主流的思想就是开发、测试和运维的密切合作,从而加快软件的交付速度,以适应目前互联网时代的节奏。

2、 国内把DevOps翻译为“开发运维一体化”,但我觉得这个翻译不是很好,因为它会让人产生一种错觉,以为DevOps就是开发、测试和运维三个团队整合在一起,或者说开发把测试和运维的事情全干了。记得在去年DevOpsDays北京站的活动上,好几位演讲嘉宾在演讲的过程中都提到了DevOps团队的概念。但最后DevOps之父Patrick在演讲的时候,专门提到没有DevOps团队的概念,让那些前面演讲的嘉宾有点尴尬。

3、 目前DevOps在国内的落地是各种各样的,基本上都是局部落地,很少有比较完整的落地案例。比如一些单位在一定程度上实现了自动化运维,就说是DevOps;有些单位实现了软件的自动化测试和部署,也说是DevOps

4、 因为DevOps的核心就是敏捷开发+自动化测试+自动化运维,而最核心的就是敏捷开发。你可能也知道,敏捷开发也是一个文化层面的事情,对团队成员的要求很高。我们国内很多单位(银行比较多)做敏捷开发的落地,其实最后都是不了了之(文化跟不上、管理跟不上、人员的素质也跟不上)。但敏捷确实有它的优势,比如在银行中,一些非核心的、与互联网相关的应用,还是需要用敏捷的方式来做。所以,对一些大的单位来说,那些大的核心系统是不太可能用敏捷或DevOps的方式来运作的。你以前上ITIL中级课的时候,班上有一个某大型国有银行的学员。按他的说法,他们银行在核心业务系统上是不太可能实现DevOps的,因为他们的体制就不允许(他们有开发中心、测试中心和运营中心),三个中心分布在不同的地方,人员平时都很难见面,不太可能密切协作。

5、 再回到你的问题。推动DevOps,肯定是要提高运维的能力。但这并不等于运维更重要,也不等于运维人员在公司内的地位会提高。DevOps追求的是自动化运维,运维人员会减少,而且对运维人员的要求也会提高,那就是我常说的:运维人员要懂点开发,起码会用Python语言写点脚本程序。关于“DevOps是无文档的运维过程吗?”这个问题,答案应该是否定的。文档还是要有的,但因为DevOps的核心就是敏捷,而敏捷宣言的四种核心价值观之一就是“工作的软件重于详尽的文档”。注意,人家是说“详尽的文档”,没说不需要文档哦。

6、 我在讲课的时候经常推荐两本与DevOps有关的书,一本是《凤凰项目-一个IT运维的传奇故事》,另一本是《SRE-Google运维解密》。这两本书不知道你看过没有?如果还没有看过的话,最好能抽时间看一下。因为我觉得这两本书对运维人员理解DevOps还是挺有帮助的。

7、 今年55日在北京世纪金源饭店有DevOpsDays的活动,我争取给你申请一张票(瑞通采购的),你去听一下。

谢谢你的问题,祝你工作顺利!

东方瑞通 祝文彬 201849日下午