品牌名稱
閃電出行
所在行業
互聯網
企業規模
51-200人

結合自身企業痛點,閃電出行工程師堅定選型 Zadig

621次閱讀

簡介

本文作者 - 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 未來可期。