作者簡介
張應羅,SUSE 資深架構師,擁有 16 年架構諮詢工作經驗,專注於 SUSE Enterprise Container Management 相關的產品落地方案及諮詢方案設計。
平臺工程
“DevOps 已死,平臺工程才是未來!” 去年,知名軟體工程師兼 DevOps 評論員 Sid Palas 在推特上發出吶喊。
他的核心觀點是:開發者不想跟基礎設施打交道,企業在發展過程中又需要控制自己的基礎設施;只有平臺工程,能將這兩個相互矛盾的命題統一起來。這一觀點引發了開發者們的激烈討論,平臺工程正在崛起。
簡單為大家介紹一下平臺工程(Platform Engineering)的概念。
平臺工程的發展背景
- 軟體在不斷演進過程中將運維技能從開發技能中剝離出來,形成了兩個不同的職業,但結果證明過度分離的兩個職業無法滿足軟體快速迭代的需求,因此 DevOps 出現了,我們用它來統一運維及開發。開發週期是一個企業最稀缺的資源,因此應該將盡可能多的資源放在核心產品開發上。
- 開發人員應該能夠端到端地部署和執行他們的應用。“誰構建,誰執行”才是真正的 DevOps,但並不是所有的公司都是 Google、亞馬遜、微軟,大多數公司都沒有像他們那樣的人才庫,也不會僅僅為了最佳化開發工作流和體驗而像他們那樣投入資源。
- 在過去,有的工程師寫程式碼,有的工程師跑程式碼。而現在,工程師不僅編寫程式碼,還要執行他們編寫的程式碼。這讓軟體工程師覺得他們必須對所有事情都瞭如指掌,大大增加了認知負擔。
- 這迫使許多團隊重新在自動化帶來的自由與認知負擔之間權衡利弊,平臺工程也因此越來越受關注和熱議。Gartner 在 2022 年 8 月釋出的軟體工程成熟度曲線中新增了“平臺工程”。
平臺工程的定義
- “平臺工程”社群主要貢獻者及 Humanitec 產品負責人 Luca Galante 在《什麼是平臺工程》的文章裡指出:平臺工程是一門設計和構建工具鏈與工作流的學科。這些工具鏈和工作流可以為雲原生時代的軟體工程組織提供自助服務功能。平臺工程師提供整合化產品,通常稱為“內部開發人員平臺”,可以涵蓋應用程式整個生命週期的所有操作需求。
- 內部開發人員平臺由平臺工程團隊構建,用於鋪好坦途以此來支援開發人員自助服務。內部開發人員平臺由許多不同的技術和工具組成,以一種降低開發人員認知負擔的方式組合在一起,無需抽象出上下文和底層技術。平臺工程團隊將他們的平臺視為一種產品,根據使用者研究對其構建,並不斷維護和改進。
Kubernetes 在平臺工程中扮演的角色
- 無論內部開發人員平臺的工具鏈有多麼豐富,在雲原生時代,Kubernetes 已然成為應用落地部署的最優選擇。平臺工程承載了應用迭代和部署驗證的重任,需要建立提供面向 Kubernetes 的彈效能力。
Rancher Prime 為平臺工程體系提供強有力支撐
Rancher Prime 的混合雲 K8s 管理能力
Rancher Prime 研發之初的核心理念就是多雲管理,因此,產品進化至今,在歷經近上千個 release 後,Rancher Prime 在多雲多 K8s 叢集管理領域已然遙遙領先,可以隨時隨地管理和部署任意位置的 K8s 叢集。
Rancher Prime
- Rancher Prime 支援對國內頭部公有云廠商的 K8s 發行版進行全生命週期管理,包括阿里雲 ACK、騰訊雲 TKE、華為雲 CCE。
- Rancher Prime 支援對國際頭部公有云廠商的 K8s 發行版進行全生命週期管理,包括 AWS EKS(Global Region 及 China Region)、Azure AKS(Global Region及China Region)、Google GKE。
- 在私有資料中心場景下,Rancher Prime 可以建立經過 CNCF一致性認證的 K8s 發行版 RKE 和 RKE2,幫助客戶快速落地生產級別的 K8s 叢集。
- 在邊緣計算場景下,Rancher Prime 可以建立輕量級 K8s 發行版 K3s,並且支援 X86 和 ARM 兩種架構。
Rancher Prime 面向多叢集的中心化多租戶體系
Rancher Prime 具備一套成熟的面向多叢集的中心化多租戶體系,可以輕鬆抽象使用者訪問許可權。這為平臺工程內的開發人員提供了良好的隔離環境,讓他們可以靈活使用自己的開發環境,而不影響其他開發人員。
Rancher Prime 多租戶體系
- Rancher Prime 提供面向多叢集並基於 RBAC 的多租戶體系,不同的使用者可以透過繫結不同的角色來獲得不同的許可權。
- 擁有“全域性級別”角色的使用者通常可以管理 Rancher Prime 的所有 K8s 叢集,擁有“叢集級別”角色的使用者通常只能看到和管理某一個或多個 K8s 叢集,擁有“專案/名稱空間”角色的使用者通常只能看見和管理叢集下某一個或多個專案及名稱空間。
- Rancher Prime 還支援對接多種外部統一認證軟體,例如 AD、Keyclock、OKTA 等,方便企業進行統一認證管理。
Rancher Prime 認證體系對接
NeuVector 全生命週期的平臺安全保障
在構建內部開發人員平臺時,平臺安全始終是需要優先考慮的問題。NeuVector 提供了全面的全生命週期、零信任容器安全體系,在整個容器生命週期中持續掃描,以消除安全隱患。在內部開發人員平臺構建之初就應制定安全策略,從而最大限度地提高開發人員的靈活性。
NeuVector
NeuVector 的安全保護包括供應鏈安全和執行時安全,在供應鏈安全範疇內可以對容器映象、K8s 主機資源進行合規掃描,同時將 K8s 的准入控制機制與 pipeline 流程相結合,實現准入控制。
NeuVector 安全體系
在執行時安全層面可透過容器微分段、DLP、WAF 等防護手段,確保內部開發人員平臺安全性。
NeuVector 防護體系
NeuVector 可在所有經過 CNCF 認證的 K8s 平臺上獨立使用。在與 Rancher Prime 結合使用時,只需點選幾下即可安裝和使用 NeuVector,並對整個 Kubernetes 環境進行安全保護。
NeuVector with Rancher Prime
Rancher Prime 和 NeuVector 產品體系的組合,可以讓平臺工程團隊更容易構建自己的內部開發人員平臺,讓開發工程團隊專注於業務程式碼開發,而非深度對接基礎設施,同時也能保障平臺的安全性。
典型案例
Ubisoft
育碧(Ubisoft)於 1986 年在法國成立,是全球知名的遊戲製作、發行和代銷商,業務遍及五大洲,在全球擁有 40 多個開發工作室。
育碧鼓勵開發團隊在 Kubernetes 中開發雲原生微服務,不久之後,創新專案激增。由於有的團隊面向私有云進行開發,有的團隊面向公有云進行開發,因此公司需要擁有統一的開發方法。
基礎架構團隊希望在公司內部構建一箇中央 Kubernetes 配置平臺,從而實現大多數流程的自動化。當 UKS(Ubisoft Kubernetes Service)誕生時,這一願景成為了現實。這個基於 Rancher Prime 的自助式 Kubernetes 平臺讓成千上萬的開發人員能夠以可控、集中管理的方式即時啟動新的 Kubernetes 叢集。
透過使用 UKS 和 Rancher Prime,開發人員可以自由地為任何雲環境進行開發,而不必手動管理許多基本部署過程。Rancher Prime 實現了這些基本功能的自動化,並大大簡化了開發生命週期。
從效率的角度來看,UKS 讓開發者的工作更加輕鬆。與原來的手動方式相比,大幅提高了開發速度,減少了管理時間。與以往需要耗費幾天時間相比,透過 Rancher Prime 配置叢集並將其託管在本地,平均僅需 10 分鐘。最重要的是,整個公司的 Kubernetes 叢集現在都透過統一的平臺進行管理。
目前,育碧的 K8s 叢集已經超過 200 個,隨著越來越多的團隊使用 Kubernetes,這一數字將持續上升。未來,育碧 IT 建設的重點是建立一個託管解決方案,以最佳化基礎設施的使用,提供多租戶叢集並減少運營負擔。
未來展望
無論是 DevOps 還是平臺工程,都要求基於 K8s 的底層平臺具備安全性、靈活性、穩定性、先進性。因此,2023 年,SUSE 企業容器管理團隊將在如下幾個方面持續提升產品體驗,以回饋企業使用者及社群使用者的信任:
- Rancher Prime 不斷增強 K3s Provisioning 能力,提供更加靈活多樣的叢集選擇,K3s 極致輕量,足以應對面向開發測試的應用叢集。
- 整個 SUSE 企業容器管理產品線對 ARM 的支援將不斷增強,得益於 ARM 生態體系的不斷完善,越來越多的全球使用者開始使用 ARM 來降本增效。
- 持續加強對本土產品生態體系的支援,目前 Rancher Prime 已經適配鯤鵬晶片、海光晶片、麒麟 V10、openEuler 等軟硬體體系,其中基於 openEuler 的 K8s 發行版 RFO(Rancher For OpenEuler)已經正式 GA。