核心概念
本文介绍 Zadig 相关概念,用户可以通过本文对 Zadig 有一个简单的了解。
假设你已经熟悉核心的 Git、Docker、Kubernetes 和 Continuous Delivery 概念
项目
Zadig 中的项目包括工作流、环境、服务、构建、测试、代码扫描等资源,用户在项目中可以进行服务开发、服务部署、集成测试、版本发布等操作。
工作流
典型的软件开发过程一般包括以下几个步骤:
编写代码 -> 构建 -> 部署 -> 测试 -> 发布
工作流就是 Zadig 平台对这样一个开发流程的实现,通过工作流来更新环境中的服务或者配置,目前支持产品工作流和自定义工作流。
产品工作流
产品工作流中包含完整的构建 -> 部署 -> 测试 -> 分发流程,简化示意图如下所示:
各个阶段的说明如下:
- 构建:拉取代码,执行构建
- 部署:将构建产物部署到环境中
- 测试:执行自动化测试,对部署结果进行验证
- 分发:完成测试验证后,将构建产物分发到待发布的仓库
自定义工作流
在自定义工作流中,可以自由编排任务,自定义执行步骤,目前支持的任务类型包括:构建、部署、测试、项目管理、配置变更、数据变更、自定义任务。
环境
Zadig 环境是一组服务集合及其配置、运行环境的总称,与 Kubernetes 的 Namespace 是一对一的关系,使用一套服务模板可以创建多套环境。
服务
Zadig 中的服务可以理解为一组 Kubernetes 资源,包括 Ingress、Service、Deployment/Statefulset、ConfigMap 等,也可以是一个完整的 Helm Chart 或者云主机/物理机服务,成功部署后可对外提供服务能力。
服务组件
服务组件是 Zadig 中可被更新的最小单元,一个服务中可包括多个服务组件。不同项目中的服务组件信息如下表:
项目类型 | 服务组件来源 | 服务组件名称 | 服务组件镜像信息 |
---|---|---|---|
K8s YAML 项目 | 服务 K8s YAML 配置中的 Deployment、Statefulset 资源 | 对应资源的 container 名称 | 对应资源的 container 镜像 |
K8s Helm Chart 项目 | 服务 Helm Chart values.yaml 文件 | values.yaml 文件中的镜像名称 | values.yaml 文件中的镜像 |
K8s 托管项目 | 被托管服务实例中的 Deployment、Statefulset 资源 | 对应资源的 container 名称 | 对应资源的 container 镜像 |
服务组件是服务构建配置中的一部分。为服务组件配置构建后,运行工作流时可选择对应的服务组件对其进行更新。
构建
Zadig 构建属于服务配置的一部分,同时在工作流运行阶段会被调用,与服务是一对多的对应关系,即一套构建可以支持多个服务共享。
测试
Zadig 测试属于项目的资源,同时也可以作为一个非必要阶段在工作流中调用,支持跨项目。
代码扫描
Zadig 代码扫描属于项目的资源,支持在自定义工作流中编排使用。