身為雲端架構師或決策者,您在 Google Cloud 中規劃部署應用程式時,需要選擇適合應用程式的部署原型1。本指南說明六種部署原型:可用區、區域、多區域、全球、混合式和多雲端,並介紹每種部署原型的用途和設計考量。本指南也提供比較分析,協助您選擇符合可用性、成本、效能和營運效率需求的部署原型。
什麼是部署原型?
部署原型是抽象的供應商獨立模型,您可做為基礎,建構符合業務和技術需求的應用程式專屬部署架構。每個部署原型都會指定應用程式可執行的故障網域組合。這些故障網域可以是一或多個Google Cloud 區域或地區,也可以擴充至其他雲端供應商的內部部署資料中心或故障網域。
下圖顯示部署在 Google Cloud中的六個應用程式。每個應用程式都會使用符合特定需求的部署原型。
如上圖所示,在採用混合雲或多雲部署原型的架構中,雲端拓撲會以基本原型為基礎,包括可用區、區域、多區域或全球。從這個意義上來說,混合雲和多雲端部署原型可視為複合部署原型,其中包含一個基本原型。
選擇部署原型有助於簡化後續決策,決定應使用的 Google Cloud 產品和功能。舉例來說,如果是高可用性的容器化應用程式,選擇區域部署原型時,區域 Google Kubernetes Engine (GKE) 叢集會比區域 GKE 叢集更適合。
為應用程式選擇部署原型時,您需要考量可用性、成本和作業複雜度等因素之間的取捨。舉例來說,如果應用程式服務的對象遍及多個國家/地區,且需要高可用性,您可能會選擇多區域部署原型。但如果是供單一地理區域的員工使用的內部應用程式,您可能會優先考量成本而非可用性,因此選擇區域部署原型。
部署作業原型總覽
以下分頁提供部署原型定義,以及各原型的用途和設計考量摘要。
可用區
應用程式會在單一 Google Cloud 區域內執行,如下圖所示:
用途 |
|
---|---|
設計須知 |
|
更多資訊 | 請參閱下列各節: |
區域
如以下圖表所示,您的應用程式會在單一Google Cloud 區域內的兩個或多個區域中獨立執行:
用途 |
|
---|---|
設計須知 |
|
更多資訊 | 請參閱下列各節: |
多區域
您的應用程式會在兩個或更多Google Cloud 區域的多個可用區中獨立執行。您可以使用 DNS 轉送政策,將傳入流量轉送至區域負載平衡器。區域性負載平衡器接著會將流量分配給應用程式的區域副本,如下圖所示:
用途 |
|
---|---|
設計須知 |
|
更多資訊 | 請參閱下列各節: |
全球
您的應用程式會在全球各區域執行,可以是全球分散式 (不瞭解位置) 堆疊,也可以是區域隔離式堆疊。 Google Cloud全域 Anycast 負載平衡器會將流量分配至最靠近使用者的區域。應用程式堆疊的其他元件也可以是全域元件,例如資料庫、快取和物件儲存空間。
下圖顯示全域部署原型在全球各地分散的變體。全域 Anycast 負載平衡器會將要求轉送至分散在多個區域的應用程式堆疊,並使用全域複製的資料庫。
下圖顯示全域部署原型變體,其中應用程式堆疊在區域中隔離。全域 Anycast 負載平衡器會將要求轉送至其中一個區域的應用程式堆疊。所有應用程式堆疊都使用單一的全球複製資料庫。
用途 |
|
---|---|
設計須知 | 跨區域資料移轉和資料複製的費用。 |
更多資訊 | 請參閱下列各節: |
混合
應用程式的某些部分會部署在 Google Cloud,其他部分則會在內部部署環境中執行,如下圖所示。 Google Cloud 中的拓撲可使用區域、地區、多地區或全球部署原型。
用途 |
|
---|---|
設計須知 |
|
更多資訊 | 請參閱下列各節: |
多雲端
應用程式的部分內容部署在 Google Cloud,其他部分則部署在其他雲端平台,如下圖所示。每個雲端平台中的拓撲都可以使用可用區、區域、多區域或全球部署原型。
用途 |
|
---|---|
設計須知 |
|
更多資訊 | 請參閱下列各節: |
貢獻者
作者:Kumar Dhanagopal | 跨產品解決方案開發人員
其他貢獻者:
- Anna Berenberg | 工程研究員
- Anshu Kak | 傑出工程師
- Jeff Welsch | 產品管理總監
- Marwan Al Shawi | 合作夥伴客戶工程師
- Sekou Page | 對外產品經理
- Steve McGhee | 可靠性做法倡議者
- Victor Moreno | 雲端網路產品經理
-
Anna Berenberg 和 Brad Calder,《Deployment Archetypes for Cloud Applications》,ACM Computing Surveys,第 55 卷,第 3 期,文章編號:61,第 1-48 頁 ↩