德國電信公司如何用GitOps管理邊緣基礎(chǔ)設(shè)施?
譯文【51CTO.com快譯】德國電信是德國和歐盟地區(qū)領(lǐng)先的電信公司,移動(dòng)用戶超過2.42億、年收入超過1000億歐元。德國電信的運(yùn)營規(guī)模是如今很少有公司能企及的。特別令人感興趣的是它涉足邊緣計(jì)算以及如何借助一個(gè)小團(tuán)隊(duì)大規(guī)模管理邊緣基礎(chǔ)設(shè)施。
顧名思義,邊緣計(jì)算在盡可能靠近最終用戶的地方處理數(shù)據(jù)。這可能意味著在本地服務(wù)器、附近的服務(wù)器甚至直接在設(shè)備上處理數(shù)據(jù)。目的是縮短延遲時(shí)間、改善用戶體驗(yàn)。邊緣計(jì)算是物聯(lián)網(wǎng)和5G的關(guān)鍵技術(shù),而不僅僅面向電信公司。
德國電信是全球最大的電信公司之一,需要利用邊緣計(jì)算的力量為其龐大的客戶群提供先進(jìn)的移動(dòng)服務(wù)。雖然這是值得努力的目標(biāo),但每一步面臨著復(fù)雜的挑戰(zhàn)。
Vuk Gojnic是德國電信云原生/Kubernetes平臺(tái)的團(tuán)隊(duì)負(fù)責(zé)人,負(fù)責(zé)該項(xiàng)目并為應(yīng)用程序所有者提供支持,而這些應(yīng)用程序所有者進(jìn)一步向供應(yīng)商和應(yīng)用程序開發(fā)者提供基礎(chǔ)設(shè)施服務(wù)。
采取平臺(tái)方法
Gojnic很快意識(shí)到試圖以傳統(tǒng)方式構(gòu)建這個(gè)系統(tǒng)是徒勞的,尤其是考慮到他那十來人的團(tuán)隊(duì)已經(jīng)忙于管理其他基礎(chǔ)設(shè)施項(xiàng)目。為了取得成功,這個(gè)邊緣平臺(tái)需要一種新方法,一種減少手動(dòng)操作,性能和數(shù)據(jù)安全等基本需求又不受影響的方法。
Gojnic決定采取平臺(tái)方法來擴(kuò)建德國電信的邊緣基礎(chǔ)設(shè)施,這是過去幾年《DevOps狀況報(bào)告》建議的一種策略,也是高績效DevOps團(tuán)隊(duì)的關(guān)鍵指標(biāo)。它需要搭建一個(gè)內(nèi)部開發(fā)者平臺(tái),憑借該平臺(tái),就可以對(duì)資源進(jìn)行模板化,并輕松創(chuàng)建供開發(fā)團(tuán)隊(duì)使用的資源。像Gojnic的團(tuán)隊(duì)這樣的專門平臺(tái)團(tuán)隊(duì)管理和維護(hù)平臺(tái)。對(duì)于平臺(tái)團(tuán)隊(duì)來說,好處是減少了手動(dòng)重復(fù)工作,還能構(gòu)建在整個(gè)組織中輕松擴(kuò)展的解決方案。
新平臺(tái)的架構(gòu)可支持成千上萬應(yīng)用程序和服務(wù),并每秒處理數(shù)十億個(gè)事件。該平臺(tái)將在 10000多個(gè)Kubernetes集群上運(yùn)行,分布在10個(gè)數(shù)據(jù)中心和10000個(gè)邊緣位置。
由GitOps管理平臺(tái)
Gojnic的團(tuán)隊(duì)獲得了Weaveworks團(tuán)隊(duì)的幫助,以協(xié)助他們遵循GitOps方法來擴(kuò)建這個(gè)平臺(tái)。GitOps是一種現(xiàn)代軟件交付實(shí)踐,依賴Git代碼存儲(chǔ)庫作為唯一的真實(shí)來源。它支持關(guān)鍵原則,比如聲明式基礎(chǔ)設(shè)施,即系統(tǒng)的每個(gè)部分都在Git代碼存儲(chǔ)庫中加以描述。它利用Git的內(nèi)置版本控制功能來跟蹤所有更改,并自動(dòng)執(zhí)行合規(guī)操作。此外,它使用Flux之類的開源工具以發(fā)現(xiàn)生產(chǎn)系統(tǒng)何時(shí)偏離Git中聲明的狀態(tài),并將系統(tǒng)調(diào)回到原始狀態(tài)。這些實(shí)踐確保邊緣基礎(chǔ)設(shè)施等系統(tǒng)能夠以一種可擴(kuò)展的現(xiàn)代方式來構(gòu)建,從而減少工作量、提供所需的性能,又不影響安全和合規(guī)方面的關(guān)鍵需求。想開始入手GitOps,建議下載Weave Gitops Core。
使用Das Schiff在邊緣處交付
德國電信構(gòu)建了這個(gè)新平臺(tái),將其命名為Das Schiff(德語中意為“輪船”)。它甚至開源了該平臺(tái),稱之為“建立和監(jiān)督在GitOps循環(huán)中(自我)管理的自主云原生基礎(chǔ)設(shè)施的引擎”。
Das Schiff的核心是Flux CD工具,用于為平臺(tái)管理持續(xù)交付的各個(gè)方面。深入挖掘就能發(fā)現(xiàn),所使用的Flux的關(guān)鍵組件是Kustomization控制器和Helm控制器。Kustomization控制器監(jiān)控對(duì)集群所做的更改,為這些更改生成YAML文件,生成Kubernetes清單,并按定義的順序運(yùn)行管道。Helm控制器從對(duì)象生成Helm圖表,并自動(dòng)執(zhí)行測試、回滾和卸載包等操作。Das Schiff還使用Prometheus和Logstash來監(jiān)控時(shí)間序列指標(biāo)和日志。可以在這篇 WeaveWorks博文中閱讀有關(guān)Das Schiff架構(gòu)的更多信息。
Das Schiff使德國電信的團(tuán)隊(duì)能夠在物理機(jī)上配置專門針對(duì)邊緣的硬件,比如無線電或網(wǎng)絡(luò)適配器和硬件加速器。它支持邊緣的虛擬網(wǎng)絡(luò),以支持德國電信力推的5G和邊緣處理。 Das Schiff還支持“混合模式”,即團(tuán)隊(duì)可以在Kubernetes集群中運(yùn)行混合型的虛擬化和非虛擬化裸機(jī)節(jié)點(diǎn)。考慮到邊緣的資源限制,Das Schiff使用AWS Firecracker來配置microVM,從而顯著減少池中節(jié)點(diǎn)占用的資源。
雖然這是了不起的成就,但并非沒有挑戰(zhàn)。由于其云原生架構(gòu),新平臺(tái)呈大規(guī)模分布式,且極具動(dòng)態(tài)性。然而,通過戰(zhàn)略性地采取做法,并利用平臺(tái)方法和GitOps,德國電信最終構(gòu)建了一個(gè)可以擴(kuò)展到邊緣并支持不同團(tuán)隊(duì)和業(yè)務(wù)需求的系統(tǒng)。
原文標(biāo)題:How Deutsche Telekom Manages Edge Infrastructure with GitOps,作者:Mike Kress
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】