FinOps有望降低企业50%+的云成本! 了解详情
写点什么

通过 Hygieia 的 DevOps 仪表板展现交付管道的端到端聚合视图

  • 2016-04-07
  • 本文字数:3196 字

    阅读完需:约 10 分钟

Capital One 在三月份刚刚发布了开源项目 Hygieia 的版本 2.0,新的特性包括:支持多个团队;新增了一个程序级别的仪表板,以展示多个团队的统一视图;一个 Jenkins 输出发布工具,以及一个 GitHub 的 Webhook 调用端。Hygieia 在一个单一面板的 HTML 客户端中集成了多种部件,包括用户故事追踪、repository、构建、质量、部署以及监控工具,让用户能够方便地访问各种重要的 DevOps 指标。

新的程序级别仪表板可以聚合多个团队、或大型团队的信息,这些团队可能会使用不同的工单和用户故事追踪工具、代码仓库以及构建工具。在管道的每个阶段都会显示重要的指标,例如产品的健康情况:

图片来源:capitalone.io

此外,在程序视图中还将显示管道的速度以及提交的数量:

Hygieia 中的仪表板可进行自定义:用户可以选择 VersionOne 或 Jira 进行用户故事的追踪,选择 Subversion 或 GitHub 作为代码仓库,选择 Jenkins 或 Hudson 进行构建,选择 Selenium 和 SonarQube 用于质量检测,以及选择 uDeploy 或 Jenkins 进行部署。除此之外,还有更多的插件可以进行选择。

下图展示了一个团队级别仪表板的示例:

Hygieiak 中的仪表板可以提高整个流程的透明度,以此帮助用户建立反馈循环,而这正是精益开发与 DevOps 的基本概念。这些仪表板中包含了各种可交互元素,可连接到相关的工具,并深入了解其中的内容。

InfoQ 与 Capital One 的 Hygieia 团队进行了一次访谈:

InfoQ:能否请你做个简单的自我介绍,并描述一下你在 Hygieia 的开发中所扮演了的角色?

我的名字叫做 Tapabrata Pal(人们通常叫我“Topo”),是 Hygieia 社区的管理员。

Capital One 一直致力于 DevOps 方面的工作,我们曾经尝试寻找各种商业性与开源的仪表板工具。如今市面上已经出现了一些优秀的工具,但他们都没有提供我们所需的内容,即持续交付管道的健康状况,包括提交至生产部署环境的代码,以及软件的健康状况以及质量方面的重要信息。

因此,在 2013 年夏季,我的同事 Amit Mawkin 与我共同开发了一个概念验证。在成功地开发出这个概念验证之后,我们就为开发团队、主管以及项目的担保资金负责人进行了演示。我们的开发是以一种“Inner Source”的形式进行的,这也符合 Capital One 的开源项目开发流程。在 Capital One,员工对于开源项目的使用与贡献的兴趣和渴望呈现出了爆炸式的增长,同时,我们也增强了负责开发内部软件的工程团队的实力。我们相信,使用开源软件而不是具有许可的产品能够带来巨大的利益。

我们在 2013 年晚些时候在内部发布了这个产品,对其进行了充分的测试,并且进行了多次重构与重新设计。在 2015 年夏天,我们将这一项目进行了开源(取名为 Hygieia)。

如今,我担任了 Hygieia 社区管理员的职责。这个项目的主要贡献者包括 Amit Mawkin、Jeffery Damick 与我本人,我们每人负责的内容都对应着 Capital One 中的一条产品线。

InfoQ:Hygieia 是如何改善 Capital One 的持续交付流程的?

要使持续交付流程在任何组织中取得成功,透明性是一个关键的需求点。这种透明性体现在交付管道中的每个阶段。如果你所参与的某个大型产品是由多个敏捷团队共同开发的,那么这一点将显得尤为重要。透明性的另一个方面在于快速反馈。参与产品开发过程的每个人都应了解管道的健康状况,包括产品负责人、开发者、测试工程师、运维工程师、信息安全工程师、发布工程师以及管理者等等。

通过使用 Hygieia 仪表板,我们将能够增进管道的透明性。每个参与者都能够看到(a)团队所开发的用户故事,哪些故事尚未完成,哪些部分已经完成。(b)哪些代码已经提交,提交的频率是多少,是哪些人提交了代码。(c)有哪些构建正在进行中,哪些构建失败了,造成失败的原因是什么。(d)代码的静态代码分析结果,代码的安全扫描结果,单元测试结果以及测试覆盖率,功能性测试用例执行结果。(e)各种运行环境,以及代码在这些环境中的部署状态。(f)通过一个部署管道,展示哪个版本的软件部署在哪个环境中,以及哪些部署失败了。

除了以上功能之个,我们最近还发布了该产品的一个更新版本,你可以看到不同开发阶段中代码提交的移动情况,包括对 DEV、QA、INT 环境中的代码提交、构建以及部署。每个阶段都会显示等待进入下一阶段的提交数量,以着重表示每个阶段之间的等待时间。这有助于团队讨论如何减少等待时间。我们认为这是实施精益开发的正确方式,它能够加速持续交付管道的运行。

InfoQ:这个产品的主要优点体现在哪里,它对于组织中的哪些角色能够带来最大的利益?

已经有许多工具能够帮助团队创建一个持续交付管道,而每个工具都可能有其不同之处。这些不同点取决于各种因素,包括产品本身使用的技术栈、团队的选择、工具是否可用等等。这些工具都带有各自不同的仪表板,以显示整个管道信息中的一小部分。

Hygieia 则能够展示整个管道的完整视图,包括用户故事或需求,乃至生产环境中的代码部署。它能够恰到好处地显示信息(这是令我感到自豪的部分),让产品团队中的相关人员能够采取正确的行动,以修复某些出错的部分。它同时展示了质量方面的信息,让产品负责人决定是否要在下一个 sprint 中加入某些质量改进方面的工作。通过其中展示的信息,还能够帮助团队对于管道本身的设计展开讨论:测试用例的运行时间是否过长?某个流程是否让

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

对于 Hygieia 的使用者,我敢说这些仪表板能够帮助参与软件开发过程的所有人:包括管理者、产品负责人、开发者、测试工程师、应用安全工程师、发布工程师等等。

InfoQ:该产品目前所支持的部署编排工具是 uDeploy,是否有计划提供与其他工具的对接?

是的。通过我们提供的 Jenkins 插件,使用 Jenkins 进行应用部署的团队就能够将应用部署状态提交至 Hygieia。我们在内部正在设计与 Chef 和 Ansible 的集成。

Hygieia 不依赖于具体的工具,整个产品的架构选用了基于插件的架构。我们已经为内部团队所使用的工具,以及在行业中非常流行的一些工具提供了插件。如果某个团队选用了其他工具,也可以非常方便地创建新的插件。我们还提供了 REST API,可通过远程调用这些 API 将数据发布至 Hygieia 中。我们希望社区能够为 Hygieia 做出回馈。

InfoQ:你是否能够展望一下未来的特性路线图?

我们将继续改进这个产品,以加入一些对于社区来说非常重要的特性集。我们正在致力于开发与 AppDynamics、Chef、Ansible 以及其他一些测试工具的集成。

以下是 Hygieia 未来会改进的两个方面:

(a)对于各环境的监控,我们希望能够在仪表板中展示大量与基础设施相关的信息
(b)在整个流程中展现特性的流动以及代码提交信息。请回想一下持续交付的观念,它的目的就在于更快地交付业务价值,并保证产品具有良好的质量。因此。业务人员需要了解这个产品所带来的价值。

我是狗食(dogfooding)过程的忠实拥戴者。在组织内部,我们有许多大型的内部产品团队都在积极地使用该产品。Hygieia 会注意到它拥有一个活跃的、令人自豪的社区,这是因为我们的内部使用者为我们提供了大量反馈。我们将定期开发与发布新的特性。

InfoQ:你还有哪些内容希望为读者分享吗?

在 Capital One,我们相信开源是一种开展业务的良好方式,并且有充分的理由证明这一点:它是一种让人们聚集在一起创建优秀产品的强大方式,并且能够让人们理解互利的思想。银行业重新洗牌的时机已经成熟,这也是为什么 Capital One 要选择拥抱开源的方式重新定义该行业的产品、服务和数字体验,它能够以一种更合理的方式将人与利益连结在一起。

查看英文原文 DevOps Dashboard Hygieia Aggregates End-to-End View of the Delivery Pipeline

2016-04-07 19:009512
用户头像

发布了 428 篇内容, 共 167.0 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

亿级系统的Redis缓存如何设计?

Java架构师迁哥

融云2021 X-Meetup技术沙龙 探讨音视频技术新方向

融云 RongCloud

【LeetCode】将句子排序Java题解

Albert

算法 LeetCode 5月日更

快成物流科技 x mPaaS | 小程序容器加持下的技术架构“提质增效”

蚂蚁集团移动开发平台 mPaaS

小程序 移动开发 mPaaS

5G进京 “赶考”记:“占得上、保持稳、体验优、信号好”四道考题,分别打几分?

脑极体

RDBMS与HBase的对比

五分钟学大数据

大数据 HBase 5月日更

不给电脑,我用手机敲命令十分钟完成了zabbix监控,面试官当场下offer

沐风

监控 zabbix

云小课|DSC帮您管数据,保障您的云上数据安全

华为云开发者联盟

数据安全 华为云 数据安全中心 云上数据 DSC

从根上理解用户态与内核态

程序猿阿星

系统上下文 用户空间 内核空间 指令集

“为爱而生 温暖陪伴”——2021年中国洗地机行业发展峰会圆满落幕

DT极客

🚄【Redis 干货领域】帮你完全搞定Sentinel运作原理

洛神灬殇

redis哨兵模式 redis哨兵 redis哨兵集群 redis sentinel 5月日更

墨奇科技宣布完成 2.5 亿元 B 轮融资

E科讯

GitHub收藏最高的10个Java练手项目推荐

北游学Java

Java spring 项目实战

2021高级Android笔试总结,Android系列学习进阶视频

欢喜学安卓

android 程序员 面试 移动开发

2021金三银四Android大厂面试题来袭!高级面试题+解析

欢喜学安卓

android 程序员 面试 移动开发

为Android Studio设置代理,解决经常遇到的编译不通过的问题

寻找生命中的美好

android Android Studio vpn Shadowsocks

多方安全计算:隐私保护集合求交技术

华为云开发者联盟

数据集 PSI 隐私保护集合交集 可信 伪随机函数

GitHub开源史上最大规模中文知识图谱

不脱发的程序猿

人工智能 自然语言处理 GitHub 开源 中文知识图谱

一张图看懂嵌入式系统组成

不脱发的程序猿

硬件开发 嵌入式系统 嵌入式学习路线

国内日志监控分析王者之sls

代码先生

分布式日志 海量数据分析 日志监控分析

uniapp 使用原生子窗体进行视频聊天

anyRTC开发者

uni-app 音视频 WebRTC RTC

CODING CD + Nginx Ingress 实现蓝绿发布

CODING DevOps

DevOps 敏捷开发 研发管理 CODING 研发团队

推特视频怎么保存: 免费下载Twitter视频教程

科技猫

twitter 分享 经验分享 教程 视频处理

并行文件存储和分布式 NFS 文件存储有何不同

焱融科技

容器 云原生 高性能 文件存储 技术博客

This BigData,Hadoop组成及生态

Simon郎

大数据 hdfs YARN hadoop3

阿里架构师478页Java工程师面试知识解析笔记pdf,一份2021年通往阿里的面试指南

Java架构之路

Java 程序员 架构 面试 编程语言

关于OpenHarmony 2.0共建进展

罗燕珊

开源 鸿蒙 OpenHarmony

拍乐云将亮相 QCon 大会,揭秘音视频“两高一低”体验背后的技术

拍乐云Pano

CODING 增强安全漏洞扫描能力,助力团队“安全左移”

CODING DevOps

代码扫描 CODING 代码安全

Too many open files 的四种解决办法

ilinux

打破固有思维(十五)

Changing Lin

5月日更

  • 需要帮助,请添加网站小助手,进入 InfoQ 技术交流群
通过Hygieia的DevOps仪表板展现交付管道的端到端聚合视图_DevOps & 平台工程_Grischa Ekart_InfoQ精选文章