4.3 共享工具
在传统的大型企业中,运维团队和开发团队分别使用专用的,没有什么交集的工具集。
运维人员通常并不想了解开发团队所使用的SCM系统以及持续集成环境。他们认为这些并非自己的本职工作,害怕自己在触及这些系统后会被开发者的各种请求所淹没。毕竟他们为了照料生产系统就有忙不完的工作了。
另一方面,开发者通常无法访问生产系统的日志和监视日志,有时这是因为没有这样的意愿,有时则是因为制度或安全方面的顾虑。
这种状况需要改变!DevOps应运而生。
这个目标其实很难实现。举例来说,出于制度或安全方面的原因,日志可能会被实时匿名化,同时需要对监管工具进行必要的保护,以避免未经培训或本应被禁止的开发者更改生产环境的配置。因此实现这一目标需要付出大量时间和成本资源。但这样做所能获得的收益远大于所需进行的投入,这种方法对整个公司的投资回报非常明显。
4.4 协同工作
DevOps的一种基本哲学是认为,开发者和运维人员必须定期进行密切的合作。
这就意味着他们必须将对方视作重要的利益相关者,并积极主动地寻求合作。
受到XP实践中“现场客户”的启发,敏捷开发者受此激励可以与业务进行更紧密的合作,自律的敏捷者还可以更进一步将这样的实践运用给更广泛的利益相关者,例如可以让开发者与所有其他相关者进行合作,包括运维和支持人员。
这是一条双行道:运维和支持人员也必须愿意与开发者进行密切的合作。
此外还可以通过协作:
- 让运维人员参与敏捷仪式(每日Scrum、冲刺规划、再次冲刺等)
- 让开发者参与生产环境的推出任务
- 在开发和运维之间打造统一的持续改进目标
5. 结论
DevOps是一次革命,主要是为了消除拥有大规模IT部门的大型企业中,开发团队和运维团队之间由于历史原因产生的隔阂与孤立所造成的混乱现状。
在我15年的职业生涯中,2/3的时间就职于此类大行机构,其中大部分是金融机构,每天我都在见证者这堵混乱之墙的存在。例如我经常会听到这样的说法:
- “在我的Tomcat上工作很正常,很抱歉,但我完全不懂你所用的Websphere,帮不上你了。”(开发者说)
- “我们真的不能从生产数据库中给你提取这张表,里面包含了与客户有关的机密数据。”(运维人员说)
每天都会遇到其他很多类似的对话……天天如此!
好在DevOps日渐成熟,越来越多传统企业也在开始逐渐走上正途,开始接受DevOps的原则和实践。但还有很多企业无动于衷。
那么对于那些小规模的,开发和运维职能之间通常不会产生那么大分歧的企业呢?
这样的企业应用DevOps原则和实践,例如自动化部署、持续交付和功能开关,一样能获益匪浅。
我认为DevOps原则可以总结为:
DevOps实际上是向着大规模敏捷(Scaling Agility)迈出的另一步!
作者:Jerome Kehrli,阅读英文原文:DevOps explained
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/143080.htm