Devops文化:我们是DevOps吗?

经常听到我们想拥有DevOps文化的短语,或者我们是DevOps,还是什么时候知道我们已经达到DevOps? 提出此类问题类似于询问我们是否还敏捷,或者您如何知道自己何时敏捷? 敏捷宣言为敏捷制定了12项指导原则,如果您实现了这12项指导原则,那么您可能会认为自己具有敏捷文化。

吉恩·金(Gene Kim)为DevOps定义了三个原则,即“三种方式”。 这些原则描述了构成DevOps的流程,过程和实践的价值和理念。

DevOps原则:

  1. First Way –系统思考–专注于所有业务价值流
  2. 第二种方法-放大的反馈回路-缩短反馈回路并快速进行小幅连续改进
  3. 第三条之路-不断实验和学习的文化-冒险并从失败中学习以达到精通

通过实现所有三项原则,您可能会认为您已经获得了DevOps文化,但是如何组织才能实现这些目标呢?

文化

太多的DevOps文化可能意味着仅仅拥有合适的工具,或者特别是拥有一个出色的连续交付系统,可以每天多次将更改快速投入生产。 准备就绪时,使用蓝绿色部署和功能切换可启用新功能。 拥有一套良好的自动化测试和一个仪器完善的系统,可以提供有关变更影响的快速反馈。 如果引入负面影响,则可以迅速发现并迅速解决。

单独使用工具并不意味着我们拥有DevOps文化。 同样地,拥有乐器,油漆和画笔,出色的剧本作者等并不构成艺术文化。 文化是由相信或对某个方面感兴趣的人所展示的思想,态度,风俗和行为产生的。 如果不同群体的目的或目标不一致,那么他们所做的事情以及他们相信的事情就会有所不同。

有适当的工具是必要的,但不是必需的。 正确的工具有助于塑造我们的工作方式,如果是开发人员和运营团队的共享工具,那么两者都可以采用某些相同的行为和做法。

文化不是可以强制执行的东西。 历史一遍又一遍地表明,当一个团体将自己的思想和哲学强加给另一团体时,结果就很少令人愉快了。 但是,人们的活动和行为会受到影响和改变。 创造合适的环境来支持新的活动和行为,应使文化得以发展。

支持DevOps文化

在传统的公司中,开发人员和运营团队都是孤岛组织的,他们的目标是不同的。 开发人员非常擅长创造变更,他们的目标是尽可能快地发布到生产中,以获取最快的反馈以创造价值。 另一方面,运营团队非常擅长保持稳定的环境并保护业务免受破坏。 结合两个团队的优势来快速,可靠地交付变更是一个强有力的组合。

发挥团队作用意味着相信我们在一起,相互支持。 有效的方法取决于组织,使用的过程,系统上下文和团队。 为了支持DevOps文化,我们必须改变工作方式。 以下是一些有助于支持DevOps文化发展的组织更改。

创建包括开发和运营团队成员的跨职能产品交付团队。 他们的目标领域共同定位,以成功部署新的高质量,可靠,容错功能和产品。 彼此协调的技能将集中在同一方向上,以实现共同的目标,并拥有系统的共同所有权,负责改善和维持。

在可能的情况下,将跨职能团队的所有成员共同安置可以极大地改善沟通,可以缩短交货时间并加强关系。 不仅针对计划中的特定必需对话,还包括可以帮助加强“我们是团队”心态和目标一致的即席对话。 如果无法在同一地点进行托管,请确保可以使用最好的工具来保持高水平的通信。

弘扬哲学:构建,交付和支持。 跨职能团队的所有成员都应能够随时部署变更,并负责系统的支持。 对于24/7全天候运行的大型应用程序,这也意味着所有团队成员在正常工作时间之外承担支持的责任,并应随时待命。 负责支持的团队将了解任何生产问题,并尽快进行修复。

协作并使用对变更和交付的各个方面都思考的系统。 如果不邀请运营团队成员计划新功能或进行更改,则可能不会充分考虑到功能的运营问题。 为什么冒着错过经过深思熟虑的解决方案的风险? 在适当的情况下,运营团队成员应与开发人员,质量保证,用户体验,产品经理等一起计划。

协同工作以使手动重复性任务自动化可能意味着所有团队成员都将拥有更多主动地实现目标的能力。 自动化还有助于防止缺陷,创建一致性并启用自助服务活动。

启用数据驱动的决策。 测量过程和影响可提供重点领域和反馈,可用于学习。 数据应透明,所有人均可访问且有意义。 它提供了团队成员可以信任和相信的客观的无me见解。良好的指标还可以帮助与非工程学利益相关者进行交流,从而获得对DevOps活动的进一步信任,支持和信任。

培养持续改进的精神,Kiazen。 查看从创意到生产的SDLC或价值流。 进行小的增量更改,以减少周期时间,消除浪费和移交。

设定目标并通过尝试最初的想法,然后对其进行度量以验证其效果,从而启用经过验证的学习。 一个想法的每次测试都是一次多次迭代,其中包括多次迭代的较大过程,从而可以学到一些东西,然后将其应用于改进。

您是DevOps吗? 您是否拥有合适的环境来进行协作和持续改进,团队是否与共同目标保持一致,以快速交付变更,您的交付团队是否相互支持,团队是否共享工具,最重要的是,他们是否认为自己具有积极的影响力和学习能力从他们的经验?