云聯(lián)壹云:企業(yè)采用多云面臨的挑戰(zhàn)和解決方案
在過去的十年中,基礎(chǔ)設(shè)施領(lǐng)域發(fā)生了巨大變化,越來越多的企業(yè)將其工作負(fù)載分布在多個平臺上,包括本地和云中。這導(dǎo)致管理工作負(fù)載的方式發(fā)生很大變化,隨之而來的是復(fù)雜性和風(fēng)險的增加。跨多個平臺的工作負(fù)載分布有很多種,多云和混合云是最常見的。
簡而言之,多云是在兩個或多個云基礎(chǔ)設(shè)施平臺上部署應(yīng)用程序的組件。這些平臺可以是兩個公共云服務(wù)提供商,或者兩個私有云,或者它們的某種組合。混合云大致相同,但是它更多是指公共云和私有云的組合。
多云和混合云應(yīng)用程序設(shè)計模式可以采用多種形式,但有兩種最為重要:
1)托管在不同云上的組件——最常見和最簡單的模型涉及分離組件(應(yīng)用程序?qū)樱员忝總€不同的組件都部署在單個提供商上,整個應(yīng)用程序分布在多個云中。例如,應(yīng)用程序的前端可能駐留在公共云上,其中間件駐留在私有云上,其數(shù)據(jù)庫駐留在本地裸機集群上。
這個例子可能涉及一個流量很大的以前端為中心的 Web 應(yīng)用程序,可能經(jīng)常更新,它可以避免調(diào)用后端資源。在公共云上安裝應(yīng)用程序前端可以根據(jù)流量快速、動態(tài)地擴展該資源,并可以簡化臨時(但資源密集型)程序。
將中間件放在私有云上可以實現(xiàn)類似但更受限的靈活性,以及更嚴(yán)格的安全性。在裸機上運行數(shù)據(jù)庫可提供最高的可調(diào)性和性能,同時為重要并受監(jiān)管的數(shù)據(jù)提供最大程度的保護。

2)單個組件,分布在多個云中—— 較少情況下,我們采用單個應(yīng)用程序組件并將其分布在多個云中。這種模型的挑戰(zhàn)在于,現(xiàn)在在單個應(yīng)用程序組件中引入了延遲和其他潛在的網(wǎng)絡(luò)風(fēng)險等問題。
例如,隨著企業(yè)擴大公共云服務(wù)的使用并尋求成本優(yōu)化,它們經(jīng)常遇到所需資源不可用的情況,在這種情況下,可以使用像Kubernetes federation這樣的技術(shù)來支持容器工作負(fù)載——對等微服務(wù)水平擴展以執(zhí)行單個應(yīng)用程序功能——來“跨越”公共云之間的鴻溝。然而,編寫在這種架構(gòu)上茁壯成長的微服務(wù)和應(yīng)用程序意味著要預(yù)料到一系列的延遲和運行在單一基礎(chǔ)設(shè)施上的應(yīng)用程序通常不會遇到的特殊狀況。
多云優(yōu)勢
幫助開發(fā)人員更輕松地使用來自多個云提供商的資源和服務(wù)提供了許多優(yōu)勢,包括以下方面。
1)杠桿——企業(yè)可以通過此方式對供應(yīng)商產(chǎn)生一定的影響力,以便能夠協(xié)商最佳價格并確保最佳服務(wù)水平。如果企業(yè)被鎖定在一個單一的供應(yīng)商(或者如果存在壟斷),就會失去這種影響力,很容易受到成本上升和服務(wù)水平下降的影響。
2)價格/性能效率——訪問多個公共云的能力可以使企業(yè)能夠持續(xù)優(yōu)化價格/性能——不僅包括工作負(fù)載托管,還包括與服務(wù)應(yīng)用程序相關(guān)的所有其他性能因素和成本(例如網(wǎng)絡(luò)出口成本、互連性、延遲)。
但是,通過在提供商和基礎(chǔ)設(shè)施之間移動組件和工作負(fù)載,最大限度地提高成本和性能優(yōu)化的自由度,意味著限制企業(yè)對所使用的平臺和提供商的高度差異化功能和服務(wù)的依賴。Kubernetes 和容器在這里可以發(fā)揮重要作用,形成跨越多個云和基礎(chǔ)設(shè)施的一致基礎(chǔ)。
3)降低風(fēng)險——云提供商的定價很復(fù)雜,難以觀察和預(yù)測,并且可能會在幾乎不引起注意的情況下發(fā)生變化。服務(wù)可能停止,提供商的政策也可能發(fā)生變化——提供商在執(zhí)行方面可能反復(fù)無常,服務(wù)條款協(xié)議使客戶在發(fā)生爭議時幾乎沒有追索權(quán)。
因此,提前計劃、提供冗余并確保關(guān)鍵數(shù)據(jù)庫和其他難以移動的組件不會鎖定到特定的提供者是非常有意義的。
4)位置——公共云提供的一項關(guān)鍵服務(wù)是能夠?qū)⒐ぷ髫?fù)載和數(shù)據(jù)放在特定區(qū)域。利用位置的能力可以進入利潤豐厚的市場——這對應(yīng)用程序性能(例如,最小化延遲)、存儲和傳輸成本以及(在某些情況下)特定服務(wù)的可用性和規(guī)模至關(guān)重要。
5)監(jiān)管合規(guī)選項——控制工作負(fù)載和數(shù)據(jù)位置(靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù))對于實施實現(xiàn)法規(guī)遵從性、數(shù)據(jù)主權(quán)和數(shù)據(jù)保護的管轄策略也至關(guān)重要。符合 GDPR、隱私保護和其他法規(guī)的管轄權(quán)和客戶要求的能力是企業(yè)全球化發(fā)展的保證。

多云挑戰(zhàn)
企業(yè)需要制定戰(zhàn)略來確保多云能夠帶來好處,同時不會給開發(fā)人員、DevOps 和運營團隊帶來額外的工作困難。
1)一致性至關(guān)重要。通過確保跨私有云和公共云的應(yīng)用程序平臺一致,可以幫助確保應(yīng)用程序能夠在任何地方運行而無需更改;并且可以在單一渠道中維護配置、操作自動化、CI/CD 和其他輔助代碼庫。
Kubernetes 目前是用于改造公共和私有云基礎(chǔ)設(shè)施以及裸機的最佳可用平臺——提供了許多抽象機制,用于將工作負(fù)載與底層基礎(chǔ)設(shè)施隔離開來,盡管存在底層基礎(chǔ)設(shè)施問題,仍能保持它們的活力,并允許快速、高效、低影響的應(yīng)用程序更新、擴展和生命周期管理。
2)僅Kubernetes 是不夠的——組織需要在所有基礎(chǔ)設(shè)施上提供一致的 Kubernetes,即易于定制、易于擴展、完全可觀察、包含電池、安全、普遍兼容和操作友好的應(yīng)用程序環(huán)境,由一個中心來源提供。單一集群模型可加快操作,實現(xiàn)容器、配置和自動化可移植性,同時還提高安全性(消除未知數(shù)和變化,從而減少攻擊面),促進策略管理并簡化法規(guī)遵從性。
3)使用集中管理的系統(tǒng)來交付、更新和管理跨多云的集群可以大幅提高生產(chǎn)力;用于可觀察性和手動操作的單一管理平臺、全自動且無中斷的更新、用于構(gòu)建自助服務(wù)應(yīng)用程序和按需交付集群的一組 API。通過中央命令和控制設(shè)施“提供商”中間件操作各種公共和私有云基礎(chǔ)設(shè)施,有助于確保企業(yè)從平臺和公共云特定服務(wù)中獲益,同時還可以強制執(zhí)行一致的配置和行為來運行應(yīng)用程序的 Kubernetes 集群。
4)選擇自由與這種模式是一致的。集中管理的多云基礎(chǔ)架構(gòu)可以讓運營商和開發(fā)人員可以自由選擇公共云和私有云備選方案,同時還支持使用一系列操作系統(tǒng)以及大量自動化、CI/CD、安全性和其他工具。
5)集中監(jiān)控和容量管理也很重要,以確保企業(yè)清楚地了解系統(tǒng)的執(zhí)行情況以及它們正在消耗的資源,這樣就可以對應(yīng)該在哪里運行應(yīng)用程序做出正確的決定。
6)在核心要求列表中排名靠前的應(yīng)該是易用性。如果系統(tǒng)使用起來過于復(fù)雜,或者要求開發(fā)人員必須學(xué)會處理新的或陌生的系統(tǒng),這將極大地阻礙多云的采用。
當(dāng)然,選擇多云策略并確保使用通用平臺跨多個平臺部署和管理一致的 Kubernetes(以及可能在 Kubernetes 之上運行的應(yīng)用程序)也有一些缺點。其中最主要的是,企業(yè)可能無法(直接)利用公共(和私有)云提供商提供的附加服務(wù),包括他們的“一鍵式 Kubernetes”版本。
低準(zhǔn)入門檻的服務(wù)(包括 Kubernetes 產(chǎn)品)似乎讓初創(chuàng)公司面臨的阻力更小。但是,企業(yè)投入的越多,在沒有集中式解決方案提供的抽象和中介的情況下,越深入挖掘供應(yīng)商服務(wù)組合,就被鎖定的越深。
進入多云意味著重復(fù)(有區(qū)別地)在每個提供商上開始企業(yè)規(guī)模的工作,并維護您為此創(chuàng)建的所有并行工具渠道。因此,將企業(yè)的運營和業(yè)務(wù)的任何部分從一個供應(yīng)商“提升和轉(zhuǎn)移”到另一個供應(yīng)商成為一個多層次的挑戰(zhàn)。

