zadig

https://koderover.com/zadigx

https://docs.koderover.com/zadig/Zadig%20v1.17.0/quick-start/introduction/

zadig 还有个 企业版的 zadigx。

Zadig 介绍

Zadig 是 KodeRover 公司基于 Kubernetes 自主设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,具备灵活易用的高并发工作流、面向开发者的云原生环境、高效协同的测试管理、强大免运维的模板库、客观精确的效能洞察以及云原生 IDE 插件等重要特性,为工程师提供统一的协作平面。Zadig 内置了 K8s YAML、Helm Chart、主机等复杂场景最佳实践,适用大规模微服务、高频高质量交付等场景。我们的目标是通过云原生技术的运用和工程产品赋能,打造极致、高效、愉悦的开发者工作体验,让工程师成为企业创新的核心引擎。

我们的愿景:工程师 + Zadig = 商业上的成功

业务架构介绍:

采用微服务架构模式,前后端分离。

代码主要在这里

后端代码

1
2
https://github.com/koderover/zadig

前段代码:

1
https://github.com/koderover/zadig-portal

zadig 包含哪些微服务

后端 包含的组件如下:(makefile里面查看到,官方没有找到具体的说明)

1
2
3
4
5
6
7
8
9
10
11
12
MICROSERVICE_TARGETS = \
aslan \
cron \
hub-agent \
hub-server \
init \
jenkins-plugin \
packager-plugin \
predator-plugin \
resource-server \
ua \
warpdrive
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.
├── aslan 1
├── cron 2
├── hub-agent 3
├── hub-server 4
├── init 5
├── jenkins-plugin 6
├── predator-plugin 7
├── reaper 8
├── ua 9
├── warpdrive 10

├── packager-plugin
├── jobexecutor
└── zgctl

从安装脚本中看到,这个zadig依赖的中间件还是比较多的 :

1
2
3
4
5
6
7
8
9
k8s 
helm

mongodb

mysql

minio

使用 Helm Chart 的方式部署到 K8s 集群中

部署完成后查看 zadig 相关服务状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ kubectl get pods -n zadig
NAME READY STATUS RESTARTS AGE
aslan-69d6759654-rtsrn 2/2 Running 0 155m
config-547fb89564-vkj84 1/1 Running 1 (153m ago) 155m
cron-f8544788c-5b8fl 2/2 Running 1 (143m ago) 155m
dind-0 1/1 Running 0 155m
discovery-74945fc6d4-sn8ws 1/1 Running 0 155m
gateway-6bdf56976-gg4nx 1/1 Running 3 (154m ago) 155m
gateway-proxy-f7d46ccb9-bln5j 1/1 Running 0 155m
gloo-66d69d848f-khvfk 1/1 Running 0 155m
hub-server-7fb68b65cb-4c7lp 1/1 Running 0 155m
nsqlookup-0 1/1 Running 0 155m
opa-b5df66445-stjjp 1/1 Running 0 155m
picket-84d4758c5f-kp88l 1/1 Running 0 155m
podexec-57db555984-tgrk8 1/1 Running 0 155m
policy-67f7d4f744-n9g5l 1/1 Running 0 155m
resource-server-bcd7cd7f8-krpg6 1/1 Running 0 155m
user-5c95bb8fb7-z8wg5 1/1 Running 1 (153m ago) 155m
warpdrive-7ffff47d47-n2vwb 2/2 Running 0 155m
warpdrive-7ffff47d47-rwpq4 2/2 Running 0 155m
zadig-dex-c575978d9-n68q9 1/1 Running 1 (150m ago) 155m
zadig-init--1-f98xb 0/1 Completed 0 155m
zadig-minio-fb7fdd6b6-cfjss 1/1 Running 0 155m
zadig-mongodb-5c59975745-4s24h 1/1 Running 0 155m
zadig-mysql-0 1/1 Running 0 155m
zadig-portal-5cdd6d9fdd-6g8ds 1/1 Running 0 155m

zadig 架构

用户入口:

zadig-portal:      Zadig 前端组件
kodespace:         Zadig 开发者命令行工具
Zadig Toolkit:     vscode 开发者插件

API 网关:

Gloo Edge: Zadig 的 API 网关组件
OPA:       认证和授权组件
Dex:       Zadig 的身份认证服务,用于连接其他第三方认证系统,比如 AD/LDAP/OAuth2/GitHub/..
User:      用户管理,Token 生成

Zadig 核心业务:

Picket:    数据聚合服务
Aslan:     项目/环境/服务/工作流/构建配置/系统配置等系统功能
Policy:    OPA 数据源,策略注册中心
Config:    系统配置

Workflow Runner:

warpdrive:         工作流引擎,负责 reaper、predator 实例的创建销毁等管理操作
reaper:            负责执行单个工作流作业中的构建、测试等任务
predator:          负责执行单个工作流作业中的镜像分发任务
plugins:           工作流插件
Jenkins-plugin:    用于触发 Jenkins job,显示状态和结果等
Cron:              定时任务,包括环境的回收,K8s 资源的清理等
NSQ:               消息队列(第三方组件)

数据平面:

MongoDB:   业务数据数据库
MySQL:     存储 dex 配置、用户信息的数据库

K8s 集群:Zadig 业务运行在各种云厂商的标准 K8s 集群之上

参考 https://www.qikqiak.com/k3s/devops/zadig/