DevOps的CALMS矩阵

DevOps是什么,不是什么

在为客户进行DevOps咨询的过程中,如何向客户解释,怎么做才是DevOps,是一个非常困难的问题。

  • 向客户介绍持续集成和自动化测试,客户觉得这不就是敏捷开发么?

  • 向客户介绍Chef,Puppet,Ansible等工具,客户觉得这不就是自动化运维么?

  • 向客户介绍蓝绿部署,灰度发布,金丝雀发布等部署方案,客户觉得这不过是运维方法的老调重弹。

  • 向客户介绍AB测试,系统监控工具,客户觉得这也是早就听说过的,没什么新意啊!

如果我反过来问客户,他们理解的DevOps是什么,客户通常也说不清楚,他们只是觉得,DevOps应该是一个新玩意儿,不应该是他们以前听说过的那些。

那么到底如何定义DevOps呢?先来看看维基百科上是怎么说的:

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

可以看出,DevOps是一个统称,它并不是一个全新的概念,而是将已有的软件工程实践进行优化,以达到开发、运维和质量部门之间的协作整合。

DevOps矩阵

在尝试更详细的去定义DevOps时,我参考了Jez Humble等人提出的CALMS模型,将其作为DevOps评估维度,同时参考了Gene Kim提出的Three-Way模型,将其作为DevOps推进维度,最终形成一个矩阵,通过这个矩阵来解释什么才是DevOps,DevOps的目标是什么,以及如何实施DevOps。

CALMS模型

C - Culture

(未完成)

A - Automation

(未完成)

L - Lean

(未完成)

M - Matrics

(未完成)

S - Share

(未完成)

Three-Way模型

1st Way - Systems Thinking

2nd Way - Amplify Feedback Loops

3rd Way - Culture of Continual Experimentation and Learning

矩阵模型