品牌名稱
鍋圈食匯
所在行業(yè)
零售
企業(yè)規(guī)模
1001-5000人

鍋圈利用 Zadig 治理環(huán)境平滑推進(jìn)容器化進(jìn)程

535次閱讀

背景介紹

鍋圈食匯是火鍋燒烤食材超市品牌,是火鍋燒烤食材社區(qū)零售模式。鍋圈食匯以火鍋、燒烤食材為主,涵蓋休閑零食、生鮮、凈菜、飲食、小吃等商品的便利店連鎖系統(tǒng);以互聯(lián)網(wǎng)+食材的 B2B、B2C 運(yùn)行模式,線下門店與線上商城并行。

鍋圈食匯為廣大中小型餐飲企業(yè)提供 B 端食材供應(yīng),又服務(wù)了“宅、急、忙、懶、老”消費(fèi)者。我們的系統(tǒng)既有 C 端也有 B 端,在快速發(fā)展的過程中,諸多環(huán)境的管理也成為研發(fā)的一大挑戰(zhàn)。

從 2021 年末開始,鍋圈開始從傳統(tǒng)部署方式向容器化轉(zhuǎn)型,在調(diào)研的過程中選中了 Zadig 作為容器化推廣過程中的環(huán)境治理工具。

痛點(diǎn)分析

在遷移容器前,我們面對(duì)諸多運(yùn)維痛點(diǎn):

  • 環(huán)境管理復(fù)雜度高:因?yàn)榈l(fā)展需要,存在 dev、test、uat、intg、pet、pre、prod 等諸多環(huán)境,發(fā)布過程管理費(fèi)時(shí)費(fèi)力
  • 運(yùn)維規(guī)范化難以推進(jìn):在快速發(fā)展過程中存在混部和配置不規(guī)范的問題,容易導(dǎo)致業(yè)務(wù)風(fēng)險(xiǎn)
  • 運(yùn)維成本高:多環(huán)境占用較多機(jī)器資源,造成成本上的壓力

而采用容器化模式,多環(huán)境應(yīng)用可以混合部署,更小的計(jì)算開銷也就意味著更低的總體成本,資源可以更加高效的利用。同時(shí)可以落地標(biāo)準(zhǔn)化的流程和環(huán)境配置,來支持團(tuán)隊(duì)日益增長(zhǎng)的持續(xù)部署與測(cè)試需求。容器化還可以屏蔽底層的平臺(tái),實(shí)現(xiàn)多云環(huán)境下的跨平臺(tái)支撐。

技術(shù)方案思考

那么如何在不影響現(xiàn)有開發(fā)周期的情況下進(jìn)行容器化改造?

針對(duì)這個(gè)問題,我們運(yùn)維團(tuán)隊(duì)聯(lián)合架構(gòu)團(tuán)隊(duì),商討了一系列的解決方案,一期容器化工程在盡量保持原有架構(gòu)的情況下讓應(yīng)用平滑遷移至容器環(huán)境。保留原有注冊(cè)中心和網(wǎng)關(guān)不變,使用 Podip 進(jìn)行注冊(cè)并將 Pod 和原服務(wù)器的網(wǎng)絡(luò)打通,這樣可以逐步遷移應(yīng)用的同時(shí),已上容器的應(yīng)用和未上容器的應(yīng)用也可以保持原有架構(gòu)正常通信。

關(guān)于工具的選型

在調(diào)研了多種環(huán)境治理工具后,最終選擇了 Zadig。

Zadig 對(duì)于我們來說有如下優(yōu)勢(shì):

  1. 界面友好,推廣給研發(fā)測(cè)試使用時(shí)可以簡(jiǎn)單上手,且可以捕獲容器控制臺(tái)日志,研發(fā)測(cè)試人員能在Zadig 控制臺(tái)上方便快捷的查看日志。
  2. 能快速集成 LDAP,Jenkins,華為云 OBS 等系統(tǒng),減少了遷移過程中的改造成本。
  3. 集群化部署,穩(wěn)定性有保障,支持并發(fā)構(gòu)建,可大幅度提高構(gòu)建效率。

實(shí)踐 Zadig 的路徑

第一步:我們先將 Dev 開發(fā)環(huán)境切換至容器,應(yīng)用發(fā)布方式將原有的發(fā)布包改為發(fā)布鏡像。
第二步:由于原來使用的是 Jenkins,為了實(shí)現(xiàn)快速集成和遷移,我們采用了 Zadig + Jenkins 的方案 ,快速實(shí)現(xiàn)從傳統(tǒng)發(fā)布方式到容器化發(fā)布方式的轉(zhuǎn)變。

undefined

第三步:利用 Zadig 集成打通原有 Git 倉(cāng)庫(kù),OBS,鏡像倉(cāng)庫(kù),LDAP 和 Jenkins,只需配置工作流即可快速實(shí)現(xiàn)應(yīng)用部署到 K8s 集群內(nèi)。其中集成 Git 倉(cāng)庫(kù)可以快速拉取代碼、發(fā)布腳本進(jìn)行發(fā)布;集成華為云 OBS 存儲(chǔ)儲(chǔ)存編譯生成的程序包制品;使用 LDAP 集成實(shí)現(xiàn)用戶管理;和 Jenkins 集成快速覆蓋原有發(fā)布流水線,減少構(gòu)建的調(diào)試時(shí)間。

最后,分項(xiàng)目組逐個(gè)推廣:當(dāng)前的策略是保障業(yè)務(wù)穩(wěn)定前提下將應(yīng)用逐個(gè)遷移至容器環(huán)境,遷移前也會(huì)做好相關(guān)配置準(zhǔn)備,確保不影響原有程序開發(fā)測(cè)試周期、現(xiàn)有環(huán)境的穩(wěn)定性,同時(shí)不對(duì)當(dāng)前架構(gòu)做大修大改,快速將應(yīng)用遷移至容器環(huán)境,享受容器化帶來的優(yōu)勢(shì)。

截至目前利用 Zadig 已完成了 5 個(gè)項(xiàng)目組容器化改造,2 條業(yè)務(wù)線用上 Zadig,其他項(xiàng)目陸續(xù)接入中。

undefined