解释 DevOps 的关键原则
学习目标
说出 DevOps 的五项原则
我们上一课定义了 DevOps 及其动机,以及在创建软件产品时的局限。在本课中,我们将转向 DevOps 的基本原则和软件行业中的术语。
CALMS
CALMS 是由John Willis、Damon Edwards 和 Jez Humble 创造的首字母缩写,它已成为思考 DevOps 如何在实践中运作的广泛使用的工具。它帮助公司评估其采用 DevOps 方法进行软件开发的能力。每个字母代表以下内容:
Culture(文化) ,它强调 DevOps 既关乎组织运作方式的文化变革,也同样关乎技术或商业变革。
Automation(自动化) 消除重复性人工工作,产生可重复的流程,并创建可靠的系统。
Lean(精益) 专注于确保所有流程在整个产品生命周期中通过持续改进来定义。
Measurement(度量) 专注于通过收集和理解有关生产过程的可度量数据,来证明产品的开发是如何持续改进的。
Sharing(共享) ,它强调将这些产品开发方法传播到开发团队和运维团队双方,以确保标准化的开发方法。
文化
向学习型组织进行文化转型,在其中变革由跨职能、被赋能的团队来拥抱,这对于一个有效的 DevOps 模式至关重要。因此,要建立自主且相互信任的工作文化,制定共同目标,并践行积极的失败文化。
从 |
到 |
|---|---|
职能孤岛 |
跨职能团队 |
他律 |
自主 |
规避风险与失败 |
将失败视为学习机会 |
“从不修改”策略 |
持续流程评审 |
项目思维 |
产品思维 |
示例:
大声工作(Working out loud)
失败分享之夜(Screw-up nights)
直言不讳(Tell it like it is)
自动化
尝试自动化你能自动化的一切:测试、配置、基础设施和运维任务。建立可靠的工具链。避免重复性任务。创造一致性并确保可重复的结果。
示例:
测试自动化
自动化持续集成与持续交付(CI/CD)流水线
自动化警报修复
重复性运维任务的自动化
使用 Kubernetes 进行虚拟化
精益
采用精益原则,例如系统性思考。
以小批量快速且持续地交付,以获取快速的客户反馈。
尽可能消除浪费并专注于价值。
尽早失败,频繁失败。
建立持续改进流程,以识别并克服瓶颈。
确保质量是内在固有的。
降低团队的认知负荷。
示例:
持续交付
敏捷方法与概念
度量
“你只能改进你能够度量的东西”:使用科学方法来理解你工作的影响,并实现数据驱动的决策。
为此,要在整个生命周期中实现透明——例如关于你的 DevOps 团队的绩效、自动化测试用例的覆盖率、你的流水线、应用的问题以及典型 KPI。然后,这种透明将用于在下一个改进周期中识别瓶颈以及其他有优化潜力的领域。
示例指标:
DORA 指标(部署频率、变更前置时间、变更失败率、服务恢复时间、可靠性)
平均故障间隔时间(MTBF)
平均修复时间(MTTR)
共享
积极对抗知识孤岛,并将其瓦解,转向具有共同目标和高效沟通的跨职能团队。
力求信息透明。
共享知识、责任、成功与失败。
在你的团队内部共享——也在团队/公司之间共享。
示例:
团队庆祝活动
展示与讲述会议
结对编程
DevOps 连续体
观看以下关于基于 DevOps 原则建立应用生命周期的简短动画。
视频:本节含 SAP 官方视频(视频 ID
1_93g2pqvc),需在 learning.sap.com 在线观看。
总结
DevOps 是一种文化方法,深受精益和敏捷产品开发的影响。
基于 CALMS 首字母缩写,你可以说出 DevOps 方法的原则,并重述构建在这些基本原则之上的 DevOps 生命周期的基础阶段。
延伸阅读
视频:DevOps in a Nutshell (ondemand.com)
DevOps | SAP Community 上有关 CALMS 的链接
来自 Google 的博客文章(外部链接)
本课其余配图




