Hygieia 部署指南(1)介绍篇

来源:互联网 发布:智汇诚网络 编辑:程序博客网 时间:2024/05/02 02:20

Hygieia 部署指南(1)介绍篇

Hygieia是什么

Hygieia是CapitalOne在2015年推出的DevOps又一开源利器,它是一个可配置的易于使用的Dashboard,用于实现DevOps的整个流水线的可视化。而Hygieia的初衷也是如此,当时Capitalone研究了市面上的很多产品,但是没有一个能够真正地横跨其所需要的程度满足其可视化的需要。让人眼前一亮的界面会使人觉得它收钱都是理所应当。不单单是用心的界面,更重要的还是其强大的功能和良好的架构引来了总多的追随者。大部分人了解到Hygieia可能是BLACKDUCK,Hygieia获得了BLACKDUCK 2015的Open Source Rookies大奖。

Blackduck2015 open source rookies

为什么要开发Hygieia

虽然BlackDuck在对Hygieia的说明中提到“不仅仅是科技巨头才能在open source领域有所作为”之类的话但是CapitalOne绝对不是什么泛泛之辈,Capitalone是全美十大银行之一,强大的实力和真实的业务需求是Hygieia成功的重要原因。Hygieia也把其为什么进行项目立项以及当时对市面上的产品进行分析之后,这些产品和他们的需求之间的Missing Piece等列了一部分出来。

立项分析

在一定程度上来说,Capitalone要分析和解决的问题在很多企业中都有碰到。我们在给客户进行持续交付或者DevOps的咨询的时候Hygieia所提到的三点也都是一定会涵括的。

  • Automation:工具链整合带来的自动化效应。

    工具链的整合对于提升效率有很大的价值。

  • Measurement:衡量标准。

    DevOps或者持续交付到底能给组织带来什么,不以结果为目标只是大谈文化的DevOps都是耍流氓。

  • 可视化:

    不是缺少Dashboard,而是有太多的Dashboard,但是这些Dashboard里面的信息,只是很少的一部分是我们需要的,Unified Dashboard,统一的Dashboard,或者说Capitalone想要的Dashboard,这个是Hygieia最大的初衷之一。

Hygieia的Dashboard

单一Team的Dashboard

单一Team的Dashboard就长成这样。从这里你能看到Agile开发过程中的Feature相关的信息/源代码Commit次数/Build/代码分析/测试环境到生产环境运行状况等综合信息。在后面讲述Hygieia的组成的时候,你会发现目前想在你的生产环境中做出一张这样可视的Dashboard还是有一定的局限性的。

Team Level Dashboard

组合的Dashboard

Hygieia2.0推出了Product Dashboard。用这种方式可以以一种更加集中的方式把握整体的项目情况,单一Team的Dashboard在这里只是一条信息,从这里你可以非常直观地看到90天之内整个项目集从Source的提交数据到生产环境运行的直观情况。

"Product" or "Program" Level Dashboard

如何安装部署Hygieia

Hygieia架构分析

因为Hygieia主要是使用java等开发使用maven进行管理,数据的存储统一放到mongodb中。
Framework

组件说明

Hygieia从根本上来说就是一个Dashboard,所以唯一的问题就是,它的数据从哪里来。
因为Product Dashboard是由Team Level的Dashboard组成,所以我们用Team Level的Dashboard来进行说明。
组件
- Feature的管理
Hygieia使用Version one和Jira来与之进行结合,Agile开发工具中,Version one和Jira都是大名鼎鼎的,唯一的缺点就是收钱。所以上面也说过要想在你的生产环境中来这么一张还是有一点局限性的。
- Code管理
使用SVN或者Github与之进行结合,Gitlab的支持其官方似乎没有做测试。
- Build
使用Jenkin与之结合
- Quality
使用Sonarube以及HP的Fortify,现在应该是HPE Fortify。HPE Fortify也是业界非常好的产品,也是收费的,但是此处不是特别影响使用,Fortify是作为一个Option的选项的,暂时不需要代码安全分析的时候可以先不用而不影响整体使用。
- Deployment
需要与IBM的Urbancode的UCD进行结合使用,UCD也是一个商业软件,Urbancode专业作DevOps工具链的一家公司,被IBM收购了,在持续交付的工具上,它以前还是卖的不错的。但是近期Ansible的流行对其应该有很大冲击,Hygieia也据称会在2016年度在此处支持Ansible,但是仍然没有看到其官方的更新,对此应该很多Hygieia的使用者都在期待,Hygieia最好不要让大家等太久,以现在的节奏,等太久只能是会被抛弃。

架构说明

架构
Hygieia组件分为api/UI/collector。总结为如下两点:
- api和总collector需要mongodb事前启动和设定完毕。
- UI需要api正常运行才能启动。
collector都是通过非常柔和的RESTAPI的方式与总多的收集对象进行联系,collector都是采用了java进行开发的,通过简单的设定即可启动,当然前提是收集对象也应该是启动的状态。

部署方式

按照官方的指南,Hygieia的部署只有4个步骤,按照这个顺序,大象很容易的就装到冰箱里了。

部署

但是实际没有这么没有美好,Hygieia的安装步骤中也有一些Missing Pieces,按照它的这个步骤,很多人可能连画面怎么启动都找不到。Hygieia的docker镜像多达十几个,当然这种解耦的方式是必然的,但是没有一个像kubernetes的minikube这样的东西,而且UI的Docker的Setup说明中还有明显的错误,另外编译的时候由于各种原因可能不是这么容易,这些坑后面会带你一一越过。
可以部署到物理机或者虚拟机以及docker上。后面我们还会对从源码编译方式还是直接使用官方docker镜像的多种方式进行说明。

总结

Hygieia良好的设计,柔和的RESTAPI等对用户来说都是非常良好的。但是要想使用到其完整功能需要每个企业有JIRA/Fortify/UCD等商业软件的导入可能是很多企业不采用Hygieia的一个重要原因。另外缺少更加清晰易用的说明介绍和上手资料也是制约其不能更快流行的重要原因。

1 0