私有云與公共云:Kubernetes 如何改變平衡?
當(dāng)今企業(yè)大部分都會(huì)成為混合云用戶。2021 年 Statista 對 750 家企業(yè)的調(diào)查發(fā)現(xiàn),82% 的企業(yè)采用了混合云計(jì)算戰(zhàn)略。
然而,這種混合采用統(tǒng)計(jì)數(shù)據(jù)并不意味著私有云與公共云的問題是通過采用兩種云風(fēng)格的混合來巧妙地決定的。相反,這意味著部署架構(gòu)很復(fù)雜,發(fā)展迅速,以“一次性”的方式?jīng)Q定云架構(gòu)是沒有意義的。
事實(shí)上,現(xiàn)在云技術(shù)堆棧中正在發(fā)生的事情正在釋放新的潛力。經(jīng)過多年全球采用公共云的趨勢,這些新的動(dòng)力正在改變云經(jīng)濟(jì),重振私有云的理念,為管理公共云提供新的戰(zhàn)略選擇,并啟用新的裸機(jī)模型,如邊緣、物聯(lián)網(wǎng)和“裸機(jī)云”產(chǎn)品。
1、云經(jīng)濟(jì)學(xué):v1.0
采用云計(jì)算的開始是因?yàn)楸镜財(cái)?shù)據(jù)中心的構(gòu)建和維護(hù)成本很高。服務(wù)器價(jià)格昂貴并且已經(jīng)過時(shí)。他們需要來自多個(gè)服務(wù)提供商的設(shè)施、電力、冷卻、內(nèi)部網(wǎng)絡(luò)、廣域網(wǎng)連接和骨干連接。數(shù)據(jù)中心有架構(gòu)師來隔離故障域并分配冗余資源,從而實(shí)現(xiàn)彈性。
工作人員維護(hù)、操作和保護(hù)它們。全職管理人員在優(yōu)化它們之前分析它們的性能、使用效率和其他特性,通常是緩慢而昂貴的。企業(yè)仍然被鎖定在特定的位置,并且可能陷入彈性悖論——為未使用的容量付費(fèi),但無法快速擴(kuò)展以滿足意外需求。
這只是一個(gè)開始。為了實(shí)現(xiàn)低水平的運(yùn)營效率,許多用戶繼續(xù)使用許可的操作系統(tǒng)實(shí)施“標(biāo)準(zhǔn)”數(shù)據(jù)中心堆棧,添加用于服務(wù)器配置和許可證管理的工具,并最終鎖定自己進(jìn)入該解決方案集。
然后,為了提高速度并實(shí)現(xiàn)開發(fā)人員和業(yè)務(wù)部門的自助服務(wù),他們添加了一個(gè)類似設(shè)計(jì)的、基于成本的私有云基礎(chǔ)架構(gòu)即服務(wù)解決方案。這提高了效率,但也提高了技能的新要求,增加了新的鎖定因素和許多新成本。
與此相比,公有云看起來也是不錯(cuò)的選擇。一切都是運(yùn)營支出,沒有物理設(shè)備,也沒有運(yùn)行物理數(shù)據(jù)中心所需的直接開銷或員工成本。企業(yè)永遠(yuǎn)不必與運(yùn)營商打交道,可以從小處著手,然后快速發(fā)展壯大,或者根據(jù)需要頻繁更改規(guī)模。
企業(yè)可以將工作負(fù)載放置在提供商所在區(qū)域的任何位置,并且可以使用一組 Web UI 和/或 API
來配置和配置任何想要的東西。這就像跳過整個(gè)“物理基礎(chǔ)設(shè)施”步驟的復(fù)雜性和限制,直接進(jìn)入“彈性計(jì)算云即服務(wù)”部分。
1)提示云復(fù)雜性
每個(gè)使用公共云的公司都會(huì)受到復(fù)雜賬單的困擾。 云定價(jià)的復(fù)雜性也會(huì)使制定和實(shí)施成本降低策略變得困難。
同時(shí),很少有企業(yè)在不采用一些傳統(tǒng)思維的情況下進(jìn)入公共云。為了獲得敏捷性和彈性,企業(yè)往往會(huì)犧牲一致性。他們多年來一直在內(nèi)部構(gòu)建以 VMware 為中心的基礎(chǔ)設(shè)施即代碼,現(xiàn)在他們聘請了專業(yè)人員來為 AWS 環(huán)境創(chuàng)建和維護(hù)新的代碼庫。
這樣做的成本是巨大且持續(xù)的。它會(huì)引入安全漏洞,為人為錯(cuò)誤提供新的機(jī)會(huì),并使一切變得更加困難。
在其他情況下,企業(yè)可能會(huì)嘗試通過加倍努力來保持一致性,當(dāng)他們冒險(xiǎn)進(jìn)入公共云時(shí),采用他們的“標(biāo)準(zhǔn)操作系統(tǒng)”和“標(biāo)準(zhǔn) IaaS”操作模型,保持傳統(tǒng)的成本結(jié)構(gòu)。或者,他們可能會(huì)轉(zhuǎn)向相反的方向,購買由公共云 Web UI 和 API 驅(qū)動(dòng)的私有云解決方案,獲得一致性并減少對各種技能的需求,但代價(jià)是更大的鎖定。
2、云經(jīng)濟(jì)學(xué):2.0 版
然而,將 Kubernetes 放入這種組合中,它會(huì)改變一些事情:
1)Kubernetes 并不關(guān)注 Linux 內(nèi)核之外的事情。如今,調(diào)整任何真實(shí)或虛擬的盒子和 Linux 變體來運(yùn)行設(shè)計(jì)良好的 Kubernetes,通常只需要適當(dāng)?shù)馁Y源配置(盒子需要足夠的內(nèi)核/RAM/存儲/網(wǎng)絡(luò)+安全性才能安全地完成工作)。
2)一致的 Kubernetes 實(shí)現(xiàn)了根本的工作負(fù)載和配置可移植性。除非工作負(fù)載對硬件有特定要求(大多數(shù)情況下沒有),否則企業(yè)會(huì)期望在 Linux Spin X 上開發(fā)的工作負(fù)載可以在任何地方的任何 Linux X 機(jī)器上運(yùn)行。
部署在邏輯上自相似的 Kubernetes 集群上的容器和配置也是如此。事實(shí)并非如此,因?yàn)槿藗儤?gòu)建或獲取了不同的集群,然后嘗試將它們編織到更大的架構(gòu)中以加速軟件交付,使用 CI 自動(dòng)化和其他工具,或者做手工勞動(dòng),以掩蓋增量。
3)除非在極端情況下,Kubernetes 可以讓復(fù)雜而棘手的應(yīng)用程序順利運(yùn)行,而無需持續(xù)的人工關(guān)注。畢竟,這就是它的設(shè)計(jì)目的。企業(yè)還可以在堆棧中的所有內(nèi)容上運(yùn)行滾動(dòng)更新,而無需使應(yīng)用程序或操作脫機(jī)。
4)Kubernetes 允許企業(yè)添加自定義功能來觀察和維護(hù)復(fù)雜的系統(tǒng)狀態(tài),并將系統(tǒng)融合到新狀態(tài)以響應(yīng)聲明性配置的變化。這些能力可以從 Kubernetes 駐留在堆棧中的位置向上和向下工作。
因此,Kubernetes 操作符和類似結(jié)構(gòu)可用于管理應(yīng)用程序(向上)和底層基礎(chǔ)設(shè)施(向下),例如物理和虛擬主機(jī)、虛擬網(wǎng)絡(luò)和云服務(wù)。
5)Kubernetes 可以進(jìn)行配置和擴(kuò)展,為應(yīng)用程序提供大量服務(wù)。例如存儲、DNS,無論應(yīng)用程序需要什么,Kubernetes 都可以代表工作負(fù)載提供和編排服務(wù),這就是它的設(shè)計(jì)目的。
6)Kubernetes 的擴(kuò)展速度非常快。不計(jì)算啟動(dòng)節(jié)點(diǎn)所需的時(shí)間,現(xiàn)代 Kubernetes 發(fā)行版可以在幾分鐘內(nèi)擴(kuò)展到任意數(shù)量的節(jié)點(diǎn)。
7)Kubernetes 可以非常精細(xì)。現(xiàn)代 Kubernetes 發(fā)行版應(yīng)該讓開發(fā)人員在單個(gè)桌面容器或一對 Raspberry Pi 上啟動(dòng)控制器和工作器。同一個(gè)發(fā)行版應(yīng)該同樣能夠運(yùn)行 50/100/500 節(jié)點(diǎn)的集群。
正如大多數(shù)長期用戶所發(fā)現(xiàn)的那樣,有機(jī)的“大量集群與一個(gè)巨大的集群”模型效果最佳,原因有很多。然而,真正的好處只有在“許多小集群”都可以自洽并集中管理生命周期時(shí)才能產(chǎn)生。
Kubernetes 的超能力以重要方式改變了游戲規(guī)則。如果企業(yè)可以部署、擴(kuò)展和管理 Kubernetes
的生命周期,則可以使用它來鋪平公共和私有云基礎(chǔ)設(shè)施,積極優(yōu)化成本和開銷,并將 Kubernetes 下的所有內(nèi)容視為商品。
1)降低云運(yùn)營成本。用戶的早期實(shí)驗(yàn)表明,這種方法可以快速降低私有云運(yùn)營的總成本。以 Kubernetes
為中心的基礎(chǔ)設(shè)施很大程度上會(huì)考慮自己,運(yùn)營商會(huì)“向上”優(yōu)化工作負(fù)載,“向下”來管理主機(jī)、操作系統(tǒng)和其他支持服務(wù)和層。這使得運(yùn)行私有云,特別是當(dāng)它們變得更大時(shí),成本和風(fēng)險(xiǎn)要低得多。
2)降低主機(jī)/客戶機(jī)操作系統(tǒng)許可和支持成本。Kubernetes 對 Linux 內(nèi)核和 CPU 有部分關(guān)注,但其他方面并不多。以 Kubernetes 為中心的基礎(chǔ)設(shè)施并沒有真正受益于底層昂貴的“企業(yè)”Linux。
企業(yè) Linux spin 提供的專用加密(例如 FIPS)等功能正在迅速上升到容器運(yùn)行時(shí)和 Kubernetes 發(fā)行版中。可以啟用 Kubernetes 本身來管理原始裸機(jī)基礎(chǔ)設(shè)施,從而使服務(wù)器池管理解決方案變得不那么重要。
3)降低硬件成本。例如,全球轉(zhuǎn)向更便宜的 ARM64 CPU 的情況正在加速,部分原因是容器和 Kubernetes 使轉(zhuǎn)移和重建工作負(fù)載變得更加容易。
甚至在某些方面,以性能為導(dǎo)向(相對于成本、能源或其他方面)的硬件發(fā)展可能會(huì)停滯不前,尤其是在公共云中,因?yàn)椤敖档汀庇布慕?jīng)濟(jì)性對規(guī)模供應(yīng)商而言十分具有誘惑力。與此同時(shí),可以說更重要的是出于監(jiān)管、管轄和主權(quán)原因以及連接性的位置。
這對私有云運(yùn)營商來說是個(gè)好消息。如今,構(gòu)建集中式計(jì)算/存儲/網(wǎng)絡(luò)比以往任何時(shí)候都便宜。數(shù)據(jù)中心本身正在發(fā)生變化,變得更小,使用更少的電力和冷卻,分布在更多的位置,向邊緣移動(dòng)并進(jìn)入微型設(shè)備群。
4)運(yùn)行私有 IaaS 云的新的和更便宜的方式。以 Kubernetes 為中心的基礎(chǔ)架構(gòu)非常適合以低運(yùn)營成本穩(wěn)健、靈活地運(yùn)行復(fù)雜的關(guān)鍵軟件。
例如,裸機(jī)服務(wù)器池可以在開源基礎(chǔ)設(shè)施即服務(wù) OpenStack 下將 Kubernetes 作為底層運(yùn)行,而不會(huì)降低性能,從而提供更高的彈性、無縫更新和輕松擴(kuò)展,同時(shí)為經(jīng)典虛擬機(jī)、網(wǎng)絡(luò)和存儲提供強(qiáng)大的支持。
5)降低自動(dòng)化成本。為開發(fā)、測試、暫存和交付應(yīng)用程序到生產(chǎn)環(huán)境打造安全、可靠、高性能的工具鏈對于讓客戶滿意并降低業(yè)務(wù)風(fēng)險(xiǎn)至關(guān)重要。
如果企業(yè)的目標(biāo)是一致的 Kubernetes 集群模型(相對于不同的私有云和公共云基礎(chǔ)設(shè)施),那么只需要這樣做一次,然后花時(shí)間改進(jìn)與底線相關(guān)的內(nèi)容。
3、一致的 Kubernetes 無處不在
使用 Kubernetes 作為“基礎(chǔ)設(shè)施”的底線要求是企業(yè)需要能夠在任何地方部署、觀察和管理一個(gè)一致的 Kubernetes 集群模型的生命周期。
這使得以 Kubernetes 層為目標(biāo)的應(yīng)用程序、配置、CI/CD 和操作自動(dòng)化能夠以相同的方式工作,無論是針對在服務(wù)器機(jī)房的刀片上運(yùn)行的集群還是針對在 AWS 實(shí)例上運(yùn)行的集群。
這意味著有人正在啟用此功能并使 Kubernetes 能夠順利地主動(dòng)管理各種底層基礎(chǔ)設(shè)施。