品牌名称
闪电出行
所在行业
互联网
企业规模
51-200人

结合自身企业痛点,闪电出行工程师坚定选型 Zadig

263次阅读

简介

本文作者 - Alan Wang - 闪电出行工程师

持续交付作为运维工作里极其重要的一个环节,本身就存在一些历史悠久的工具,拿 Jenkins 来说,可以通过插件实现各种各样复杂的功能;随着云原生、devops、gitops 等理念的不断普及,也涌现出不少新生力量,比如说 Gitlab CI、KubeVela、ArgoCD、云效等,在 CI 或者 CD 环节中大展身手,合理使用的情况下都能显著的提升效率;但是今天我们的主角不是上面的这些选手,而是另一个极具潜力的黑马:Zadig。

Zadig 是一款分布式持续交付产品,由 KodeRover 公司基于 Kubernetes 自主设计研发,具有产品持续交付、持续测试、持续追踪的全流程能力,业务架构图:

undefined

为什么选择 Zadig ?

原来是使用 Jenkins 做的交付,结合 kustomize 也能实现基于 k8s 编排应用的丝滑交付。我们考虑其他工具的出发点一方面是:新增一个环境的话配置对应的交付任务也比较复杂;另一方面是:为了方便测试和开发同学,作为一个交付系统来说,Jenkins 是足够胜任的,但是并不能很好的展示被交付应用的运行状态、日志等,还需要其他工具或者系统去看应用运行是不是正常、查看日志等,所以考虑是否有开源的产品可以满足需求,经过一顿找找找,Zadig 凭借着出色的能力,在一众选手中杀出重围,另一个有力的竞争者是云效,云效是阿里云的 PaaS 应用,基于阿里云能力栈可完整覆盖整个应用的生命周期,简单说明如下:

  • Zadig 核心优势:并发工作流(云效并发任务大于 6 的话需额外购买)、更灵活&维护成本更低(构建与部署过程可高度个性化定制,公共配置可复用)、100%开源(私有化部署,不强耦合指定云厂商);
  • 云效核心优势:产品线更全(覆盖应用全生命周期)、功能开箱即用、更完善的发布策略(分批发布、灰度发布、蓝绿发布,且发布过程可控);

结合需求和当前运维现状,权衡后选择了 Zadig,可用的核心功能:

  • 高并发的工作流:基于云原生实现多环境、多服务的高效并发交付;
  • 灵活的集成环境:跨环境共享服务配置,通过参数化实现隔离业务数据和访问入口区分,可以在数分钟内创建一套隔离的全新测试环境;
  • 兼容性好:无缝集成 GitHub/GitLab、Jenkins、多家云厂商等;
  • 无侵入的自动化测试:支持对接已有的自动化测试框架,通过 GitHub/GitLab WebHook 自动触发测试任务;
  • 开发本地联调 CLI:支持通过 IDE 插件远程调试本地代码、日志查看等功能;

落地过程

安装

  • Zadig 提供云上测试环境(非常 Nice)
  • 官方提供完善的安装文档 (opens new window),并且有微信群进行全方位技术支持 👍👍👍,这里只提一下推荐使用外部高可用的数据库、存储来提高部署安全性。

 使用

undefined

  • 集成外部系统:ldap(用户管理)、gitlab(代码管理)、oss(保存缓存文件)、镜像仓库(保存镜像制品);
  • 将业务线的各个环境拆成不同的项目隔离管理;
  • 项目初始化流程:项目 >> 服务 >> 环境 >> 构建 >> 工作流交付。

价值

  • 并发工作流显著提高了发布效率;
  • 很好的满足了落盘和 Stdout 日志查看的需求;
  • 使拉起一个新环境的成本大幅度降低;
  • 自测模式使低成本高效率的开发联调成为可能。

 

Zadig 未来可期。