为什么要做
CI&CD类的软件中Jenkins是一款开源 CI&CD 软件,作为一个热门开源的项目,插件众多,但在生产中使用有一定的风险,另外也不够完全符合公司个性化的不同需求。
运维人员手动发布,效率低,易出错,没有发布记录,随着应用数量的不断增多,运维疲于奔命,开发叫苦不迭。
综上原因,打算自己动手做一个自动发布的系统
怎么做
bootstrap + jquery + python + flask + mysql
部署
docker
示意图
身在一线,深知发布时有哪些痛点:
- 应用记录靠表格,发一个要查一次,相当痛苦且浪费时间。
- 发布没有一个统一的方式,每个运维写一个脚本,相当吓人
- 我所在公司发布流程是用第三方的简道云做的,发布前要登录上去核对流程,又是一个练眼力的活。。。
- 要发布的包放在跳板机上,还要上去检查一下,且经常需要重发,也不知道开发有没有替换上去。。。你懂得
- 所有的沟通都是与开发qq,钉钉。。。想象一下10几个人一块给你聊的情景。。。
- 每天发了多少,谁也不知道,靠人自觉的拿表格做记录太困难了。。。
如何解决:
- 把应用信息录入发布系统,且可以方便的查询
- 通一发布方式,没有规矩,不成方圆。
- 没花钱买简道云的接口,爬虫去检验流程
- 自动验证包是否已上传到跳板机,是否有更新
- 发布前发布后钉钉消息通知
- 发布记录存到数据库,前端做图表展示,清晰多了
做出来的效果
-
钉钉扫码登录,这种方式还是很赞的,安全性便捷性有很大提高.同时也保留了用户名密码登录的方式,以备用。
-
登录后
主要功能
- 发布应用,以发布was类应用为例
分发布前端和后端,发布后端应用又分2种,由于公司有部分应用是以was(websphere application server)为中间件的,was类的应用在发布时需要调用was提供的soap接口(写了一个jython脚本),另一类非was的直接调脚本就可以发布
-
发布
-
发布检查
- 查看发布过程日志
-
回退
- 导出线上程序包
-
钉钉消息通知
启停应用,查看应用状态
- 发布记录
-
记录查询导出
- 图表