品牌名稱
TT語音
所在行業
互聯網
企業規模
11-50人
用 Zadig 搞定數百微服務環境治理,走向自動化研發之路
570次閱讀
TTChat 是趣丸科技(TT語音)旗下的一款針對海外用戶的游戲社交產品,包含實時語聊房、IM、開黑交友、賽事等一系列業務場景。團隊對云原生技術非常推崇,加之在國內的 TT 語音產品上也有了一定的相關技術探索與積累,所以在新業務創立之初,我們就全面使用了 Kubernetes 與 Istio 進行服務治理。
回望過去
起初在團隊規模較小的時候,我們簡單使用 GitLab CI 搭建了流水線,實現完全容器化的構建和部署,維護了開發與生產兩套環境。經過了一年多的產品迭代,團隊“創造”出了近兩百個微服務,也因為團隊規模變多,不斷產生出了協作問題,比如多分支開發與單一共享環境經常引起的服務覆蓋問題、缺少不同功能的環境以便提供給不同角色的人使用等等。這就催生出了多套環境的需求,面對如此多的服務,亟需一個合適的工具/平臺來幫助我們快速地“復制”多套新環境出來,正當我們一籌莫展的時候,我們看到了號稱具有「強大的云原生多環境能力」的 Zadig。
共創之路
從去年的 10 月開始,我們開始嘗試進行 Zadig 的接入,彼時 Zadig 在使用 Kubernetes YAML 來管理與部署服務時,能夠很好的工作,而對于我們所使用 Helm Chart,卻仍然處于一個很初級的階段,加上我們自身對于 Helm Chart 使用姿勢不佳,導致在接入的過程中也遇到了許多困難。通過與 Zadig 團隊多次在廣滬兩地的面對面交流和思想碰撞,打磨出了不少針對 Helm Chart 場景的需求點。
Zadig 團隊也逐漸豐富了 Helm Chart 場景的支持,我簡單列一些我認為非常能夠體現 Zadig「強大的云原生多環境能力」的功能點:
環境全局變量
通過該能力,我們可以結合自己的 Helm Chart 模板,為所有服務提供環境級別的 Values 覆蓋,例如:
-
掛載公共配置至所有的 Pod 中,如特性開關配置、業務區域配置
-
Istio Virtual Service 中的 Gateway、Host 配置
-
全局生效的環境變量
-
全局注入的 annotations
環境配置
這個目前我們通常是結合環境全局變量一起來使用的,比如用它來托管公共配置(前面提到的特性開關配置、業務區域配置等),也可以用來管理一些不適合放在服務配置中的敏感信息(如密碼、證書)等。
環境復制
我們從 Git 中導入的 Helm Values,其中所包含鏡像很可能是不可用的,或是一個非常古早的版本,早期通過創建環境,經常面臨的問題就是服務無法啟動,或是某個服務版本過舊,無法正常工作,當時的做法是在環境創建之后,立刻運行一個工作流,對所有的服務進行重新構建,這無疑是非常消耗時間和構建資源的。環境復制功能則通過直接復制一個現有的穩定環境,從而實現快速構建新環境并且能直接投入使用,切實解決了痛點。
基于這些環境能力,我們現在能夠在短短的一二十分鐘內,快速地建立起一套擁有幾百個服務的全新環境。
除了環境能力,我們在和 Zadig 的接入過程中也解決了不少非常痛的問題:
從 Git 中批量導入:
對于擁有幾百個存量服務業務來說,這項功能極大程度解放了雙手,最終我們可以順利地在短短的十幾分鐘內,完成所有服務的導入。可以說這是我們能夠堅持下來的一個重要原因。
服務編排:
通過管理服務的啟動順序,這項能力幫助我們有效地解決了服務部署時對配置、密鑰等強依賴的問題。此外,還可以使用 Zadig 托管部署測試環境的數據庫、Redis 等進行一些初始數據的導入工作,這也是我們計劃中但一直還沒來得及做的事情。
落地與探索
在業務交付過程中,不同角色的人員對環境有著不同的訴求,例如開發人員需要一個統一的環境進行集成、聯調,測試人員需要一個獨立穩定的環境用于功能測試、驗收、實施自動化測試。
我們期望能夠結合 Zadig 的多環境管理以及可定制化的 Workflow,非常快速地拉起一套完整的環境,并且盡可能實現自動化,這也是云原生文化所非常倡導的價值觀之一。因此除了托管常規的服務之外,我們也用 Zadig 托管了很多環境所依賴的底層資源:
-
環境啟動所依賴的 ConfigMaps、Secrets
-
提供訪問入口配置的 Istio Gateway CR
-
用于自動化生成 TLS 證書的 Certificate CR(結合 CertManager & Let's Encrypt)
在 TTChat 主項目中,由于服務數量較多,存在一定的環境維護成本,我們使用 Zadig 管理了 dev 和qa 兩套標準環境。
下圖以 Zadig 為界分為了兩個部分,上半部分是業務運行時的一個視角,我們在業務架構上面使用了istio-ingressgateway 作為七層網關對 TTChat App 提供了 HTTP/2 和 HTTP/3 的接入能力,因此使用了不同的域名將流量路由到不同的環境中(PS:圖中域名為示例);下半部分則描繪了我們現階段在交付中,從代碼提交或者合并觸發工作流,然后部署到兩套環境中的過程。圖中的紅色區域的自測環境是我們目前基于 Zadig 新發布的子環境能力進行的一項新的嘗試,希望能夠給研發人員提供更加好的開發體驗。
目前我們一共有六個活躍的項目運行在了 Zadig 之上,共計管理了 16 套開發&測試環境,近 300 個服務,每周進行數百次的構建部署,構建成功率 >96%,自接入以來累計產生的交付物 12000 多個,部署 20000 余次。
非常期待未來繼續與 Zadig 一起,幫助工程師更好地專注價值創造。
該產品與互聯網行業合作的客戶案例
肽動科技
互聯網 201-500人
鈦動利用 Zadig 完成云原生轉型之路
鈦動科技 (Tec-Do) 成立于 2017 年,是全球領先的基于大數據和 BI 的商業增長賦能公司。 公司秉承以服務客戶為中心的核心價值觀,旨在通過技術能力抽
wifi萬能鑰匙
互聯網 501-1000人
連尚科技利用 Zadig 搞定了多環境管理和構建效率的難題
Zadig 如何在企業落地?
"連尚在 17 年搭建了服務端的發布平臺并沿用至今,通過該平臺我們實現了服務構建信息配置、編譯、打包以及部署等功能。隨著公司服務容
妙盈科技
互聯網 201-500人
Zadig 將研發復雜性下沉到平臺,讓開發更聚焦創新
妙盈科技(MioTech) 是一家 ESG 領域的金融科技企業,服務國內外眾多大型金融機構。妙盈的基礎架構團隊一直致力于在持續交付領域通過技術更迭,為開發者提供
非碼
互聯網 201-500人
非碼用 Zadig 實現15 萬家門店周發布 7 次
我們需要非常快速的迭代節奏,客戶爸爸說明天上,通宵熬夜也要完成目標,一周 7 次迭代也是常有的事:沒有 Zadig, 我們的自動化測試不可能做起來,更不可能滿足
閃電出行
互聯網 51-200人
結合自身企業痛點,閃電出行工程師堅定選型 Zadig
簡介
本文作者 - Alan Wang - 閃電出行工程師
持續交付作為運維工作里極其重要的一個環節,本身就存在一些歷史悠久的工具,拿 Jenkins 來說,可
鍋圈食匯
互聯網 1001-5000人
鍋圈利用 Zadig 治理環境平滑推進容器化進程
背景介紹
鍋圈食匯是火鍋燒烤食材超市品牌,是火鍋燒烤食材社區零售模式。鍋圈食匯以火鍋、燒烤食材為主,涵蓋休閑零食、生鮮、凈菜、飲食、小吃等商品的便利店連鎖系統;
查看更多
同類產品與互聯網行業合作的客戶案例
摹因智能
互聯網 51-200人
摹因智能:構建數字化銷售賦能管理平臺
AI驅動,釋放對話數據價值
公司是定位于 Salestech領域的一家新銳人工智能創業公司,為中國企業的銷售團隊提供基于會話智能和數據驅動的新一代銷售賦能平臺(
嗶哩嗶哩(bilibili)
互聯網 5001-10000人
Bilibili使用云智慧監控寶監測全球用戶的訪問體驗
客戶介紹
嗶哩嗶哩(英文名稱:bilibili,簡稱B站)現為中國年輕世代高度聚集的文化社區和視頻平臺 ,該網站于2009年6月26日創建,被粉絲們親切地稱為B
京東
互聯網 10000人以上
云智慧攜手京東分享618零癱瘓的訣竅
客戶介紹
京東JD.COM-專業的綜合網上購物商城,銷售超數萬品牌、4020萬種商品,囊括家電、手機、電腦、母嬰、服裝等13大品類。秉承客戶為先的理念,京東所售
查看更多