方案思路

从代码仓到服务的预发布状态,涉及 GitLab 分支策略、工作流配置、环境策略、K8s 集群。此方案包含全流程的策略设计。

快速入门

Zadig快速上手---管理员实施手册 (1)

交付方案对比分析

根据对现状分析,使用

Zadig 方案:K8s

YAML

方案。

项目方案细节

使用 Zadig K8s YAML模版 + 环境配置入库管理

  1. 制作通用的 K8s YAML 模板
  2. 新建“K8s YAML”类型项目
  3. 从模版库->新建服务

服务定义使用原生的 K8s YAML 方式,提取出不同的环境变量来区分集成环境。当前 Zadig 的 Partner客户中也有一种比较主流的用法。**参考 Lark 使用的方案,使用方式如下:**Lark 其中一个小组(视频会议)上百个微服务,共创建 4个同构环境,日常开发只需要提交代码,即可触发工作流 做代码的构建部署和自动化测试。使用 Zadig Webhook 动态分配空闲环境的能力,合理利用环境资源。具体使用过程如下:

  1. 开发 A 提交一个更新 service-a 的 PR1
  2. PR1 触发工作流 -> 构建 service-a ->更新 ENV1 的 service-a -> 针对 ENV1 执行测试脚本
  3. 开发 B 提交一个更新 service-b 的 PR2
  4. PR2 触发工作流 -> 构建 service-b ->更新 ENV2 的 service-b -> 针对 ENV2 执行测试脚本
  5. PR1、PR2 合并 Master后分别触发工作流->构建 service-a、构建service-b ->更新所有的环境

分支开发,主干发布

关键词:Feature 分支、主干发布、Release 分支发布每一个核心功能都拉出一个 Feature 分支用于功能开发,完成后将 Feature 分支合回主干。

核心流程