Reload Original PagePrint PageEmail Page

DevOps之7大习惯

弗雷斯特研究公司(Forrester Research)分析师格伦·奥唐纳(Glenn O'Donnell)库尔特·比特纳(Kurt Bittner)发表了一份报告,该报告不仅介绍了开发人员与运维人员在隔离状态下工作时是如何看待彼此的,还给出了双方协作的七大习惯。下面是他们给出的“高效DevOps之七大习惯 ”:

  1. 促使双方互相交谈
  2. 对每件事都采用由外而内的方法去处理
  3. 使构建、测试及发布过程自动化,以便减少其中包含的人为错误
  4. 使开发和生产环境简化并标准化
  5. 向从开发到运维的全过程逐渐灌输系统工程文化
  6. 实现反馈和前馈[1]回路
  7. 把开发人员放在一线支持的岗位上

接下来就将个中细节一一道来:

促使双方互相交谈

对于了解彼此的日常挑战和困难而言,面对面的交谈是一种好方法。这方面的知识可以让开发人员与运维人员明白彼此行为的来龙去脉,从而帮助双方更好地理解对方。虽然这一点是相当显而易见的,但是如果没有把这一点作为先决条件的话,DevOps根本就无法开展下去。

对每件事都采用由外而内的方法去处理

IT运维人员很常见的做法是,先弄明白那些设备是可用的,然后努力把它们调整至最佳工作状态。而DevOps则需要一种不同的观点:开发人员与运维人员都必须首先理解业务客户的需求。然后基于这些需求,他们应该去定义哪些东西是满足需求所必需的。这种由外而内的方法会导致开发人员与运维人员安排其工作优先级的方式发生根本性的转变。

使构建、测试及发布过程自动化,以便减少其中包含的人为错误

很重要的一点是,让开发人员与运维人员一起工作,以便使交付过程自动化。譬如可伸缩性测试(scalabilitiy-testing)之类的事情是运维人员的专业领域,而测试各种业务功能却是开发人员的家常便饭。因此在测试自动化之上,他们应该使用现成工具去自动化基础架构。

使开发和生产环境简化并标准化

此处的重点在于,应该严格执行对于新系统的简化,而对于现有系统只能做尽可能多的简化。詹姆斯·加文诺(James Governor)近日主持了一次DevOps专家小组讨论,在讨论中他问道,为了能够引入DevOps,是否有必要简化基础架构。

向从开发到运维的全过程逐渐灌输系统工程文化

将整体式的软件分解成若干更易于处理的模块——不管是自动化基础架构还是编写应用程序代码皆应如此。

实现反馈和前馈回路

为确保应用程序平稳运行,开发人员需要有关应用程序在生产环境下运行状况的反馈。而运维人员在此过程中则需要尽早获知所需的运行时环境信息。

把开发人员放在一线支持的岗位上

尽管支持任务会将开发人员从更具创造性的工作中带离,然而由他们去处理其代码在生产环境中引发的各种问题却是很重要的。因为他们不仅是快速修复故障的最佳人选,而且他们还能学到很多关于其应用程序在生产环境下运行状况的内容。

译注

[1] 前馈(feed-forward)控制,指通过观察情况、收集整理信息、掌握规律、预测趋势,正确预计未来可能出现的问题,提前采取措施,将可能发生的偏差消除在萌芽状态中,为避免在未来不同发展阶段可能出现的问题而事先采取的措施。更多详细内容参阅前馈前馈控制

查看英文原文:7 DevOps Habits