企業採用多雲面臨的挑戰和解決方案

雲聯壹雲發表於2022-01-13

在過去的十年中,基礎設施領域發生了巨大變化,越來越多的企業將其工作負載分佈在多個平臺上,包括本地和雲中。這導致管理工作負載的方式發生很大變化,隨之而來的是複雜性和風險的增加。跨多個平臺的工作負載分佈有很多種,多雲和混合雲是最常見的。

簡而言之,多雲是在兩個或多個雲基礎設施平臺上部署應用程式的元件。這些平臺可以是兩個公共雲服務提供商,或者兩個私有云,或者它們的某種組合。混合雲大致相同,但是它更多是指公共雲和私有云的組合。

多雲和混合雲應用程式設計模式可以採用多種形式,但有兩種最為重要:

1)託管在不同雲上的元件——最常見和最簡單的模型涉及分離元件(應用程式層),以便每個不同的元件都部署在單個提供商上,整個應用程式分佈在多個雲中。例如,應用程式的前端可能駐留在公共雲上,其中介軟體駐留在私有云上,其資料庫駐留在本地裸機叢集上。

這個例子可能涉及一個流量很大的以前端為中心的 Web 應用程式,可能經常更新,它可以避免呼叫後端資源。在公共雲上安裝應用程式前端可以根據流量快速、動態地擴充套件該資源,並可以簡化臨時(但資源密集型)程式。

將中介軟體放在私有云上可以實現類似但更受限的靈活性,以及更嚴格的安全性。在裸機上執行資料庫可提供最高的可調性和效能,同時為重要並受監管的資料提供最大程度的保護。

圖片

2)單個元件,分佈在多個雲中—— 較少情況下,我們採用單個應用程式元件並將其分佈在多個雲中。這種模型的挑戰在於,現在在單個應用程式元件中引入了延遲和其他潛在的網路風險等問題。

例如,隨著企業擴大公共雲服務的使用並尋求成本優化,它們經常遇到所需資源不可用的情況,在這種情況下,可以使用像Kubernetes federation這樣的技術來支援容器工作負載——對等微服務水平擴充套件以執行單個應用程式功能——來“跨越”公共雲之間的鴻溝。然而,編寫在這種架構上茁壯成長的微服務和應用程式意味著要預料到一系列的延遲和執行在單一基礎設施上的應用程式通常不會遇到的特殊狀況。

多雲優勢

幫助開發人員更輕鬆地使用來自多個雲提供商的資源和服務提供了許多優勢,包括以下方面。

1)槓桿——企業可以通過此方式對供應商產生一定的影響力,以便能夠協商最佳價格並確保最佳服務水平。如果企業被鎖定在一個單一的供應商(或者如果存在壟斷),就會失去這種影響力,很容易受到成本上升和服務水平下降的影響。

2)價格/效能效率——訪問多個公共雲的能力可以使企業能夠持續優化價格/效能——不僅包括工作負載託管,還包括與服務應用程式相關的所有其他效能因素和成本(例如網路出口成本、互連性、延遲)。

但是,通過在提供商和基礎設施之間移動元件和工作負載,最大限度地提高成本和效能優化的自由度,意味著限制企業對所使用的平臺和提供商的高度差異化功能和服務的依賴。Kubernetes 和容器在這裡可以發揮重要作用,形成跨越多個雲和基礎設施的一致基礎。

3)降低風險——雲提供商的定價很複雜,難以觀察和預測,並且可能會在幾乎不引起注意的情況下發生變化。服務可能停止,提供商的政策也可能發生變化——提供商在執行方面可能反覆無常,服務條款協議使客戶在發生爭議時幾乎沒有追索權。

因此,提前計劃、提供冗餘並確保關鍵資料庫和其他難以移動的元件不會鎖定到特定的提供者是非常有意義的。

4)位置——公共雲提供的一項關鍵服務是能夠將工作負載和資料放在特定區域。利用位置的能力可以進入利潤豐厚的市場——這對應用程式效能(例如,最小化延遲)、儲存和傳輸成本以及(在某些情況下)特定服務的可用性和規模至關重要。

5)監管合規選項——控制工作負載和資料位置(靜態資料和動態資料)對於實施實現法規遵從性、資料主權和資料保護的管轄策略也至關重要。符合 GDPR、隱私保護和其他法規的管轄權和客戶要求的能力是企業全球化發展的保證。

圖片

多雲挑戰

企業需要制定戰略來確保多雲能夠帶來好處,同時不會給開發人員、DevOps 和運營團隊帶來額外的工作困難。

1)一致性至關重要。通過確保跨私有云和公共雲的應用程式平臺一致,可以幫助確保應用程式能夠在任何地方執行而無需更改;並且可以在單一渠道中維護配置、操作自動化、CI/CD 和其他輔助程式碼庫。

Kubernetes 目前是用於改造公共和私有云基礎設施以及裸機的最佳可用平臺——提供了許多抽象機制,用於將工作負載與底層基礎設施隔離開來,儘管存在底層基礎設施問題,仍能保持它們的活力,並允許快速、高效、低影響的應用程式更新、擴充套件和生命週期管理。

2)僅Kubernetes 是不夠的——組織需要在所有基礎設施上提供一致的 Kubernetes,即易於定製、易於擴充套件、完全可觀察、包含電池、安全、普遍相容和操作友好的應用程式環境,由一箇中心來源提供。單一叢集模型可加快操作,實現容器、配置和自動化可移植性,同時還提高安全性(消除未知數和變化,從而減少攻擊面),促進策略管理並簡化法規遵從性。

3)使用集中管理的系統來交付、更新和管理跨多雲的叢集可以大幅提高生產力;用於可觀察性和手動操作的單一管理平臺、全自動且無中斷的更新、用於構建自助服務應用程式和按需交付叢集的一組 API。通過中央命令和控制設施“提供商”中介軟體操作各種公共和私有云基礎設施,有助於確保企業從平臺和公共雲特定服務中獲益,同時還可以強制執行一致的配置和行為來執行應用程式的 Kubernetes 叢集。

4)選擇自由與這種模式是一致的。集中管理的多雲基礎架構可以讓運營商和開發人員可以自由選擇公共雲和私有云備選方案,同時還支援使用一系列作業系統以及大量自動化、CI/CD、安全性和其他工具。

5)集中監控和容量管理也很重要,以確保企業清楚地瞭解系統的執行情況以及它們正在消耗的資源,這樣就可以對應該在哪裡執行應用程式做出正確的決定。

6)在核心要求列表中排名靠前的應該是易用性。如果系統使用起來過於複雜,或者要求開發人員必須學會處理新的或陌生的系統,這將極大地阻礙多雲的採用。

圖片

當然,選擇多雲策略並確保使用通用平臺跨多個平臺部署和管理一致的 Kubernetes(以及可能在 Kubernetes 之上執行的應用程式)也有一些缺點。其中最主要的是,企業可能無法(直接)利用公共(和私有)雲提供商提供的附加服務,包括他們的“一鍵式 Kubernetes”版本。

低准入門檻的服務(包括 Kubernetes 產品)似乎讓初創公司面臨的阻力更小。但是,企業投入的越多,在沒有集中式解決方案提供的抽象和中介的情況下,越深入挖掘供應商服務組合,就被鎖定的越深。

進入多雲意味著重複(有區別地)在每個提供商上開始企業規模的工作,並維護您為此建立的所有並行工具渠道。因此,將企業的運營和業務的任何部分從一個供應商“提升和轉移”到另一個供應商成為一個多層次的挑戰。

相關文章