主要观点:
- 关键绩效指标(KPIs)用于衡量实践、产品、项目等的好坏,计划良好的项目会定义从开始就收集并遵循的 KPIs。
- 公司启动项目时需衡量步骤的有效性,KPIs 能提供决策依据。
- 很多关于 DevOps KPIs 只有理论,此文提供实践部分,包括如何收集、处理、测量和展示指标。
- “DevOps KPI in Practice”分为九章,涵盖十二个不同的 KPIs 及其实践方法。
- 以玩具公司为例说明如何用 KPIs 衡量新产品销售情况。
- 介绍了 DevOps 倡议需用 KPIs 衡量成功,文中展示十二个 KPIs 的实践方法,包括收集、处理和展示指标。
- 详细说明了各 KPIs 的含义、测量因素、良好指标的阈值等,并以 Grafana 展示指标示例。
- 给出了实现 DevOps KPI 实践的解决方案,包括 Jenkins、InfluxDB、Apache Nifi、Redis 和 Grafana 等工具的作用及使用方法,还提供了相关代码和工具栈的运行步骤。
关键信息:
- 十二大 KPIs:Deployment Speed、Deployment Frequency、Deployment Failure、Change Lead Time、Change Volume、Mean Time To Detection、Mean Time Between Failures、Mean Time To Recovery、Change Failure Rate、Efficiency、Performance、Pipeline Adoption。
- 解决方案中各工具作用:Jenkins 为指标生产者,InfluxDB 为指标仓库和查询引擎,Apache Nifi 用于指标归一化和关联,Redis 为缓存层,Grafana 为指标展示工具。
- 各 KPIs 的指标含义、阈值、趋势和影响:如 Deployment Speed 阈值为 10 分钟,需优化以提高速度同时保证质量;Deployment Frequency 高值较好,但需根据实际定义“高”的标准等。
- Grafana 展示 KPIs 的示例及相关仪表盘的链接。
重要细节:
- 要运行示例需在机器上安装 Docker CE 17+、Docker Compose 1.15+,确保 6001、6002、6003 和 6004 端口空闲,运行
docker-compose up
启动工具栈,完成 Jenkins 安装配置等。 - Jenkins 推送指标到 InfluxDB 需安装 InfluxDB Plugin 并配置相关信息,可选择普通任务或管道任务进行推送,文中示例为管道任务。
- Apache Nifi 用于解决 Jenkins 到 InfluxDB 指标摄入的问题,如处理自定义字段和标签字段,通过特定流程将
jenkins_data
和jenkins_custom_data
连接并创建新标签字段。 - Grafana 可制作多种布局展示 KPIs,文中给出了 Deployment Speed、Volume 和 Failure 的示例仪表盘及相关查询。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。