查看原文
其他

炫酷实用的 DevOps 仪表盘,你值得拥有的交付流水线信息整合工具

2018-01-08 张乐 DevOps时代

在上一篇文章:大象翩翩起舞!国外大型银行 DevOps 转型干货总结 中,我讲到美国最大的数字化银行之一Capital One的DevOps转型思路和一些核心原则、关键技术点。

值得一提的是,在敏捷与DevOps转型的过程中,他们从Closed Source First的思路转变为Open Source First,积极拥抱开源,并且能够向业界贡献开源工具。他们相信开源是一种开展业务的良好方式,让人们聚集在一起创建优秀的产品,并且能够让人们认识到共享带来的收益。

下面我们就来研究下Capital One开源的DevOps仪表盘工具Hygieia

一、DevOps仪表盘的价值

做事情应该『以终为始』,在了解仪表盘工具的具体功能之前,我们先谈下这款工具的价值所在。

在《DevOps Handbook》中,提出了DevOps实施的三步工作法。

  • 三步工作法的第一步,让价值从左到右快速流动。通过建设持续交付流水线,我们已经完成了涵盖需求、编码、构建、测试、集成、部署、发布等多个阶段的软件研发流程的自动化,提升了交付效率;

  • 三步工作法的第二步,建立快速和持续的从右到左的反馈。通过建设反馈环,可以在软件生命周期的更早阶段快速发现和修复问题,让整个交付流程更加透明,暴露出瓶颈点并针对性解决;

  • 三步工作法的第三步,持续的学习和实验。构建更为安全的工作系统,并将局部发现转化为全局改进,促进组织学习。

DevOps仪表盘工具Hygieia主要聚焦在DevOps三步工作法的第二步,即可视化地提供交付流水线全过程的有效反馈。

Hygieia社区管理员Tapabrata Pal(人们通常叫他"Topo")说,Capital One曾经尝试寻找各种商业与开源的仪表板工具。如今市面上已经出现了一些优秀的工具,但他们都没有提供所需的内容,即持续交付流水线的健康状况,包括提交代码直至部署到生产环境,以及软件的健康状况与质量方面的重要信息,于是他们选择选择了自主开发并开源出来。

二、仪表盘的主要功能

要使持续交付流程在组织中取得成功,我们需要快速反馈。参与产品开发过程的每个人都应了解交付流水线的健康状况,包括产品负责人、开发工程师、测试工程师、运维工程师、信息安全工程师、发布工程师以及管理者等。

另外,交付流水线中的每个阶段的透明性也非常关键。尤其是大型组织或复杂产品,需要由多个敏捷团队共同协作开发时,这一点将尤为重要。

通过使用Hygieia仪表盘,我们将能够增强交付流水线的反馈和透明性。每个工作在流水线上的工程师或交付的管理者都能够看到:

  • 团队开发的用户故事,哪些故事尚未完成,哪些已经完成

  • 哪些代码已经提交,提交的频率怎样,是谁提交了代码

  • 有哪些构建正在进行中,哪些构建失败了,造成失败的原因是什么

  • 代码静态分析结果,代码安全扫描结果,单元测试结果以及测试覆盖率,功能测试及非功能测试执行结果

  • 各种运行环境,以及代码在这些环境中的部署状态

  • 哪个版本的软件部署在哪个环境中,以及哪些部署失败了

  • 不同开发阶段中代码的移动情况,包括开发、测试、集成环境中的代码提交、构建以及部署情况

  • 每个阶段都会显示等待进入下一阶段的提交数量,以着重表示每个阶段之间的等待时间

Hygieia能够展示整个交付流水线的完整视图,从用户故事或需求,一直到生产环境中的代码部署。它能够恰到好处地显示信息,让产品团队中的相关人员能够采取正确的行动,以修复某些出错的部分。

仪表盘同时展示了质量方面的信息,让产品负责人决定是否要在下一个Sprint中加入某些质量改进方面的工作。通过其中展示的信息,还能够帮助团队对于流水线本身的设计展开讨论:测试用例的运行时间是否过长?某个流程是否降低了整体的流动速度?

Hygieia所展示的信息能够让我们为交付流水线引入一些积极的改进。举例来说,在Capital One公司内部推广Hygieia的早期阶段,许多团队的仪表板上所显示的单元测试覆盖率以及未关闭的严重代码问题分析结果有些惨不忍睹。这些团队随即采取了相应的措施,在常规的Sprint中加入了改进性的工作,而他们也从管理者那里得到了良好的支持。

三、仪表盘的主要视图

视图是展示数据的主要机制。Hygieia仪表盘提供了四种主要视图:

  • 组合视图。展现产品细节信息,包括当前Sprint中的Feature、代码提交情况、持续集成活动,代码分析、安全分析、单元测试、功能测试结果、部署和环境状态等。

  • 流水线视图。展现每个组件从开发到测试,再到部署的整个生命周期过程。

  • 产品视图。展现每个配置的产品的从开发到部署的整个生命周期过程。

  • 云环境视图。展现应用实例、资源占用率等信息。

以下是一些关键页面截图:

代码提交阶段:

每个阶段的提交细节:

部署阶段:

生产阶段:

流水线健康情况:

流水线视图:

云资源视图:

云资源细节:

四、仪表盘的技术细节

技术架构图:

Hygieia可以集成的工具,比起前两年已经极大丰富啦

  • 需求管理:Jira、VersionOne、Gitlab

  • 配置管理:Bitbucket、GitHub、Gitlab、Subversion

  • 构建管理:Bamboo、Jenkins、Jenkins-codequality、Jenkins、Cucumber、Sonar

  • 部署管理:uDeploy、XLDeploy

  • 环境管理:AWS

  • 性能管理:AppDynamics

  • CMDB:HP Service Manager (HPSM)

  • Library Policy:Nexus IQ

  • Artifact Repository:Artifactory

  • ChatOps:HipChat

Hygieia居然能够集成这么多的主流工具,而且针对每种工具,Hygieia都已经为你开发好了对应的信息采集器,小伙伴们是不是都很激动!别急,文末会给出源码地址和相关详细文档信息。

五、总结

管理大师彼得德鲁克曾经讲过:如果你不能度量它,你就无法改进它。

DevOps的方法与实践并非一朝一夕就能够实施到位,也不是引入了自动化工具、建设了持续交付流水线就能够轻易达成效率和质量提升的目标。

问题的关键点在于获得整个交付生命周期全过程的有效反馈,不断提升交付过程的透明度,针对度量结果进行持续的、有针对性的改进。

持续学习、持续实践。DevOps,我们一直都在路上!

六、Hygieia相关资源

建议先收藏/转发,然后在电脑上查看。

项目地址:
https://github.com/capitalone/Hygieia

介绍文档:

http://www.capitalone.io/Hygieia

https://www.infoq.com/news/2016/03/hygieia

本文转载自乐神(张乐)个人公众号「DevOpsClub」

更多相关文章阅读

大象翩翩起舞!国外大型银行 DevOps 转型干货总结

我们如何转型微服务?

芳华永在!一个老 IT 的20年奋斗史

实现敏捷框架的比较:Scrum 方法 vs 看板方法 vs 精益开发 vs 极限编程

臺灣精益老專家:看板的系統思維

DevOps 转型之旅的正确姿势

如何开始我们的 DevOps 转型之旅?

项目实施 DevOps 时,我们是如何做测试的?

谷歌的 DevOps 文化

关于 DevOps,你还应该知道这些

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存