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