網際網路應用程式在使用量上可能會有極端的波動。雖然大多數企業應用程式不會面臨這項挑戰,許多企業仍必須處理不同的爆發工作負載:批次或持續整合/持續推送軟體更新工作。
這個架構模式仰賴多個運算環境間的應用程式備援部署。目標是提高容量和/或彈性。
雖然您可超額佈建資源,在以資料中心為基礎的運算環境中配合爆發的工作負載,這種方法可能不符合成本效益。當工作有時效性的限制時,延遲工作是不切實際的做法,但透過批次工作,您可以將其執行項目延長到較長的時間範圍來最佳化使用率。
「雲端爆發」模式的概念是將私人運算環境用於基準負載,並在需要額外的能力時,暫時爆發至雲端。
在上述圖表中,當資料容量在內部私人環境中達到上限時,系統可視需要從Google Cloud 環境取得額外容量。
這類模式的主要驅動因素是節省成本,以及減少因應規模需求變更所需的時間和精力。採用這種做法,您只需為處理額外負載時使用的資源付費。也就是說,您不需要過度配置基礎架構。您可以改用隨選雲端資源,並根據需求和任何預先定義的指標調整資源。因此,貴公司可能可避免在需求量高的時段發生服務中斷情形。
雲端爆發情境的潛在需求是工作負載可攜性。當您允許將工作負載部署至多個環境時,必須去除不同環境之間的差異。舉例來說,Kubernetes 可讓您在使用不同基礎架構的各種環境中,達到工作負載層級的一致性。詳情請參閱 GKE Enterprise 混合式環境參考架構。
設計須知
雲端爆發模式適用於互動式和批次工作負載。不過,當您處理互動式工作負載時,必須判定如何將要求分散到多個環境:
您可以將傳入使用者要求轉送至現有資料中心內執行的負載平衡器,然後讓該負載平衡器將要求分散到本機和雲端資源。
這個方法需要負載平衡器或在現有資料中心內執行的另一個系統也追蹤雲端中配置的資源。負載平衡器或其他系統也必須啟動自動擴充或縮減資源規模。您可以使用這個方法在低活動量期間停用所有雲端資源。不過,實作追蹤資源的機制可能會超出負載平衡器解決方案的能力,因而增加整體複雜度。
您可以使用 Cloud Load Balancing 搭配混合式連線網路端點群組 (NEG) 後端,而非實作追蹤資源的機制。您可以使用這個負載平衡器,將內部用戶端要求或外部用戶端要求,轉送至位於內部和Google Cloud 的後端,並根據不同的指標 (例如以重量為依據的流量分配) 進行轉送。此外,您也可以根據 Google Cloud中工作負載的負載平衡服務規模,調整後端。如需更多資訊,請參閱「全域外部應用程式負載平衡器的流量管理總覽」。
這種做法還有其他好處,例如可充分運用 Google Cloud Armor 的分散式阻斷服務防護機制、網路應用程式防火牆,以及使用 Cloud CDN 在雲端邊緣快取內容。不過,您需要調整混合式網路連線的大小,才能處理額外的流量。
如工作負載可攜性所述,應用程式可在進行最小幅度變更的情況下攜帶至不同的環境,以便達到工作負載一致性,但這並不表示應用程式在兩種環境中的效能一樣好。運算或網路基礎架構的差異,以及與相依服務的距離遠近,通常會決定效能。透過測試,您可以更準確地掌握情況,並瞭解成效預期。
您可以使用雲端基礎架構服務,建構可用於代管應用程式的環境,而無須考量可攜性。在需求量最高的時間點將流量重新導向時,請使用下列方法處理用戶端要求:
- 使用一致的工具監控及管理這兩個環境。
- 確保工作負載版本一致,且資料來源為最新版本。
- 當需求增加,且雲端工作負載預期會接受應用程式的用戶端要求時,您可能需要新增自動化功能來佈建雲端環境,並重新路由流量。
如果您打算在低需求期間關閉所有 Google Cloud 資源,使用 DNS 轉送政策主要用於流量負載平衡,可能並非最佳做法。這主要是因為:
- 資源可能需要一些時間才能完成初始化,才能為使用者提供服務。
- DNS 更新通常會在網際網路上緩慢傳播。
因此:
- 即使沒有資源可處理使用者的請求,系統仍可能將使用者轉送至 Cloud 環境。
- 在 DNS 更新在網際網路上全面生效之前,使用者可能會暫時持續被路由至內部環境。
您可以使用 Cloud DNS 選擇符合解決方案架構和行為的DNS 政策和轉送政策,例如地理位置 DNS 轉送政策。Cloud DNS 也支援內部直通式網路負載平衡器和內部應用程式負載平衡器的健康狀態檢查。在這種情況下,您可以將其納入以此模式為基礎的整體混合 DNS 設定。
在某些情況下,您可以使用 Cloud DNS 將用戶端要求分配給 Google Cloud的健康狀態檢查,例如使用內部應用程式負載平衡器或跨區域內部應用程式負載平衡器。在這種情況下,Cloud DNS 會檢查內部應用程式負載平衡器的整體健康狀態,而後者會檢查後端執行個體的健康狀態。如需更多資訊,請參閱「管理 DNS 轉送政策和健康狀態檢查」。
您也可以使用 Cloud DNS 水平分割。Cloud DNS 水平分割是一種方法,可針對相同網域名稱的 DNS 查詢來源,設定 DNS 回應或記錄的特定位置或網路。這種做法通常用於滿足應用程式設計提供私人和公開體驗的需求,每種體驗各自具有獨特功能。這項做法也有助於在各環境中分配流量負載。
考量這些因素,雲端爆發模式一般而言比較適合批次工作負載,而非互動式工作負載。
優點
雲端爆發式執行架構模式的主要優點包括:
- 雲端爆發可讓您在資料中心和私人運算環境中重複使用現有的投資。這個重複使用的機制可以是永久的,或是直到現有設備到了替換的期限時才失效,這也是您可能會考慮完整遷移的時間點。
- 您不再需要維護額外的能力來滿足尖峰需求,因此您可能可以提高私人運算環境的使用率和成本效益。
- 雲端爆發可讓您適時地執行批次工作,無須超額佈建運算資源。
最佳做法
實作雲端爆發模式時,請考慮採用下列最佳做法:
- 為確保在雲端中執行的工作負載能夠與在內部部署環境中執行的工作負載採用相同的方式存取資源,請使用網狀式模式,並採用最低權限的安全存取原則。如果工作負載設計允許,您可以僅允許從雲端存取內部運算環境,反之亦然。
- 如要盡量減少環境之間的通訊延遲,請挑選地理位置靠近您的私人運算環境的 Google Cloud 區域。詳情請參閱「選擇 Compute Engine 地區的最佳做法」。
- 僅將雲端爆發模式用於批次工作負載時,可將所有 Google Cloud 資源設為私人資源,藉此縮小資安防護網的受攻擊面。禁止外界透過網際網路直接存取這些資源,即使您使用 Google Cloud 外部負載平衡功能提供工作負載的進入點,也一樣。
選取符合架構模式和指定解決方案行為的DNS 政策和路由政策。
- 在這個模式中,您可以永久套用 DNS 政策的設計,或是在尖峰使用期間需要使用其他環境的額外容量時套用。
- 您可以使用地理位置 DNS 路由政策,為區域負載平衡器提供全域 DNS 端點。這項策略適用於許多地理位置 DNS 路由政策用途,包括在 Google Cloud 區域內部署 Google Cloud 的混合應用程式。
如果您需要為相同的 DNS 查詢提供不同的記錄,可以使用水平分割 DNS,例如來自內部和外部用戶端的查詢。
詳情請參閱混合式 DNS 適用的參考架構
為確保 DNS 變更能快速套用,請設定合理簡短的存留時間值,以便在需要使用雲端環境的額外容量時,將使用者重新導向至待命系統。
針對時間上不是很緊急且不會在本機儲存資料的工作,請考慮使用Spot VM 執行個體,這會比一般 VM 執行個體便宜相當多。不過,有個必要條件是,如果 VM 工作遭到先佔,系統必須能夠自動重新啟動工作。
在適用情況下,使用容器來移轉工作負載。此外,GKE Enterprise 也是這類設計的關鍵技術。詳情請參閱 GKE Enterprise 混合式環境參考架構。
監控從 Google Cloud 傳送至不同運算環境的任何流量。這種流量會有傳出資料移轉費用。
如果您打算長期使用此架構,且傳出資料量高,建議您使用 Cloud Interconnect。Cloud Interconnect 可協助您提升連線效能,並可能降低符合特定條件的傳出資料移轉費用。詳情請參閱「Cloud Interconnect 定價」。
使用 Cloud Load Balancing 時,請在適用情況下使用其應用程式容量最佳化功能 。這麼做有助於解決全球分散式應用程式可能發生的部分容量問題。
在環境之間建立通用身分識別,讓系統能夠跨越環境界線以安全的方式進行驗證,進而驗證使用系統的使用者。
為保護機密資訊,強烈建議您對傳輸中的所有通訊進行加密。如果連線層需要加密,您可以根據所選的混合連線解決方案,選擇各種選項。這些選項包括 VPN 隧道、採用 Cloud Interconnect 的高可用性 VPN,以及 Cloud Interconnect 的 MACsec。