采用 Kubernetes?這里有一些你應該避免的陷阱
了解使用工具的方式是善用它的關鍵,這個概念不僅僅適用于您的周末愛好項目。就像 Kubernetes 這樣的 DevOps 要素一樣,藝術家最喜歡的畫筆或木工的車床也是如此——培養對系統的透徹理解可以提高您的工作效率。
...或者至少應該如此。許多開發人員幾乎沒有足夠的時間來學習他們喜歡的工具包的基礎知識,更不用說深入研究使它們具有企業價值的復雜性了。事實上,掌握 Kubernetes 并非易事。雖然它的復雜性對于這樣一個強大的工具來說并不過分,但它往往會與那些試圖找到立足點的人背道而馳。
這正是我們創建2022 Kubernetes 基準研究的原因。隨著采用率以健康的速度增長,越來越多的團隊正在利用云原生工作流(但并不總能獲得他們預期的結果)。因此,我和我的團隊花了幾個月的時間研究整個行業的 1160 多個開發團隊,以對他們的 K8s 設置和實踐進行基準測試。在此過程中,我們探討了以下問題:
- 高性能組織的 K8s 使用有什么區別?
- 團隊的結構、文化和方法如何影響其在爭論 K8s 方面的成功?
- 從表現不佳的 K8s 新手到成功的容器化大師,是否有可行的途徑?
- 是否有正確的方法來創建面向未來的 K8s 設置?
我們的研究納入了自定義 Kubernetes 性能分數或 KPS。根據他們對我們問題的回答和廣泛的數據點,我們授予組織 KPS,范圍從 0(低績效者)到 100(高績效者)。然后,我們將分析重點放在提供完整信息的團隊上。盡管這極大地限制了受訪者群體,但我們認為它描繪了當前 K8s 生態系統中更公平的使用情況。
成功需要的不僅僅是良好的意愿:容器化實施和規劃能力作為績效衡量標準
我們的工作揭示了低績效者和高績效者之間的許多明顯區別。最令人痛心的是實施領域:超過 66% 的頂級績效領導者將他們的所有服務容器化,而略高于 22% 的低績效者效仿。
Kubernetes 采用的趨勢相同,這意味著適應容器化是充分利用 K8s 的關鍵。這是完全有道理的,因為 K8s 是一個容器編排系統,但在推動成功的 K8s 遷移向前發展時,我們也聽到了一些其他常見的反對意見:
- 低估 K8s 的復雜性:高績效者和低績效者都經歷過這一點,兩組之間的差異很小。因此,在開始啟動集群或購買云提供商之前,進行深入的培訓可能是值得的。
- 在采用之前有不切實際或不準確的期望:許多潛在的采用者遇到了一些問題,比如發現 K8s 很難使用——或者至少比他們想象的要難。其他人發現他們節省的錢比他們預期的要少,或者在整個過程中被云服務不兼容所絆倒。
簡而言之,如果你腳踏實地,你可能會過得更好。K8s 可以解決很多問題,但前提是要有適當的規劃,而且更重要的是,要愿意全面致力于容器化。
技術障礙:安全、團隊管理和開發人員自助服務程度
我們發現的一件有趣的事情是,在 K8s 遷移過程中,一些常見的技術障礙反復出現。您的里程可能會有所不同,但在考慮采用時應牢記這些潛在的挑戰:
實施適當的安全性比看起來更難
K8s 安全性是超過 70% 的受訪者的重要話題,但這并不意味著他們都處理得當。盡管所有領導者都使用秘密管理工具,但仍有相當一部分表現不佳的人犯下了一些嚴重的失禮行為。例如,許多存儲在其 repos 中的明文機密手動應用更改或未能分離特定于環境和環境不可知的配置。此外,有些人對什么是最佳做法缺乏清晰的認識。
不合適的組織文化可能會使 Kubernetes 遷移停止
遷移到 K8s 可能是一個巨大的文化轉變。但是,與大多數此類變化一樣,這些轉變似乎在自上而下發生時效果更好。
相比之下,低績效者通常會錯誤地在需要知道的基礎上傳播 K8s 知識,引入關鍵個體依賴性,這些依賴性后來可能成為主要弱點。與高績效者相比,低分者也未能準確記錄和可視化他們的設置。他們還花更少的時間在 K8s 上引導開發人員。
自助服務需要更好地為開發人員服務
自助服務是另一個重要的劃分因素。盡管近 90% 的表現最好的人聲稱他們的開發人員可以獨立或按需部署,但只有 39% 的表現不佳的人這樣說。
令人擔憂的是,超過 31% 的低績效者認為他們的大多數團隊成員都不敢部署到 K8s 集群,因為害怕破壞某些東西!從組織的角度來看,這并不是一個好兆頭,但與其他領域相比,它給容器化操作帶來了更多的潛在問題。取決于人力資源瓶頸的集中式工作流程抵消了容器化的一些主要優勢,例如能夠自主工作和快速配置基礎設施。
超越痛點
那么團隊如何著手提高他們的 K8s 性能呢?我們發現,大多數成功的推出都存在于由平臺工程團隊構建的更大的內部開發人員平臺(IDP) 框架內。換句話說,高績效者構建工具、支持系統和基礎設施,使他們的開發人員能夠有效地自助服務。
這應該不足為奇;我們的 2022 年基準報告并不是第一個將 DevOps 熟練程度與具有自助服務能力的內部平臺相關聯的研究(例如,查看Puppet 的 2021 年 DevOps 狀態報告或Humanitec 的 2021 年 DevOps 基準研究)。
同時,我們不能不指出有效的開發者生態系統必須追求整體理想。有效的 IDP 默認執行標準化和最佳實踐。在此過程中,他們讓開發人員與 K8s 交互,同時避免其不可否認的復雜性的陷阱。通過這種方式,他們可以最大限度地減少開發團隊的認知負擔,讓他們能夠專注于重要的事情。
通過學習更多來展現你最好的一面
K8s 是一個復雜但功能強大的系統,可以改善您團隊的運營。問題是您是否準備好付出必要的努力來掌握它——并在采取這些關鍵的第一步之前為成功的遷移之旅構建框架。
在更廣泛的方案中,Kubernetes 只是一個起點。它本身不能充當您的整個開發人員平臺,但可以為您的平臺工程計劃打下堅實的基礎。