软件架构指标
by Christian Ciceri, Dave Farley, Neal Ford, Andrew Harmel-Law, Michael Keeling, Carola Lilienthal, João Rosa, Alexander von Zitzewitz, Rene Weiss, Eoin Woods
第 1 章. 释放四个关键指标
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
如果您认为 Nicole Forsgren 博士、Jez Humble 和 Gene Kim 的开创性著作《加速》(IT Revolution Press,2018 年)既是关于如何转变软件交付性能的第一手资料,也是最后一本书,那么您就大错特错了,这本书完全是通过简单而强大的四个关键指标来衡量的。
我的转型工作是以他们书中的许多建议为基础的,因此我对书中的任何内容都没有异议。但我认为,与其消除对更详细内容的需求,不如对该书进行进一步的讨论和分析,以便分享经验,并汇聚一批希望改进的建筑实践者。我希望本章能为这样的讨论做出贡献。
我看到,当按照本章后面描述的方式使用时, ,四个关键指标--部署频率、变更前置时间、变更失败率和恢复服务时间--会带来学习之花,让团队理解对高质量、松耦合、可交付、可测试、可观察和可维护架构的需求。通过有效部署,这四个关键指标可以让你作为架构师放松对舵柄的控制。你可以利用这四个关键指标与团队成员进行交流,激发他们超越自我改进整体软件架构的愿望,而不是发号施令、控制一切。你可以逐步向更可测试、更连贯、更有凝聚力、更模块化、更容错、更云原生、更可运行、更可观察的架构迈进。
在接下来的章节中,我将介绍如何启动和运行四个关键指标,以及(更重要的是)您和您的软件团队如何才能最好地利用这些指标来关注您的持续改进工作并跟踪进展。我的重点是四个关键指标心智模型的可视化、所需三个原始数据点的来源,以及四个指标的计算和显示等实际方面。不过不用担心:我还会讨论在生产中运行的架构的好处。
定义和仪器
范式是系统的源泉。从范式中,从关于现实本质的共同社会协议中,产生了系统目标和信息流、反馈、存量、流量以及关于系统的其他一切。
Donella Meadows,Thinking in Systems:入门1
Accelerate所依据的心智模式产生了四个关键指标。之所以从这里开始,是因为在阅读本章时,必须牢记这一心智模型。该模型的最简单形式是一个活动管道(或 "流程"),从开发人员将代码更改推送到版本控制开始,到这些更改被吸收到团队正在开发的运行系统中,并向用户交付运行服务时结束。您可以在图 1-1 中看到这种心智模型。
图 1-1. 四个关键指标背后的基本思维模式
为了清晰起见,让我们直观地了解一下这个模型中的四个关键指标:
- 部署频率
- 随着时间推移从管道末端流出的单个变更 的数量。这些变更可能由 "部署单元 "组成:代码、配置或两者的组合,例如,包括新功能或错误修复。
- 更改的准备时间
- 开发人员完成 代码/配置更改后,通过管道到达另一端所需的时间。
综合来看,第一对衡量 开发吞吐量的指标。这不应与精益周期时间或前置时间混淆,前置时间包括编写代码的时间,有时甚至从产品经理首次提出新功能的想法时就开始计时。
- 改变故障率
- 从管道中流出的、导致我们的运行服务出现故障的变化比例。(关于 "故障 "定义的具体细节将在下文中介绍。现在,只需将故障理解为阻止服务用户完成任务的情况即可)。
- 恢复服务的时间
- 在 服务出现故障后,需要多长时间才能意识到故障,并为用户提供修复服务。2
综合来看,第二对 ...