構建部署效率,快了一倍不止,老百姓大藥房這樣落地 Zadig
背景介紹
老百姓大藥房是
是一家由單一民營藥店發展起來的大型醫藥連鎖企業。老百姓大藥房除藥品零售外,同時兼營藥品批發與製造,而服務開發平臺是對於開發人員提供更便捷的資料分析和視覺化平臺。
從 2019 年起,老百姓技術研發團隊希望通過工具化的形式打造一個適合自己的持續交付平臺。我們一開始是基於 Jenkins 和 GitLab 通過 Shell 指令碼實現流水線部署到開發、測試、生產環境。近兩年隨著專案越來越多,傳統的配置方式繁雜,需要花大量時間進行配置和調整,已不滿足降本提效的發展需要,於是我們開始採用
雲原生的方式
,對持續交付進行優化和拓展。
流程和痛點分析
我們過去的流程如下:
痛點的總結:
-
從服務到容器化轉變到上雲的時間並不長,對於自動化這塊沒有實際的操作經驗。
- 老百姓大藥房傳統運維方式需要大量的人力,去維護服務 YAML 指令碼,通過合併程式碼觸發 Jenkins 構建映象,再用 Shell 指令碼進行服務更新發布的繁雜過程。
- 對於運維人員極其不便,釋出的時間長,開發人員難以除錯。
- 發版服務日均 20+,通過人為去解決的問題,容易會出現欄位漏了,配置少了的情況從而提高運維的難度。
- 需要人工截圖並通知開發人員確認服務是否已釋出,沒有適配企業微信機器人。
怎麼發現 Zadig 開源專案
從 2021 年度 OSC 中國開源專案評選中發現 Zadig 專案,隨後我從官網瞭解, Zadig 是一個面向開發者設計的開源、高可用 CI/CD 專案。在
不改變現有的流程前提下,可以無縫整合 Github、Harbor、Jenkins、多家雲廠商。契合貼切老百姓現有的環境,混合雲(私有云+公有云部署)。
看位元組和騰訊也有用 Zadig,於是便在本地環境快速拉起 Zadig 環境,簡單的使用 Demo 跑流程結果出乎意料的好用。
如何快速上手 Zadig 使用
聯絡官方社群人員,加入社群微信群。通過社群人員指導,Helm 一鍵部署拉起,生產環境資料持久化。跟著官網的文件流程一步步走和社群人員的疑問解答,很快就上手了,配置工作流及構建流程。一開始 Zadig 有一些小 Bug 和問題,官方迭代的速度非常快。一個月一個版本迭代快速解決相關的問題。
那麼多開源產品為什麼選擇使用 Zadig
-
部署簡單一條命令即可拉起 Zadig 環境,學習門檻非常低社群人員非常熱情指導如何快速使用 Zadig 構建流程。
- UI 介面簡潔好看,配置清晰易懂。在官方文件有詳細說明專案持續交付的案例,給我們提供了很多幫助。
- 社群活躍度很高,為企業快速落地 Zadig,他們團隊為老百姓單獨拉起了內部落地群。有問題在微信群裡反饋,很快速就有技術人員一對一的解答相關問題,後續也有針對性的計劃跟進問題進度。
如何測試落地 Zadig
具體落地從測試環境啟動,目前
已通過 Zadig 完成開發環境 50+ 專案的持續交付流程。
目前是由測試環境搭建 Zadig ,通過叢集管理同時接入其他叢集。老百姓生產環境 K8s 叢集有 16+,後面規劃單獨搭建一個 Zadig 叢集專門作為 CI/CD 叢集託管現有的生產環境。統一一套 Zadig 去
解決多個環境下的持續交付流程。同時整合程式碼掃描和自動化測試,釋出預生產環境通過測試組驗證通過後,再將交付物進行釋出,不需要再次經過編譯打包的流程。
總結:
-
統一的 Dockerfile 模板以及 YAML 模板 方便管理,通過一個模板批量構建服務。
- 快速拉起環境 dev、test、pro 專案環境,一鍵部署。
- 流程編排微服務並行構建,實現持續部署和交付。無縫整合 GitLab、Harbor、Maven、Sonar、Jmeter 及阿里雲和騰訊雲產商。
- 解決微服務聯調,每一次 PR 都會經過構建、部署、測試整個流程。
- UI 簡潔易用,上手可以按照官方的指引文件一步步完成,不需要花費太多的學習成本。
- 對比 Jenkins ,Zadig 的構建部署效率,快了一倍不止
- 通過 Zadig 系統進行多叢集管理,可以同時接入和使用外部多個 K8s 叢集資源
- 通過 Webhook 通知企業微信機器人,快速發現問題。
團隊對 Zadig 的評價
先嚐試,再面向內部團隊進行宣講,老百姓內部對 Zadig 認可度很高。對於運維來說可以減少成本,讓開發快速拉起自己的環境、進行測試驗證再到上線的過程,
大大縮短了研發週期。運維人員可以通過企業微信群通知,快速發現工作流的情況;開發人員通過 Zadig 檢視日誌,可以排查問題及進入終端除錯。
Zadig 面向工程師提供了一站式的服務,在老百姓內部獲得一致好評。
建議期待
希望 Zadig 越做越好,下面僅個人觀點提供幾個建議:
1、對於 HPA 彈性伸縮基於 CPU、記憶體的支援
2、獲取 Metrics 的 pod 資源情況在 Zadig 平臺展示
「其他文章」
- 基於 Zadig 的 GitOps 實踐
- 極速 Zadig 構建效率是這樣煉成的
- 主機基礎設施如何使用 Zadig 做持續交付
- Zadig 環境負載均衡:0 人工干預,極速部署
- 打通了!Jira Zadig 實現需求與研發過程追蹤
- 雲原生 DevOps 現狀調研問卷徵集:KodeRover 聯合 OSCHINA 推出
- Zadig v1.13.0 相信開放的力量,工作流連通一切價值
- 飛書影片會議端到端整合測試工程實踐經驗總結 - Zadig 應用案例
- 在解決了 2961 個使用者反饋後,我做出了這樣的改變...
- 基於 Ingress Controller 在叢集外訪問 Zadig 自測環境(最佳實踐)
- iMile 利用 Zadig 多雲環境周部署千次,跨雲跨地域持續交付全球業務
- 穩!上千微服務接入 Zadig 的最佳姿勢(Helm Chart 篇)
- 穩!上千微服務接入 Zadig 的最佳姿勢(K8s YAML 篇)
- Zadig 洞態 IAST:讓安全溶於持續交付
- TT 語音落地 Zadig:開源共創 Helm 接入場景,環境治理搞得定!
- 00後雲工程師用 Zadig 為企業研發開源節流
- Zadig 構建究竟有何強大?一起來實踐
- 妙盈科技全面實施 Zadig 擁抱雲原生
- Zadig SonarQube,為開發過程安全保駕
- Zadig v1.12.0 推出 VS Code 外掛,全面支援 GitOps ,好工具就要到最後一公里