DevOps利器- Hygieia平台开发部署
前言碎语
Hygieia 是什么?
Capitalone(全美十大银行之一)开源的 DevOps 利器。使用 Hygieia 后,在整个软件开发周期中,用户可以选择 VersionOne 或 Jira 进行用户故事的追踪,选择 Subversion 或 GitHub 作为代码仓库,选择 Jenkins 或 Hudson 进行构建,选择 Selenium 和 SonarQube 用于质量检测,以及选择 uDeploy 或 Jenkins 进行部署等等,当然 Hygieia 不止这点,它的 api 基于 rest 风格插件设计,其他的一些软件工程组件可以很轻松的接入到 Hygieia,他的dashboard 大盘可以展示软件创建到交付的整个生命周期数据。
项目地址:https://github.com/capitalone/Hygieia
Hygieia 架构图?
如架构图,Hygieia 主要由三大部分组成,【api 模块】,【连接器模块(插件模块)】,【大盘模块(ui 模块)】,UI 和 api 是前后端分离的架构,可以单独打包不熟运行
Hygieia 开发用到技术栈?
Hygieia 主要 java 开发的,使用了 spring boot 框架,前端使用 angular.js 开发,阅读实践本文,你需要了解如下相关技术栈:
- 前端相关:node、npm、bower、gulp
- 后端相关:java、spring boot、maven
- 数据库:mongoDB
其中数所有的据都是存储在 mongoDB 中
Hygieia 项目运行部署?
前提是已经有,java 、maven、node、mongoDB 的环境了,这些环境的搭建不在本篇范围内
启动 api 模块
- 项目下载下来后,先 mvn install root 模块,有些查询对象使用了 maven 插件编译生成的,所以必须先编译
- 在 Hygieia\api\src\main\resources\application.properties 中配置你的 mongDB 连接信息,基本不用动了,server.port 先别改,默认使用 8080
- 运行 Hygieia\api\src\main\java\com\capitalone\dashboard\Application.java 中的 mian 方法启动服务
启动 UI 模块
进入 Hygieia\UI 目录下,
- 执行 npm install ,bower install ,这个过程会比较长
- 待所有依赖都下载完成后,执行 gulp serve 启动 UI 模块,默认端口:3000
- UI 模块不配置访问 api 接口地址,默认范围本地 8080 端口,所以刚刚的 api 模块不建议改端口,当然也可以在 gulpfile.js 的 config 中配置
以上步骤没有问题的话,浏览器会跳出 http://localhost:3000/#/, 界面如下图,代表已经成功了
启动插件模块
以 scm 插件 gitlib 为例,Hygieia 支持的插件很多
1. 至 Hygieia\collectors\scm\gitlab\src\main\resources 目录下新增文件 application.properties,配置内容如下
gitlab.host=git.yudianbank.com
gitlab.port=80
gitlab.cron=0/10 * * * * ? #多久同步一次 gitlib 数据
gitlab.protocol=http
gitlab.apiVersion=3
gitlab.firstRunHistoryDays=200
注意 gitlab.apiVersion 版本的差异,gitlib api 的接口会不一样
2. 运行 Hygieia\collectors\scm\gitlab\src\main\java\com\capitalone\dashboard\Application.java 中的 mian 方法启动服务
测试 gitlib 插件?
按如下图例操作,最后可看到软件提交的生命周期
文末结语
Hygieia 框架本身使用 spring boot+angular 前后端分离的架构,在 Hygieia 基础上进行二次开发非常方便,可以很快的基于 Hygieia 定制开发落地具有公司业务特色的 DevOps,乃 DevOps 利器也。