通过DevOps四个关键指标衡量研发效能(二)

通过DevOps四个关键指标衡量研发效能(二)

文章前情:

“本文从DevOps的三步工作法说起,分别描述了一些具备代表性的技术实践,继而通过DevOps状态报告来关注如何通过四个关键指标来衡量研发效能,最终落实到DevOps的工具平台实践。”

DevOps包含哪些技术实践?

DevOps的三步工作法里分别都包含了一些典型的技术实践:

• 通过创建部署流水线促进从开发到运维的快速流动;

• 通过建立能发现并解决问题的遥测系统来建立从右到左的快速反馈机制;

• 把评审和协作流程内置到工具平台中以提升当前工作的质量;

• 混沌工程是典型的持续学习与实验的技术实践。

1)快速流动的技术实践:

通过部署流水线打通了整个研发过程,并且通过各个阶段的自动化手段实现交付效率的提升。具体的自动化技术包含自动代码扫描、自动化测试和自动化环境部署等。下图为部署流水线的典型执行过程:

图1 部署流水线(来源:DevOps精要-业务视角)

2)快速反馈的技术实践:

快速反馈的关键技术实践是建立能发现并解决问题的遥测系统,具体的工具体现就是监控和日志系统。通过监控和日志系统的建立,能够实现及时预警、出现故障时快速定位,从而提升软件系统的稳定性,让用户能够更放心地使用系统。监控系统框架如下:

图2 监控框架 (来源:DevOps实践指南)


基于开源的ELK(Elasticsearch,Logstash 和 Kibana)是一套完整的日志收集和展示的解决方案。

图3基于ELK的日志系统(来源:https://docs.renshuji.com/ELK_demo.html)

除了通过监控和日志系统来关注发布后的反馈外,在研发测试过程中的质量反馈也很重要。“质量是构建出来的,而不是测试出来的”,越到研发阶段后期发现的缺陷,其修复成本也越高,因此从经济学角度最好的方法就是在缺陷产生时就尽快发现并进行修复。

DevOps实践推崇把软件交付过程中的质量检查和评审工作实现工具化和线上化,具体的方法就是在开发、测试、发布和运维的各个阶段都设置准入准出的标准,且能够自动化地高效执行和反馈。参考下图:

图4 DevOps准入准出(参考“DevOps五大理念与落地实施-张乐”)

3)持续学习与实践的技术实践:

学习型组织会将线上故障视为学习的机遇,而不是一味追求责罚。源自于Netflix的混沌实验,通过不断主动模拟生产故障和事件来使研发和运维团队能够习惯于在常规的故障水平上工作,还能使系统服务能够具备自我恢复能力。而混沌工程的诞生正是Netflix内部团队在日常工作中持续学习和实验的成果。混沌工程的具体实施步骤如下:

图5 混沌工程如何开展

以上只是罗列了一些比较代表性的技术实践,而DevOps还包含很多优秀的技术实践,如持续演进的架构改进、持续集成、自动化测试和灰度发布等,都能够给整个过程带来效率和质量的提升。

DevOps带来的收益

DevOps旨在通过在组织文化、交付流程和工具技术三个层面的改进,打破研发、测试和运维等不同角色人员之间的隔阂,充分发挥工具平台的价值使整个交付流程实现自动化和过程可视化。最终能够帮助企业解决以下三个问题:

• 缩短市场响应时间,能够使企业更快速的发布新的产品或服务。

• 减少技术债务,避免IT系统和研发团队陷入恶性循环。

• 消除脆弱性,形成持续演进和弹性的软件系统和IT基础设施。

如果用一个最贴切的词来说明DevOps的价值,那么就是“研发效能”的提升。从2014年开始至今持续每年一期的《DevOps 状态报告》中给出了个四个关键指标来衡量研发效能,具体如下图:

图6 研发效能度量指标

除了这四个指标之外,目前很多团队也在此基础上开支阔叶,具体会包含一些研发过程指标,例如:

图7 研发过程指标


而这些效能指标的收集、分析和度量都离不开工具和平台的支持,依靠人工收集数据是低效和不现实的。

DevOps工具

DevOps工具涵盖了交付过程中各个阶段,分别包含了协同、计划、源代码管理、缺陷跟踪、配置管理、持续集成、制品管理、监控告警、自动化测试、开发平台和数据库等不同类型的工具平台。

图8 DevOps工具类型

把这些不同类型的工具串联起来就形成了DevOps工具链,大多时候会基于开源工具和商业化工具结合形成的一个完整的工具链路。

图9 DevOps工具选型案例

DevOps平台的演进

DevOps目的是为了打破部门墙,提高不同不同角色之间的协作。而现实中,在不同种类的研发效能工具之间也是存在一堵“墙”的。而从DevOps工具到平台的演进,能带来一个很大的收益就是打通各个单独领域的自动化工具,通过紧密协作使这些工具能够实现一加一大于二的效果。

首先要做的是工具链的打通,比如通过持续集成在测试环境内部形成闭环,再通过持续交付把全流程打通。这样整个研发过程的数据都能够通过工具来收集,从而进行全链条的效能度量。然后更进一步从一站式工作平台、效能度量平台和开放平台三个方向去实现平台化,目的是为了从用户体验、平台价值和开放合作等方面带来一个较大的提升。

图10 DevOps平台演进过程

DevOps趋势和展望

2023年的技术趋势会对DevOps产生哪些影响呢?在一月份的Gartner 网络研讨会上总结了七个趋势,分别是:

• 价值流交付平台(Value Stream Devlivery Platforms)

• 人工智能增强的软件工程(AI-Augmented Software engineering)

• 内部开发平台(Internal Developer Portals)

• GitOps实践

• 站点可靠性工程(Site Reliability Engineering)

• 混沌工程(Chaos Engineering

• 软件供应链安全(Supply Chain Security)

小结

DevOps的广度涉及企业内部IT组织的方方面面,相关从业人员还需要注重DevOps涉及的各个子领域的深耕和实践,而不能仅仅是浮于表面,才能真正推动其实践的落地,并产生相应的收益和效果。

参考资料:

1. 《DevOps精要:业务视角》

2. 《DevOps实践指南》

3. 《2022 加速:DevOps状态报告》

4. The Top Technology Trends Impacting DevOps

作者简介:

熊志男,高级DevOps咨询师,北京翰德恩管理咨询有限公司。曾担任京东行云DevOps平台的产品经理、京东数科一站式自动化测试平台的架构师和京东商城代码质量平台的负责人。

云上软件工程社区2022年度创新技术专家,曾担任QECon2021的自动化测试专场出品人,测试窝社区联合创始人。

翰德恩咨询((hardenx.cn)是一家由华为系专家联合创办,专注于企业级敏捷&DevOps落地咨询、IPD落地咨询和数字化转型教育的企业,沉淀10年+的众多500强实战经验,为企业提供从业务到交付的端到端全价值链赋能

今天,DevOps已经成为⼀套广为熟知的实践方法集和文化价值观,它可以帮助任何规模的组织缩短软件发布周期,提升软件质量、安全以及快速获取产品开发反馈的能力。据《2017全球DevOps现状调查报告》,成功应用DevOps的高效能组织,在生产力和稳定性方面有明显的优势,包括:高出46倍的部署频率、快出440倍的前置时间、快出96倍的故障恢复时间、低出5倍的变更故障率。

DevOps Professional课程的核⼼内容围绕DevOps实践的三步工作法。这三种方式包括:流Flow、反馈Feedback、学持续学习和实验Continuous Learning and Experimentation。第一步是从开发到运维再到客户,实现从左到右快速流动;第二步是从所有利益干系人到价值流,实现从右到左快速反馈;第三步是通过创建高度信任的实验和风险承担文化,促进学习。此外,还涵盖了各个阶段至关重要的安全问题及在变更期间保持合规性。

目标群体包括(不限于)软件开发人员、系统工程师、DevOps 工程师、产品和服务负责人、项目经理、测试工程师、IT 服务管理操作和支持人员、流程经理、精益 IT 从业人员、敏捷项目经理等。

  • 权威体系:以最新出版的被誉为“DevOps圣经“的《DevOps Handbook》为核⼼实践体系;课程体系由全球多位专家⽼师合作设计,其中包括来⾃美国、加拿大、中国、印度、西班牙、瑞士、荷兰、巴西、法国等9个国家共计20位顶级专家;
  • 深入浅出:本课程对于参训学员的岗位角色、管理层级、技术能力、工具经验等没有特别的要求,只要您作为DevOps团队中的⼀员(开发、测试、运维或架构方向),或者您作为IT服务管理的专业人员、想要全面了解或推进导⼊DevOps实践,就可以来进⾏系统性的学习并从中受益;
  • 案例详实:以DevOps三步法知识体系为主线,穿插2个游戏沙盘,并包括10+个详实的DevOps企业实战案例分享,案例涵盖国外Google/Facebook/ Amazon/Netflflix/Etsy/eBay、国内B/A/T/Ping'an等顶尖企业。

发布于 2023-04-21 11:19・IP 属地北京