摘要:對系統透徹的理解可以提高工作效率。
鏈接:https://dzone.com/articles/adopting-kube.NETes-here-are-some-pitfalls-you-sho
作者 | Luca Galante
譯者 | 彎月 責編 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
知己知彼百戰不殆,為了利用好工具,首先我們需要了解工具。Kubernetes 是開發運維的關鍵要素,就像畫筆之于藝術家,斧鋸之于木匠。
然而,許多開發人員并沒有投入足夠的時間來學習他們喜歡的工具包的基礎知識,更不用說深入研究這些工具為企業帶來的價值了。事實上,掌握 Kubernetes 并非易事。雖然對于一個如此規模的工具來說,Kubernetes 的復雜性并不算過度,但對于初學者來說依然充滿了挑戰。
這正是我們創建 2022 年 Kubernetes 基準研究的原因。隨著云原生的采用率以健康的速度增長,越來越多的團隊開始嘗試采用這種工作流程,但結果并不一定能達到他們的預期。因此,我們花了幾個月的時間研究整個行業的 1160 多個開發團隊,根據他們的 Kubernetes 設置和實踐建立了基準。在此過程中,我們探討了以下問題:
- 高性能組織使用 Kubernetes 的方式有何不同?
- 團隊的結構、文化和方法對 Kubernetes 的成功采用有何影響?
- 從表現不佳的 Kubernetes 采用者到成功的容器化大師,是否有必勝的途徑?
- 是否有正確的方法能夠創建永不過時的 Kubernetes 設置?
我們的研究采用了自定義的 Kubernetes 績效分數。根據針對我們的問題給出的回答,我們給各個組織評分,范圍為0(表現不佳)~100(表現突出)。然后,我們重點分析了提供了完整信息的團隊。盡管這極大地限制了分析群體的范圍,但我們認為這可以更公平地描繪當前 Kubernetes 生態系統的使用情況。
成功需要的不僅僅是良好的意愿:將容器化的實現和規劃能力作為績效衡量標準
我們的分析表明,表現不佳和表現突出的企業之間存在許多明顯的區別。最令人感嘆痛惜的是實施領域:超過 66% 的頂級企業將他們的所有服務都容器化了,而表現不佳的企業中只有 22% 的服務實現了容器化。
Kubernetes 采用的趨勢相同,這意味著適應容器化是充分利用 Kubernetes 的關鍵。這完全合理,因為 Kubernetes 是一個容器編排系統,但對于如何成功遷移到 Kubernetes 的問題,我們也聽到了一些其他常見的制約因素:
- 低估 Kubernetes 的復雜性:無論表現是否突出,各個企業都有類似的經歷,他們之間的差異很小。因此,在啟動集群或購買云提供商之前,首先需要進行深入的培訓。
- 在采用 Kubernetes 之前樹立不切實際或不準確的期望:許多潛在的企業都遇到了一些問題,比如發現 Kubernetes 很難使用——至少難度超過了他們的預期。而有些人則發現采用 Kubernetes 節省的成本并沒有達到預期,或者遇到云服務不兼容的問題。
簡而言之,腳踏實地,才能更好地起步。Kubernetes 確實可以解決很多問題,但前提是建立適當的規劃,而且更重要的是做好全面容器化的準備。
技術障礙:安全、團隊管理以及開發人員自助服務的程度
我們發現的一件有趣的事情是,在遷移到 Kubernetes 的過程中,一些常見的技術障礙會反復出現。或許你的經歷會有所不同,但在考慮采用 Kubernetes 時,請務必牢記這些潛在的挑戰:
實現一定程度的安全性的難度較大
70% 的企業都提到了 Kubernetes 的安全性,但這并不意味著他們都實現了一定程度的安全性。盡管表現突出的企業都使用了機密管理工具,但仍有很大一部分表現不佳的企業犯下了一些嚴重的錯誤。例如,許多企業以明文的形式將機密保存到代碼庫,并手動應用更改,或未能分離特定于某個環境和不依賴于環境的配置。此外,還有一些企業對最佳實踐缺乏清晰的認識。
不適合的組織文化可能會阻礙 Kubernetes 遷移
遷移到 Kubernetes 是一個巨大的文化轉變。但是這類的變化一般自上而下推動的效果更好。
相比之下,表現不佳的企業通常會錯誤地認為,Kubernetes知識可以現學現用,導致整個遷移依賴于某個關鍵員工,這有可能成為將來最大的弱點。與表現突出的企業相比,表現欠佳的企業無法準確記錄和可視化他們的設置,而他們花在幫助開發人員掌握 Kubernetes 的時間也更少。
自助服務需要更好地為開發人員服務
自助服務是另一個巨大的影響因素。盡管在表現突出的企業中,90% 聲稱他們的開發人員可以獨立或按需部署,但只有 39% 表現欠佳的企業有這樣的自信。
令人擔憂的是,超過 31% 表現欠佳的企業認為,他們的大多數團隊成員都不敢部署到 Kubernetes 集群,因為害怕破壞已有系統。從組織的角度來看,這并不是一個好兆頭,這種心理給推進容器化帶來的潛在問題甚至超過了其他領域。集中式的工作流程會造成人力資源瓶頸,從而抵消容器化的一些主要優勢,例如能夠自主工作和快速配置基礎設施。
克服困難
各個團隊應該如何高效使用 Kubernetes 呢?我們發現,大多數成功案例都是在平臺工程團隊構建的更大的內部開發人員平臺框架內采用 Kubernetes。換句話說,表現突出的團隊會構建工具、支持系統和基礎設施,確保的開發人員能夠有效地自助服務。
同時,我們不能不指出,有效的開發者生態系統必須積極追求整體理想。有效的內部開發人員平臺會強制推進標準化和最佳實踐。在此過程中,開發人員可以不斷嘗試 Kubernetes ,同時避免由于其不可否認的復雜性而帶來的陷阱。這些企業通過這種方式,最大限度地減少開發團隊的認知負擔,讓他們能夠專注于重要的工作。
通過學習展現最好的一面
Kubernetes 是一個復雜但功能強大的系統,可幫助改善企業的運營。但問題是,你是否做好準備,付出必要的努力來掌握這款工具,并在邁出關鍵的第一步之前,為此次成功的遷移之旅構建框架?
從長遠來看,Kubernetes 只是一個起點,它本身不能充當整個開發人員平臺,但可以為你的平臺工程計劃打下堅實的基礎。