CAMS模型是由两位DevOps先驱(John 和Damon Edwards )提出来的。CAMS代表Culture, Automation, Measurement, Sharing四个单词的首字母缩写。CAMS已经成为许多DevOps从业者的价值参考模型。Patrick DeBois,DevOps这个词就是他创造的,所以,他经常被成为DevOps之父,但他喜欢说DevOps是一个人类的问题。虽然DevOps通常被认为是一个技术问题,但实际上,DevOps是一个文化和业务问题。
Culture
那么,什么是文化呢?我们可能里面想起比较好的企业的办公文化,例如办公室里面的乒乓球桌和免费的零食,文化不仅仅是这些。文化是由行为驱动的,文化存在于来自不同地方人之间的互相理解。在早期的IT组织中,我们把团队分成两个主要组:
开发,他们负责创建和实现功能;运维,他们负责保持生产环境的稳定。由于目标不同,他们之间形成了一堵墙。到现在,这种模式持续了很长一段时间,开发和运维不会说同一种语言,更不会相互理解。开发是实现开发功能,希望快速部署到生产环境,运维的口号是稳定压倒一切,不喜欢频繁更新,特别是面对不可靠的程序。
改变运维和开发之间的潜在行为和假设,这个是当前很多公司推动公司文化变革过程中必须解决的问题。
Automation
现在来说说自动化,CAMS中的A就是Automation。这是一个很容易被人们认为DevOps就是自动化的事情。在DevOps早期的时候,有些人认为DevOps就是那些使用Chef或Puppet或CFEngine的人。(注:这三种都是自动化平台)但是,CAMS的一部分中断是如何平衡我们的思考方式,所以,DevOps不仅仅是自动化工具。更多是一种文化,思想上的概念,人和流程需要先提出来。
针对这种把DevOps被认为是自动化工具的现象,Damon Edwards认为是,人们过度使用和依赖工具。所有的一些都说,自动化是DevOps中重要的组成部分,一旦你了解和接受了DevOps文化,你可以创建一个自动化结构,用来管理和控制你的程序。自动化是加速器,将为你带来DevOps的其它好处。你确实应该需要确保自动化的优先级是你解决问题的主要方法。所有,我们经常说,思想很重要,就是这个道理。有了文化了解,和自动化手段去解决问题,接下来我们需要一些手段去测量和评估我们的自动化。
Measurement
合理地处理我们系统的关键之一是我们能够测量它们的能力。测量一般是通过指标来衡量,通过指标,可以告诉你发生了什么,已经我们所做的更改是否把问题优化解决,是否提高了效率。度量指标存在两个重要的缺陷。第一,有时,我们会选择错误的指标进行观察。第二,有时,我们不能正确的激励指标。因此,DevOps强烈建议您衡量整个组织的关键指标。例如MTTR(time to recovery),表示恢复时间指标,很好了解,给用户更新一次生产环境,需要宕机多长时间后可以恢复服务访问。还有成本和收入的考虑,也就是投入和产出的百分比。或者,还有公司其他人员对你们DevOps工作的满意度等,这些都构成了DevOps活动的相关度量指标。这样的指标有助于部门的整体目标的实现,通常可以看到,一个优秀团队的这些指标,会在公司内部或者对外分享出来。接下来,我们来讨论最后一部分,分享。
Sharing
分享想法和问题是合作的核心,当然也是DevOps的核心。在DevOps中,期望对开放性和透明度进行高度重视。在日语单词中Kaizen,意思是离散的持续改进。共享是持续反馈和持续改进这个循环中一个重要的点。由于有很多很好的分享,DevOps才能不断发展壮大。
CAMS代表Culture, Automation, Measurement, Sharing,它们是为DevOps实施带来的四个基本且相辅相成的价值观。他们是我们将在后面贯穿整个课程背后的重要知识。希望,你们把这四个理念铭记于心,在未来的DevOps工作中,你们逐步体会到它们的具体含义。