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