核心概念

本文介绍 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 代码扫描属于项目的资源,支持在自定义工作流中编排使用。