DevOps约定

DevOps的核心是工作中人们在团队或小组中的沟通中。这可以被描述为一个约定,团队将一起工作,交流他们的想法和他们遇到的问题,并动态调整以实现他们共同的目标。

约定的例子

我们可以通过检查两个攀岩者的交流、澄清和相互信任来想象这个关键的约定。攀岩是一项运动,参与者需要上下攀爬,穿越自然岩壁或人工岩壁。共同的目标是通过一个特定路线的顶端或终点而不落下。这是一个对身体的综合考验,也需要一定的导航能力以及敏锐的理解力才能到达终点。

确保绝对安全需要共同的对工具的理解以及在攀岩过程中持续的沟通。登山人员需要安全地系上她的工具。保护人员要确保他的保护器是否正确地连接到他的攀岩线束。在攀岩开始之前会确定每一个细节,当然需要互相信任。

攀登本身有一套术语表明登山者已经准备好向上爬,当登山者问“在保护吗?“保护者回应”在保护“。登山者回应“我准备爬了”来表明她已经准备好。最后,保护者回应”准备就绪”。

他们协同工作的约定有:

  • 共同的、清晰的目标
  • 持续沟通
  • 不断调整和理解

这里解释一下,登山者在墙壁上的协同工作方式同样可以带到我们DevOps的工作环境中。

DevOps约定的例子

有两名员工在Sparkle公司的不同部门。其中一位主管是资深的开发,有着数年的工作经验并且在Sparkle工作了两年。George是一名运维工程师,有一些经验,是Sparkle的新员工。

他们使用他们创造性的努力通过Sparkle公司的网站为全球社区提供服务。他们共同的目的是发布一个新功能来提升最终用户价值,当然希望不影响网站正常运行。

作为一个有更多经验的主管,他很清楚George在公司的经验,价值和公司的地位。相反地,George也需要清楚在功能发布过程中主管需要什么,有什么不了解。他们在发布开始前应该互相了解对方需要做什么—一个信任和确认的过程,就像攀岩中描述的那样。

主管和George共享并理解了他们的目标:

  • 发布一个新功能来提升Sparkle公司用户的价值
  • 通过沟通保持网站安全和互相信任

在一个孤立的,没有DevOps的环境中,缺乏沟通理解会导致主管尝试开始写代码而没有让George理解需求—这有可能中断工作,缺少沟通使得成功的几率变小。

一个组织肯定会遇到问题或者突发故障,但是如果有有效的沟通理解以及每个人在组织中遵守约定,那么问题一定会解决。我们消除误解,知道什么时候需要添加新功能什么时候能做完。我们修复bug能够更好地了解软件如何运行。当事情不按照我们预期的方式进行,我们也可以修改工作流程和文档。

在本书中,我们会贯彻DevOps约定来展示DevOps的技术和文化是如何使开发和运维相互理解。