在软件开发人员和 IT 运营人员之间的史诗般的战斗中,大多数观察家都会支持公司的开发人员。作为现代软件的典型代表,开发人员获得了荣耀……以及大部分的金钱和津贴。
但至少有一位有影响力的观察家并不害怕表达他对等式运营方面的赞赏:DevOps 爱好者和研究员 Gene Kim 最近几周在全国各地举行的一系列 New Relic 路演中发表了讲话,并明确表明了他的立场:“在过去的 16 年里,看到一些最大的互联网公司是如何运作的……我得出了很多 DevOps 人员得出的结论:出色的 IT 运营是缩短上市时间的最大区别之一。”
“我喜欢行动,”吉恩补充道。 “为什么?因为当出现真正的问题时,比如当代码在生产中完全崩溃时,最先出现并且通常最后离开的人是操作人员。内存泄漏?没问题,我们会每小时重启一次,直到开发人员想出如何进行修复。”
它一直在发生,吉恩说,他是 凤凰计划 的合著者和 Tripwire 的创始人。网站中断,开发人员坚称他们没有进行更改。他们说,“一定是安全人员造成的,他们总是造成中断。”
“或者,负载均衡器后面有 50 个系统,其中 6 个系统表现得很滑稽。有什么不同,谁让它们不同?或者说,每一台服务器都像一片雪花,各有各的个性。”
是什么让 ops 的一天变得糟糕?他们进行了六周的测试,但部署仍然失败。为什么?因为 QA 环境与生产不匹配。或者是测试失败,到底是代码失败还是环境失败,谁也说不准。或者在 QA 中进行了更改,但没有人将其记录下来,因此它们没有在生产下游复制。
再一次,最终解决问题的是运维人员。 “谁在引入差异?吉恩问道。 “嗯,通常是开发商。有一个古老的笑话:给我看一个没有造成中断的开发人员,我给你看一个正在度假的开发人员。有趣,对吧?因为它符合我们自己的许多共同经历。”
当然,这实际上不是开发人员的错。通常,他们的主要衡量标准是快速部署功能以进入市场。但是,如果你想让运营和整个组织变得更好,Gene 说,首先要确保环境在需要时可用,并且第一次配置正确。当然,不要忘记记录所有更改,以便下游和上游可以复制它们。
在开发和运维之间实现和平的真正方法是什么?这很简单,Gene 声称:“正如 John Allspaw 和 Paul Hammond 在他们 2009 年著名的演讲中所说的那样,'我们需要像开发人员一样思考的操作人员,我们需要像操作人员一样思考的开发人员。'”