本文將重點說明核心設計考量,這些考量在形塑整體混合雲和多雲端架構方面扮演關鍵角色。全面分析及評估整個解決方案架構中這些考量的因素,涵蓋所有工作負載,而不僅限於特定工作負載。
重構
在重構遷移中,您可以修改工作負載以利用雲端功能,而不僅僅是讓工作負載得以在新環境中運作。您可以針對效能、功能、費用和使用者體驗這些方面來改進各項工作負載。如「重構:遷移並改善」一文所述,部分重構情境可讓您在將工作負載遷移至雲端前進行修改。這種重構方法具有下列優點,特別是如果您的目標是建構混合式架構,做為長期目標架構:
- 您可以改善部署程序。
- 投資持續整合/持續部署 (CI/CD) 基礎架構和工具,有助於加快發布速度並縮短意見回饋週期。
- 您可以將重構做為基礎,建構及管理混合式架構,並確保應用程式可攜性。
為使這種做法充分發揮效用,您通常需要針對一些內部部署基礎架構和工具進行投資。例如設定本機 Container Registry,以及佈建 Kubernetes 叢集,以將應用程式容器化。Google Kubernetes Engine (GKE) Enterprise 版在這類混合式環境中非常實用。如要進一步瞭解 GKE Enterprise,請參閱下一個章節。如需更多詳細資料,請參閱 GKE Enterprise 混合環境參考架構。
工作負載可攜性
在混合式和多雲架構中,您可能希望能夠在代管資料的運算環境之間轉移工作負載。為協助在環境之間順暢移動工作負載,請考慮下列因素:
- 您可以在不大幅修改應用程式及其作業模式的情況下,將應用程式從一個運算環境移轉到另一個環境:
- 應用程式的部署和管理方式在不同運算環境中都是一致的。
- 不同運算環境的顯示設定、設定和安全性一致。
- 工作負載的可攜性不應與雲端優先的工作負載發生衝突。
基礎架構自動化
基礎架構自動化是混合式雲端和多雲端架構可攜性的必要條件。自動建立基礎架構的常見方法之一,是透過基礎架構即程式碼 (IaC)。採用 IaC 時,您是透過檔案管理基礎架構,而非在使用者介面中手動設定資源,例如 VM、安全群組或負載平衡器。Terraform 是熱門的 IaC 工具,可讓您在檔案中定義基礎架構資源。您也可以使用 Terraform,在異質環境中自動建立這些資源。
如要進一步瞭解 Terraform 核心功能,如何協助您自動佈建及管理資源,請參閱「Terraform blueprints and modules for Google Cloud」。 Google Cloud
您可以使用 Ansible、Puppet 或 Chef 等設定管理工具,建立常見的部署和設定程序。您也可以使用 Packer 等映像檔製作工具,為不同平台建立 VM 映像檔。您可以使用單一共用的設定檔,透過 Packer 和 Cloud Build 建立 VM 映像檔,以便在 Compute Engine 上使用。最後,您可以使用 Prometheus、Grafana 等解決方案來確保跨環境監控的一致性。
以這些工具做為基礎,您可以組成一個常見的工具鍊,如下列邏輯圖所示。這個通用工具鍊可抽離運算環境之間的差異,您也可以整合佈建、部署、管理及監控作業。
雖然通用工具鍊可協助您實現工作負載的可攜性,但它有幾個缺點:
- 以 VM 做為共同基礎,將使您很難實作真正的雲端優先應用程式。此外,如果只使用 VM,您就無法使用雲端代管服務。您可能會錯失減少管理負擔的機會。
- 建立及維護通用工具鍊會產生營運費用和成本。
- 隨著工具鍊擴大,可能會出現專為貴公司特定需求量身打造的獨特複雜性。複雜度增加可能會導致訓練成本上漲。
決定開發工具和自動化功能前,請先瞭解雲端供應商提供的代管服務。如果供應商提供的代管服務支援相同的使用案例,您就能簡化部分複雜程序。這樣一來,您就能專注於工作負載和應用程式架構,不必費心處理基礎架構。
舉例來說,您可以使用 Kubernetes 資源模型,以宣告式設定方法自動建立 Kubernetes 叢集。您可以使用 Deployment Manager convert,將 Deployment Manager 設定和範本轉換為 Google Cloud 支援的其他宣告式設定格式 (例如 Terraform 和 Kubernetes 資源模型),以便在發布時攜帶這些設定和範本。
您也可以考慮自動化建立專案,以及在這些專案中建立資源。這項自動化功能可協助您以基礎架構即程式碼的方式佈建專案。
容器和 Kubernetes
使用雲端管理功能,有助於簡化自訂工具鍊的建構和維護作業,進而實現工作負載自動化和可攜性。不過,以 VM 做為共同基礎,將使您很難實作出真正雲端優先的應用程式。改用容器和 Kubernetes 是一個解決辦法。
當您將軟體從一個環境遷移到另一個環境時,容器能讓軟體可靠地執行。容器可將應用程式與底層主機基礎架構分離,因此有助於在混合雲和多雲端等運算環境中部署應用程式。
Kubernetes 會負責處理容器化應用程式的調度、部署、擴展及管理作業。這項技術屬於開放原始碼,由 Cloud Native Computing Foundation (雲端原生運算基金會) 管理。Kubernetes 提供構成雲端優先應用程式基礎的服務。您可以在多種運算環境中安裝及執行 Kubernetes,因此也可以利用 Kubernetes 來建立跨運算環境的共用執行階段層:
- Kubernetes 在雲端或私人運算環境中可提供相同的服務和 API。此外,Kubernetes 的抽象層又比使用 VM 時高出很多,這通常可減少所需的基礎工作,並提高開發人員的生產力。
- 與自訂工具鏈不同,Kubernetes 已廣泛應用於開發和應用程式管理作業,因此您可以利用現有的專業知識、說明文件,以及第三方支援。
- Kubernetes 支援所有符合下列條件的容器實作項目:
- 支援 Kubernetes 容器執行階段介面 (CRI)
- 已在產業中廣泛採用
- 不綁定任何特定供應商
工作負載在 Google Cloud上執行時,您可以使用 Google Kubernetes Engine (GKE) 等代管 Kubernetes 平台,免除安裝及運作 Kubernetes 的工作。這樣一來,營運人員就能將重心從建構及維護基礎架構,轉移到建構及維護應用程式。
您也可以使用 Autopilot,這是 GKE 的作業模式,可管理叢集設定,包括節點、資源調度、安全性和其他預先設定。使用 GKE Autopilot 時,請考量您的擴縮需求和擴縮限制。
從技術上來說,您可以在許多運算環境中安裝及執行 Kubernetes,建立共用的執行階段層。不過,從實務角度來看,建構及運作這類架構可能會造成複雜性。如果您需要容器層級的安全控管 (服務網格),架構會變得更加複雜。
如要簡化多叢集部署作業的管理方式,可以使用 GKE Enterprise 大規模執行現代化應用程式,GKE 內含強大的受管理開放原始碼元件,可保護工作負載、強制執行法規遵循政策,並提供深入的網路可觀測性和疑難排解功能。
如下圖所示,使用 GKE Enterprise 代表您可以將多叢集應用程式做為車隊運作。
GKE Enterprise 提供下列設計選項,支援混合雲和多雲端架構:
在內部部署系統中設計及建構類似雲端的體驗,或採用統一的解決方案,將應用程式遷移至 GKE Enterprise 混合式環境。詳情請參閱 GKE Enterprise 混合式環境參考架構。
設計及建構解決方案,透過 GKE Multi-Cloud 採用一致的管理、作業和安全防護機制,解決多雲環境的複雜問題。詳情請參閱 GKE Multi-Cloud 說明文件。
GKE Enterprise 也提供類似環境的邏輯分組,並確保安全防護、設定和服務管理的一致性。舉例來說,GKE Enterprise 可支援零信任分散式架構。在零信任分散式架構中,部署於地端或其他雲端環境的服務,可以透過端對端 mTLS 安全服務間通訊,跨環境進行通訊。
工作負載可攜性考量事項
Kubernetes 和 GKE Enterprise 為工作負載提供抽象層,可隱藏運算環境的許多細節和差異。以下列出部分抽象概念:
- 應用程式可在進行最小幅度變更的情況下攜帶至不同的環境,但這並不表示應用程式在兩種環境中的效能一樣好。
- 運算、基礎架構安全性功能或網路基礎架構的差異,以及與相依服務的距離遠近,可能會導致兩者的效能出現很大的落差。
- 當您把工作負載遷移到另一個運算環境時,可能也需要遷移資料。
- 不同環境可能會有不同的資料儲存和管理服務與設施。
- 以 Kubernetes 或 GKE Enterprise 佈建的負載平衡器,在不同環境中的行為和效能可能有所差異。
資料遷移
在運算環境之間大規模移動、共用及存取資料可能很複雜,因此企業級公司可能會猶豫是否要建構混合式或多雲端架構。如果他們已將大部分資料儲存在地端或單一雲端,這種猶豫感可能會更加強烈。
不過, Google Cloud提供的各種資料移動選項,可為企業提供全方位的解決方案,協助移動、整合及轉換資料。這些選項可協助企業在不同環境中儲存、共用及存取資料,以滿足特定用途。這項功能最終可讓業務和技術決策者更輕鬆地採用混合式和多雲端架構。
資料移動是混合雲和多雲端策略與架構規劃的重要考量。您的團隊需要找出不同的業務用途,以及支援這些用途的資料。您也應考慮儲存空間類型、容量、存取權和移動選項。
如果企業為受監管產業設定資料分類,這項分類有助於找出特定資料類別的儲存位置,以及跨區域資料移動限制。詳情請參閱「Sensitive Data Protection」。Sensitive Data Protection 是一項全代管服務,可協助您探索、分類及保護資料資產。
如要瞭解相關程序,包括規劃資料移轉和實施計畫的最佳做法等,請參閱「遷移至 Google Cloud:轉移大型資料集」。
安全性
隨著機構採用混合雲和多雲端架構,系統和資料在不同環境中分散的方式可能會增加攻擊面。加上威脅環境不斷演變,攻擊面增加可能會導致未經授權的存取、資料遺失和其他安全事件的風險增加。規劃及實作混合式或多雲端策略時,請仔細考量安全性。
詳情請參閱「Attack Surface Management for Google Cloud」。
設計混合架構時,將地端安全防護方法擴展到雲端,在技術上不一定可行或可行。不過,硬體裝置的許多網路安全功能都是雲端優先功能,且以分散式方式運作。如要進一步瞭解 Google Cloud的雲端優先網路安全功能,請參閱「雲端網路安全性」。
混合雲和多雲端架構可能會帶來額外的安全性挑戰,例如一致性和可觀測性。每家公有雲供應商都有自己的安全防護方法,包括不同的模型、最佳做法、基礎架構和應用程式安全防護功能、法規遵循義務,甚至是安全防護服務的名稱。這些不一致可能會增加安全風險。此外,各雲端供應商的共同責任模式可能有所不同。在多雲架構中,務必找出並瞭解確切的責任分界。
觀測能力是從不同環境取得洞察資料和指標的關鍵。在多雲架構中,每個雲端通常都會提供工具,監控安全防護措施和設定錯誤。不過,使用這些工具會導致資訊孤立,無法在整個環境中建立進階威脅情報。因此,安全團隊必須在工具和資訊主頁之間切換,才能確保雲端安全。如果無法全面掌握混合式和多雲端環境的端對端安全防護情況,就難以優先處理及減輕安全漏洞的影響。
如要全面掌握所有環境的能見度和狀態,請優先處理安全漏洞,並減少您發現的安全漏洞。建議採用集中式曝光度模型。集中式曝光度模型可避免手動關聯不同平台的不同工具和資訊主頁。詳情請參閱混合雲和多雲端的監控及記錄模式。
為減輕安全風險並在Google Cloud上部署工作負載,以及協助您規劃及設計雲端解決方案,以達成安全性和法規遵循目標,請參閱 Google Cloud 安全性最佳做法中心和企業基礎藍圖。
法規遵循目標可能因產業特定法規,以及不同地區和國家/地區的法規要求而異。詳情請參閱 Google Cloud 法規遵循資源中心。 以下是幾種主要建議方法,可協助您設計安全的混合雲和多雲端架構:
制定統一的專屬雲端安全策略和架構。混合雲和多雲安全策略應根據貴機構的特定需求和目標量身打造。
實作安全控管機制前,請務必先瞭解目標架構和環境,因為每個環境可能使用不同的功能、設定和服務。
考慮在混合雲和多雲端環境中採用統一的安全性架構。
標準化雲端設計和部署作業,尤其是安全設計和功能。這樣做可以提高效率,並啟用統一控管和工具。
使用多項安全控管措施。
一般來說,單一安全控制項無法充分滿足所有安全防護需求。因此,機構應採用縱深防禦方法,結合多種安全控管措施。
監控並持續改善安全防護機制:貴機構應監控不同環境中的安全威脅和安全漏洞。並持續提升安全防護機制。
建議使用雲端安全防護管理 (CSPM) 找出並修正安全性設定錯誤和網路安全威脅。CSPM 也提供混合式雲端和多雲端環境的安全漏洞評估。
Security Command Center 是 Google Cloud 適用的內建安全性與風險管理解決方案,可協助找出設定錯誤和安全漏洞等問題。 Google CloudSecurity Health Analytics 是一種受管理的安全性弱點評估掃描工具。這項 Security Command Center 功能可找出Google Cloud 環境中的安全風險和安全漏洞,並提供修正建議。
Mandiant Attack Surface Management for Google Cloud 可協助貴機構更清楚掌握多雲端或混合雲環境資產。這項服務會自動探索多個雲端供應商、DNS 和擴展外部攻擊面中的資產,協助企業深入瞭解生態系統。根據這項資訊,優先修復風險最高的安全漏洞和暴露面。
- 雲端安全資訊與事件管理 (SIEM) 解決方案:有助於收集及分析混合式和多雲環境中的安全記錄,以偵測及因應威脅。Google Security Operations SIEM Google Cloud 可集中收集、分析、偵測及調查所有安全性資料,提供安全資訊與事件管理服務。