以應用程式為核心的 Google Cloud 可讓您在 Google Cloud中,以一致的方式建立及管理應用程式。在 App Hub 和 App Design Center 遵循應用程式設計和管理最佳做法,有助於建構可操作、可控管且有效率的應用程式,符合業務目標。
應用程式管理的核心原則
遵循下列核心原則,有助於您以應用程式為中心管理 Google Cloud 基礎架構,進而發揮最大價值:
定義明確的界線:以符合邏輯的方式設定應用程式管理界線,以便進行作業、監控、管理和疑難排解。此外,在這個邊界內,您用做應用程式元件的資源,最好共用聯合營運生命週期或業務價值,以簡化管理並降低風險。
基於作業目的,請務必瞭解「應用程式管理邊界」和「觀測能力範圍」之間的差異。
- 應用程式管理邊界定義了一組專案,其中包含可用於設計、建立及管理應用程式的 Google Cloud 資源,詳情請參閱「重要概念」。
- Google Cloud Observability 的觀測能力範圍可讓您同時查看多項專案的遙測資料。
記錄、指標和追蹤記錄範圍應包含應用程式管理邊界內相同專案的資料。如要進一步瞭解觀測能力範圍,請參閱「設定觀測能力範圍」。
反映業務能力:根據業務功能或端對端工作流程定義應用程式,而非僅限於技術層面。應用程式應代表貴業務的獨特價值流。
建立明確的擁有權和中繼資料:為每個應用程式指派明確的屬性,讓團隊在 App Hub 中有效尋找、瞭解及管理應用程式。這些屬性有助於探索及管理資料。「可探索性」是指開發人員和作業人員等相關團隊可以找到應用程式。治理機制會明確定義每個應用程式的擁有者和負責人。
在 App Hub 中,您可以定義下列重要屬性:
- 環境:應用程式生命週期的階段,例如正式環境、測試環境、測試或開發。團隊可根據部署階段,使用這個屬性篩選及管理元件。
- 重要性:應用程式及其元件對業務的重要程度,例如是否為關鍵任務。這項屬性可做為監控和事件應變優先順序的依據。
- 擁有者:負責應用程式的不同團隊聯絡資訊,可促進責任歸屬、簡化溝通流程,以及釐清責任。
Application Design Center 支援這些屬性,也包含應用程式元件的位置和設定詳細資料。如要探索、管理及製作報表,就必須一致套用這些屬性和詳細資料。
設計可擴充的架構:App Design Center 可讓您建立可重複使用的應用程式範本,設計可擴充的架構。更新基礎範本後,您可以重新部署應用程式來套用這些變更,藉此滿足需求、推出新功能或變更架構,因應未來成長和不斷演變的基礎架構需求。
反覆調整及修正應用程式模型:定期審查及調整應用程式定義,反映組織結構、業務優先順序和技術架構的變化。Cloud Hub 可集中查看透過 Application Design Center 範本部署的應用程式更新,協助您查看及調整應用程式定義,因應不斷變化的需求。
資料模型建議
瞭解如何將實際系統模擬為 App Hub 架構中的應用程式、服務和工作負載,即可在 Google Cloud環境中有效使用應用程式管理功能。
定義應用程式時,請務必套用應用程式管理的核心原則,例如使用屬性建立明確的擁有權和中繼資料。
如要使用這個架構建立應用程式元件模型,請參考下列建議用途範例。
範例:微服務型應用程式
電子商務系統 (例如網路商店的 OpenTelemetry 示範中描述的系統) 就是微服務型應用程式。建議您將這類系統模擬為單一應用程式。這種做法可讓您從產品探索到結帳,全面掌握整個業務功能。舉例來說,請考慮下列在 Google Cloud中執行的現有資源模型:
應用程式:在 App Hub 中建立或定義單一應用程式,例如
my-ecommerce-site。這個應用程式代表整個網路商店,是單一可管理的單位。請將下列資源註冊至應用程式,建立邏輯群組,共同提供網路商店的業務功能:- 微服務做為工作負載:將構成電子商務系統的個別微服務 (例如 Ad、Cart 和 Checkout) 註冊為應用程式中的工作負載。這些運算資源含有二進位程式碼,可執行商業邏輯的離散部分,並以 Google Kubernetes Engine (GKE) 部署作業的形式執行。
- 網路端點做為服務:將這些微服務的網路端點 (例如負載平衡器) 註冊為應用程式的服務。這些 API 會向用戶端公開網路商店功能。
請勿將每個微服務註冊為獨立應用程式。這種做法會分散業務背景資訊,難以全面掌握網路商店的健康狀態和效能。
將所有微服務分組到單一應用程式,可享有下列優點:
- 全面掌握:您可以在單一整合式資料檢視中,監控整個電子商務使用者歷程的健康狀態和效能,從廣告功能到結帳功能都一目瞭然。
- 明確的業務背景資訊:應用程式會根據其服務的業務功能 (即網路商店),調整基礎架構。這種做法可讓您更輕鬆地瞭解應用程式的健康狀態和成本。
- 簡化疑難排解:發生問題時,您可以查看應用程式中不同微服務之間的依附關係,加快根本原因分析。
範例:三層式網頁應用程式
三層式網頁應用程式是一種架構模式,會將應用程式分為前端層、後端層和資料庫層。這個用途示範如何將完整的業務功能模擬為單一應用程式,而不是將每個層級視為獨立元件。
下列模型會將技術層對應至三層式網頁應用程式:
應用程式:建立單一應用程式 (例如
my-web-app),做為構成網頁應用程式的所有元件的邏輯容器。服務:將向其他層或使用者公開功能的網路介面註冊為服務,例如:
- 接收使用者流量的前端負載平衡器。
- 管理前端和後端之間流量的內部負載平衡器。
- Cloud SQL 或 Spanner 資料庫執行個體,可向後端邏輯層公開資料服務。
工作負載:將執行應用程式程式碼的運算資源註冊為工作負載,例如:
- 提供前端使用者介面的代管執行個體群組 (MIG) 或 Google Kubernetes Engine 部署項目。
- 執行後端商業邏輯的 MIG 或 Google Kubernetes Engine 部署作業。
將這三個層級分組到單一應用程式,可享有下列好處:
- 整合式觀測能力:您可以在應用程式監控的單一資訊主頁中,監控整個應用程式的健康狀態和效能,不必從三個獨立應用程式拼湊資料。
- 明確的擁有權:您可以為
my-web-app應用程式指派業務、開發人員和營運人員擁有者,明確劃分整個業務功能的責任。 - 簡化管理:您可以在
my-web-app層級套用政策和存取控管機制,在所有層級採用一致的管理方式。
應用程式設計和管理策略
請採用下列策略,確保 App Hub 和 Application Design Center 設定可擴充、可管理,並符合您的作業做法。
選擇全域或區域應用程式
應用程式的位置 (全域或區域) 是影響資料處理、延遲和法規遵循的重要決策:
- 優先使用區域性應用程式:盡可能將應用程式定義為區域性。這種做法可縮短延遲時間、節省成本,並符合資料落地規定。如果所有應用程式元件都位於單一 Google Cloud 區域,建議使用區域性應用程式,這樣就能與區域專屬 Google Cloud 功能和故障域相容。如需建構高可用性系統的指南,請參閱「透過資源備援機制建構高可用性系統」。
- 策略性使用全域應用程式:只有在系統元件必須分散在多個區域,或涉及全域 Google Cloud 資源 (例如全域外部應用程式負載平衡器) 時,才選擇全域應用程式。
- 分解多區域系統:如果您的資源位於多個區域,且未形成單一具凝聚力的全球功能,請考慮為各個區域內的元件定義個別的區域性應用程式。這個做法可充分發揮各項部署作業的區域化優勢。
如要詳細比較 App Hub 中不同部署地理位置,請參閱「全球和區域性應用程式」。
將環境分成不同的應用程式
為確保安全性、權限和作業風險隔離,請將不同的部署環境 (例如開發、測試和正式環境) 視為不同的應用程式。舉例來說,您可以將應用程式結構化為 my-app-dev、my-app-staging 和 my-app-prod。
將環境分隔成不同的應用程式,可精確限制存取控管、政策執行和監控。此外,在應用程式元件上一致使用屬性、設定詳細資料和位置,可提高可偵測性並強制執行管理。這些屬性提供豐富的中繼資料,可用於篩選、製作報表和套用政策。舉例來說,Environment 屬性可針對不同的部署環境政策,提供精細的詳細資料和資源專屬控制項。如要進一步瞭解這項屬性和其他屬性,請參閱「屬性和屬性」。
根據團隊結構調整應用程式管理邊界
在應用程式管理界限內,呈現組織架構,特別是負責應用程式開發和營運的團隊。
這種做法可簡化擁有權和通訊,因為應用程式模型會反映業務使用的架構,定義如何劃分、分組及協調工作,以實現其功能。
遵循應用程式生命週期
將 App Hub 與 App Design Center 整合,享有流暢的應用程式生命週期體驗:
- 您有預先存在的資源,可在應用程式中註冊:使用 App Hub,將現有的 Google Cloud 資源註冊為應用程式中的服務或工作負載。這種做法可讓您快速統一掌握目前基礎架構的運作情形,並控管作業。您也可以在 App Design Center 中,根據執行中的應用程式建立範本,以便標準化日後部署作業的架構。
- 沒有現有資源可註冊至應用程式:使用 Application Design Center,透過受控管的可重複使用範本設計及部署新應用程式。從 App Design Center 範本部署應用程式時,系統會自動在 App Hub 註冊元件,確保應用程式模型準確反映預期設計。Application Design Center 也能協助您根據範本修訂版本,管理一致的應用程式更新。更新範本後,您可以重新部署應用程式來套用變更,確保一致性和管理。
資源階層結構注意事項
Google Cloud中的資源階層是實際應用程式管理的基礎。您可以設定管理專案,在該階層之上導入應用程式管理層,定義應用程式管理邊界。如要概略瞭解不同產品如何搭配運作,做為以應用程式為中心的 Google Cloud 解決方案的一部分,請參閱「以應用程式為中心的 Google Cloud」。
妥善規劃應用程式管理的 Google Cloud 資源階層,是建立邏輯群組的關鍵。您選擇單一專案、資料夾或一組專案來定義應用程式管理邊界,基本上會影響管理、政策執行和資源探索。此外,以應用程式為中心的 Google Cloud 產品支援,會因您定義應用程式管理邊界的方式而異。
如要為資源階層和業務需求定義最佳應用程式管理界線,並瞭解不同資源結構模式的產品支援,請參閱「選擇應用程式設定模型」。
持續調整
應用程式設計並非一成不變,通常會隨著時間演進。定期檢查及調整應用程式,確保應用程式持續符合業務功能、團隊結構和不斷變化的架構。
建議您使用 Cloud Hub 和 Gemini Cloud Assist 的洞察資料,找出最佳化機會並據此調整應用程式。使用 App Design Center 建立架構變更模型、部署變更,並透過範本管理應用程式生命週期。