Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 Release Notes
  • 术语表

    • 术语表

简介

自测模式是 Zadig 为降低环境管理复杂度和部署成本而推出的一种面向开发者的功能模块。当开启了环境的自测模式后,该环境则成为基准环境,开发者们可以基于基准环境快速复制出属于自己的自测环境(即:子环境),并且只关注和自己日常改动相关的服务。对于其上下游服务无需理会,基准环境中会提供这部分服务的能力,快速实现自测联调。图示如下:

自测模式

应用场景

Zadig 的自测模式功能支持用较低成本快速拉起包括部分服务的子环境,在子环境中开发、变更目标服务,并和包括全量服务的基准环境交互来实现自测联调,可使用自测模式解决的问题包括但不限于:

  1. 开发频率快,业务验证需求旺盛,亟需小快跑的方式迭代业务,但缺乏相关工程底座建设。
  2. 微服务的数量大,业务复杂度高,导致建设一套完整的环境成本高,代价大。
  3. 部分微服务因基础技术架构等原因,无法完整地复制出多套完整环境,导致多个团队绑定在一个环境中,环境稳定性难保障。
  4. ......

如何使用

下面以 simple-service 为例来说明如何使用环境的自测模式来实现日常联调。项目中环境和服务背景,以及自测联调需求说明如下:

  1. 项目中共包括 3 个微服务 a、b、c,服务调用链路:a -> b -> c
  2. dev 环境为日常完整稳定的测试环境,包括全部微服务 a、b、c
  3. 日常会对 a 服务进行高频改动,希望能对 a 服务进行充分自测,确定其变更可交付

管理员:开启自测模式

前提

  1. 系统无法自动检查 Tracing 组件,需要管理员自行确保,此处支持较为广泛应用的 SkyWalking、Zipkin、Jaeger 等。
  2. 系统会对 Istio 是否安装做自动检查,如果没有请在环境所在集群进行安装
  3. 系统会对服务调用链自动检查,主要依据是有 K8s Service 类型的资源和服务 a、b、c 对应

在 dev 环境,开启自测模式,开启后,dev 环境即成为基准环境:

开启自测模式

工程师:日常自测联调

创建子环境

在 dev 基准环境中点击创建子环境,选择 a 服务可创建包含 a 服务的子环境 dev-test-env1:

创建子环境创建子环境创建子环境

自测联调

以下操作需要在和 a/b/c 处于同一个 Service Mesh,且注入了 istio-proxy 的服务中操作,此例中部署该服务的快捷操作如下:

# 执行以下命令为 default 命名空间注入 istio label
kubectl label ns default istio-injection=enabled

# 在 default 命名空间中部署 nginx 服务
kubectl -n default apply -f nginx.yaml # nginx.yaml 可从项目源码中获取

当需要请求服务 a 时,在请求的 Header 头中加入 x-env:dev-test-env1 即可将请求流量转发到子环境 dev-test-env1 中,实现子环境和 dev 环境的自测联调。登录 nginx Pod,测试效果如下所示:

  1. 未加 x-env 请求头,直接请求服务 a,dev 环境中的服务 a/b/c 会处理请求,子环境中无请求流量输入。

自测联调效果

  1. 增加 x-env: dev-test-env1 请求头访问服务 a,子环境中的服务 a 会接收到请求并给出响应,对于请求链路上的 b/c 服务,dev 环境中的服务会给出正常响应。

自测联调效果

Prev
配置多套环境