扫码阅读
手机扫码阅读

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

62 2024-01-25

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

参考资料:

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

2. 《DevOps实践指南》

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

4. The Top Technology Trends Impacting DevOps

作者简介:

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

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

原文链接: http://mp.weixin.qq.com/s?__biz=MzAxNDExMDE5NA==&mid=2247503752&idx=1&sn=7c863b3e952692c5e9cb2b0c90e91f93&chksm=9b9ad315aced5a03b560589e8624d7d960edf90683e0483a6f31b0091fee3ea5db000a9801bc#rd

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

42 篇文章
浏览 2117
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线