鏡像模式是指將特定現有環境的設計複製到新環境。因此,這個模式主要適用於遵循環境混合模式的架構。 在該模式中,您會在一個環境中執行開發和測試工作負載,同時在另一個環境中執行測試環境和實際運作工作負載。
鏡像模式假設測試和實際運作工作負載不應直接互相通訊,但您應能透過一致的方式來管理及部署這兩組工作負載。
如果您使用這個模式,請以符合下列需求的方式連結兩個運算環境:
- 持續整合/持續推送軟體更新 (CI/CD) 可在所有運算環境或特定環境中部署及管理工作負載。
- 監控、設定管理和其他管理系統應可在不同運算環境中運作。
- 工作負載無法跨運算環境直接通訊。如有必要,通訊必須以精細且受控的方式進行。
架構
下方的架構圖顯示此模式的概略參考架構,支援 CI/CD、監控、設定管理、其他管理系統和工作負載通訊:
上圖的架構說明如下:
- 工作負載會根據功能環境 (開發、測試、CI/CD 和管理工具) 分散到 Google Cloud 側的獨立 VPC。
- 共用虛擬私有雲用於開發和測試工作負載。另一個 VPC 則用於 CI/CD 和管理工具。使用共用虛擬私有雲:
- 每個環境和服務專案的應用程式,都由不同的團隊管理。
- 主專案會管理及控管開發和測試環境之間的網路通訊和安全控管,以及與虛擬私有雲外部的通訊。
- CI/CD VPC 已連線至在私人運算環境中執行實際運作工作負載的網路。
- 防火牆規則只允許通過的流量。
- 您也可以搭配入侵預防服務 (IPS) 使用 Cloud Next Generation Firewall Enterprise,實作深層封包檢查來防範威脅,不必變更設計或路由。Cloud Next Generation Firewall Enterprise 會建立 Google 管理的區域防火牆端點,並使用封包攔截技術,以透明方式檢查工作負載是否含有已設定的威脅特徵碼。還能保護工作負載免於威脅。
- 使用內部 IP 位址,在對等互連的虛擬私有雲之間進行通訊。
- 這個模式中的對等互連功能,可讓 CI/CD 和管理系統部署及管理開發和測試工作負載。
- 請考慮採用這些一般最佳做法。
您可以使用其中一種混合式雲端和多雲端網路連線選項,建立符合業務和應用程式需求的 CI/CD 連線。這項連線可在不同運算環境之間提供私人網路可連線性,方便您部署及管理實際運作工作負載。所有環境都應具備不重疊的 RFC 1918 IP 位址空間。
如果開發和測試環境中的執行個體需要網際網路存取權,請考慮下列選項:
- 您可以將 Cloud NAT 部署到同一個共用 VPC 主專案網路。部署到同一個共用 VPC 主專案網路,有助於避免從網際網路直接存取這些執行個體。
- 如要處理輸出網路流量,可以使用 Secure Web Proxy。Proxy 具有多項優點。
如要進一步瞭解 Google Cloud 工具和功能 Google Cloud ,協助您在混合式和多雲端環境中建構、測試及部署,請參閱「DevOps and CI/CD on Google Cloud explained」網誌。
變化版本
為滿足不同的設計需求,同時兼顧所有通訊需求,鏡像架構模式提供下列選項,詳情請參閱以下各節:
每個環境的共用虛擬私有雲
如果選擇每個環境使用一個共用虛擬私有雲,就能在各個環境中區隔應用程式或服務層級,包括可能需要持續整合/持續推送軟體更新和管理工具,才能符合特定機構安全防護需求。這些需求會限制不同服務的通訊、管理網域和存取權控管,而這些服務也需要由不同團隊管理。
這種設計可為不同環境提供網路和專案層級的隔離,進而實現分離,並提供更精細的通訊和身分與存取權管理 (IAM) 存取權控管。
從管理和作業的角度來看,這種設計可彈性管理不同團隊建立的應用程式和工作負載,並依據環境和服務專案進行管理。網路作業團隊可根據下列可能結構,佈建及管理虛擬私有雲網路及其安全性功能:
- 一個團隊管理所有環境中的所有主機專案。
- 不同團隊會管理各自環境中的主專案。
管理託管專案的決策應以團隊架構、安全作業和各團隊的存取需求為依據。您可以將這個設計變化套用至每個環境登陸區設計選項的共用虛擬私有雲網路。不過,您需要考量鏡像模式的通訊需求,定義不同環境之間允許的通訊,包括透過混合式網路進行的通訊。
您也可以為每個主要環境佈建共用虛擬私有雲網路,如下圖所示:
集中式應用程式層防火牆
在某些情況下,安全防護需求可能會要求考慮應用程式層 (第 7 層) 和深層封包檢查,並採用超出 Cloud Next Generation Firewall 功能範圍的進階防火牆機制。如要符合貴機構的安全需求和標準,可以使用網路虛擬設備 (NVA) 中代管的 NGFW 設備。有幾家 Google Cloud 安全合作夥伴提供適合這項工作的選項。
如下圖所示,您可以使用多個網路介面,將 NVA 放在虛擬私有雲和私人運算環境之間的網路路徑中。
如以下圖表所示,這個設計也可用於多個共用 VPC。
這個設計中的 NVA 會做為周邊安全層。此外,這也是啟用內嵌流量檢查和強制執行嚴格存取權控管政策的基礎。
如要制定強大的多層安全策略,包括虛擬私有雲防火牆規則和入侵防禦服務功能,請進一步檢查東西向和南北向流量,並控管安全性。
中樞輻型拓撲
另一種可能的設計變化是針對開發作業和不同測試階段,個別使用 VPC (包括共用 VPC)。在這個變體中,如以下圖表所示,所有階段環境都會在軸輻式架構中,與 CI/CD 和管理虛擬私有雲建立連線。如果必須在每個環境中區隔管理網域和函式,請使用這個選項。中樞輻射型通訊模型可協助滿足下列需求:
- 應用程式需要存取一組常見服務,例如監控、設定管理工具、持續整合/持續推送軟體更新或驗證。
- 必須透過中樞,以集中方式對傳入和傳出流量套用一組通用的安全性政策。
如要進一步瞭解中樞輻射式設計選項,請參閱「具有集中式裝置的中樞輻射式拓撲」和「沒有集中式裝置的中樞輻射式拓撲」。
如上圖所示,虛擬私有雲間通訊和混合式連線都會通過中樞虛擬私有雲。在這個模式中,您可以控管及限制中樞 VPC 的通訊,以符合連線需求。
在軸輻式網路架構中,以下是 Google Cloud的主要連線選項 (輪輻與中樞 VPC 之間):
- 虛擬私有雲網路對等互連
- VPN
- 使用網路虛擬設備 (NVA)
- 使用多個網路介面
- 使用 Network Connectivity Center (NCC)
如要進一步瞭解設計時應考慮的選項,請參閱輻射型網路架構。 在輪輻和中樞 VPC 之間選擇 VPN 而非 VPC 對等互連時,主要影響因素是是否需要流量遞移性。流量遞移性是指輪輻的流量可透過中樞抵達其他輪輻。
微服務零信任分散式架構
混合雲和多雲端架構可能需要多個叢集,才能達成技術和業務目標,包括將正式環境與開發和測試環境分開。因此,網路周邊安全控管機制非常重要,尤其是在必須遵守特定安全規定的情況下。
除了支援目前雲端優先分散式微服務架構的安全需求,您也應考慮零信任分散式架構。微服務零信任分散式架構可支援您的微服務架構,並強制執行微服務層級的安全政策、驗證及工作負載身分。信任是以身分為依據,且會針對每項服務強制執行。
使用分散式 Proxy 架構 (例如服務網格) 時,服務可以有效驗證呼叫端,並為每個要求實作精細的存取權控管政策,打造更安全且可擴充的微服務環境。Cloud Service Mesh 可讓您靈活地建構共通網格,跨越 Google Cloud 和地端部署項目。Google Cloud 服務網格會使用授權政策,確保服務之間的通訊安全。
您也可以在這個架構中加入 Apigee Adapter for Envoy,這是 Kubernetes 叢集內輕量級的 Apigee API 閘道部署作業。Apigee Adapter for Envoy 是開放原始碼的邊緣和服務 Proxy,專為雲端優先應用程式設計。
如要進一步瞭解這個主題,請參閱下列文章:
- 零信任分散式架構
- Google Kubernetes Engine (GKE) 混合式環境
- 連結至 Google
- 將地端叢集連線至Google Cloud 網路。
- 設定多雲或混合式網格
- 在不同環境和叢集部署 Cloud Service Mesh。
鏡像模式最佳做法
- 部署或重新設定實際運作工作環境所需的 CI/CD 系統必須具備高可用性,也就是說,所有架構元件都必須經過設計,才能提供預期的系統可用性。詳情請參閱Google Cloud 基礎架構可靠性。
- 為避免重複程序 (例如程式碼更新) 發生設定錯誤,自動化是標準化建構、測試和部署作業的必要條件。
- 在這個設計中整合集中式 NVA 時,可能需要納入多個區隔,並搭配不同層級的安全存取控制項。
- 設計包含 NVA 的解決方案時,請務必考量 NVA 的高可用性 (HA),避免單一故障點阻斷所有通訊。請按照 NVA 供應商提供的高可用性和備援設計與實作指南操作。
- 透過虛擬私有雲對等互連或 VPN,將內部部署 IP 路徑匯出至開發和測試虛擬私有雲時,您可以限制從開發和測試環境到內部部署環境的網路可連線性。詳情請參閱「虛擬私有雲網路對等互連自訂路徑交換」。
- 對於需要存取 Google API 的私人 IP 位址工作負載,您可以在虛擬私有雲網路中,使用 Private Service Connect 端點公開 Google API。詳情請參閱本系列文章中的「Gated ingress」。
- 請參閱混合式雲端和多雲端網路架構模式的一般最佳做法。