765DevOps

Thinking is the problem, Doing is the answer !

0%

禅道持续交付(一)-概述及框架

我们基于禅道打造了持续交付系统,整合了多个开源系统(包括禅道zentao、jenkins、gitlab、nexus、harbor、ldap、mysql等等),并进行大量的二次开发,将多个系统功能(项目管理、集成管理、代码仓库管理、编译私服,镜像仓库管理、用户认证等)、多个开发环境(开发环境、测试环境、预发布环境、灰度环境、生产环境等),多种发布流程(代码扫描、版本集成、版本发布等)进行统一整合,提供一套高度集成和高度自动化的项目管理+版本集成发布系统。

1、概述

因为公司大部门在使用禅道进行项目管理、缺陷管理等,所以我们希望基于此对于禅道做二开扩展,支持到CICD,最终将禅道打造成一个DevOps平台。

选择禅道主要原因:

  • 有使用历史,符合大多数业务项目的操作习惯
  • 敏捷管理,基于Scrum的角色且相关流程和功能完善
  • 社区版开源,可以基于源码进行修改

拓展后禅道能力

2、持续交付系统框架

这个比较简单吧,其实有关这种分层的DevOps架构,应该都是大同小异,仅供参考哈😉

img

3、持续交付流程

主要是基于Helm进行K8s的容器部署,整个交付流程如下:

  • 使用Zentao作为项目管理工具:管理基本需求、迭代、缺陷等
  • Zentao也作为用户CICD系统平台,用户再禅道上做集成、构建、部署等操作
  • CICD的后端集成工具:Jenkins
  • 部署至K8s集群中,部署主要的使用是Helm进行部署管理(注:当时使用的是Helm2)

注:我们自己编写了Helm的Template模板工程,基本涵盖了很多的使用场景,这个后续我也会跟进分享给大家,尽情期待……

img

4、工具链选型

其实DevOps工具链产品有很多,大家可以根据自己的实际情况选择,我们基于Zentao打造的持续交付平台选择的是如下工具链。因为当初我们还木有打通持续测试这一环节,所以这个相对有些简陋了,但是还算清晰!

Web端容器

img

Android移动端

img