本頁說明 Dual Run 的主要元件。雖然批次和線上比較會共用部分架構,但其他部分則專屬於其中一種工作負載。
Dual Run 元件
Dual Run 元件會在 Google Kubernetes Engine (GKE) 叢集中以容器形式執行。Dual Run 也會用到其他 Google Cloud 產品,例如 BigQuery、Cloud Storage,以及用於批次比較和線上比較的其他專用元件。
線上和批次工作負載共用的雙重執行叢集元件如下:
- 設定管理員:使用者介面和資訊主頁。
- 環境檢查工具:安裝驗證引擎。
設定管理工具
設定管理員是 Dual Run 應用程式的前端。 您可以使用這個元件管理使用者權限、透過端點設定線上工作負載,以及編輯資訊主頁。您可以使用 Identity and Access Management 系統設定使用者驗證。
此外,您也可以在 Config Manager 的資訊主頁環境中查看比較結果。您可以在資訊主頁中,根據套用的篩選條件查看比較結果摘要,並檢視每筆記錄的結果詳細資料。
這個資訊主頁是以 Apache Superset 為基礎,這項開放原始碼軟體可用於資料視覺化和資料探索。您也可以建立自訂報表和查詢。
環境檢查工具
環境檢查工具是 Dual Run 元件,可驗證 Dual Run 的安裝和部署是否順利完成。這項檢查會確認所有必要的雙重執行元件都已正確設定並執行,否則會回報任何錯誤或設定錯誤。
批次比較架構
下圖顯示批次比較作業的雙重執行架構,如後續章節所述。

檔案比較
「檔案比較」是「雙重執行」元件,可讓您比較「雙重執行」設定的預期和實際檔案輸出內容。執行比較時,您可以設定容許程度,將結果標示為等效。
檔案比較功能會使用 Managed Service for Apache Spark (在 Google Cloud上執行的全代管 Apache Spark 叢集) 執行比較作業。您可以根據要比較的資料大小和基礎架構需求,選擇兩種不同的方法:
- 以 Managed Service for Apache Spark 為基礎的代管無伺服器 Spark 環境,在 Dual Run 部署作業中建立。這項工具採用固定設定,可讓您比較最多數 GB 的檔案。這是預設做法。
- 在雙重執行部署作業後建立及設定的 Managed Service for Apache Spark 叢集。這在下列情況中相當實用:
- 您打算使用自訂 VM 或磁碟設定。
- 您需要比較大於數 GB 的檔案。
- 您想同時執行多項比較作業。
線上比較架構
下圖顯示線上比較的雙重執行架構,如後續章節所述。

攔截器
攔截器會做為主要系統 (大型主機應用程式) 的高可靠性高效能 Proxy。這項服務會監聽應用程式流量,並以最短延遲時間將要求轉送至主要系統。這會複製所有要求和回應,以供後續雙重化作業使用。您可以在任何以 Kubernetes 為基礎的環境中部署攔截器,包括 Dual Run 專案或地端部署環境。
即使與 Google Cloud 服務的連線失敗,攔截器仍會運作,確保主要系統的可用性達到最高。
Dual Run 支援 HTTP、TN3270 和 MQ 訊息的攔截器。
Dualizer
雙重化器會將擷取的線上交易重播至翻新的次要系統。這個服務會從 Pub/Sub 的雙重化佇列取用記錄的交易,將要求傳送至次要系統,並擷取回應。
系統會使用與批次檔案比較相同的基礎比較引擎,比較主要和次要回應。要求、回應和比較結果會儲存在 Cloud Storage 中,而比較結果則會串流至 BigQuery。設定檔由 Config Manager 管理,並從 Cloud Storage 讀取。
工作階段處理常式
工作階段處理常式負責維護與次要系統的有效工作階段。對於有狀態的通訊協定 (例如 TN3270),工作階段處理常式會為每個用戶端連線維護開啟的 TCP Socket。對於雙重化至次要系統的每個要求,雙重化器會將雙重化要求傳送至工作階段處理常式。工作階段處理常式接著會使用開啟的通訊端將其傳送至次要系統、接收次要回應,並將這些回應傳送回雙重化器進行處理。
Google Cloud 依附元件
Dual Run 依賴下列 Google Cloud 產品執行:
- Google Kubernetes Engine:Dual Run 會使用 GKE 在 Pod 中執行微服務。
- Cloud Storage:Dual Run 會將環境的設定檔和您提供的比較構件儲存在 Cloud Storage bucket 中。
- Artifact Registry:Dual Run 會將容器映像檔儲存在登錄檔中,供 GKE 使用。
- BigQuery:雙重執行會在 BigQuery 中儲存批次和線上交易的比較輸出結果。
- Pub/Sub:雙重執行會使用 Pub/Sub 做為內部訊息系統,在不同 Pod 之間傳遞設定變更。
- Cloud SQL:Dual Run 會建立 Cloud SQL 資料庫執行個體,確保與日後的更新相容。
雙重執行批次比較功能需要下列額外產品:
- Managed Service for Apache Spark:Dual Run 會使用 Managed Service for Apache Spark 中的無伺服器 Spark 叢集,執行檔案比較作業。
- 工作流程和 Cloud Run functions:Dual Run 使用工作流程管理執行檔案比較工作的 Cloud Run functions。
- 身分與存取權管理:Dual Run 依賴身分與存取權管理進行驗證和存取權管理,因此您可以使用 Google 或 SAML 身分識別提供者驗證及授權使用者角色。
線上比較雙重執行功能時,需要下列額外產品:
- Secret Manager:Dual Run 會使用 Secret Manager 儲存密鑰,例如您為 Dual Run 部署的佇列管理員憑證。
- Cloud Monitoring:Dual Run 會使用 Cloud Monitoring 收集及監控 Dual Run 元件和資源的指標、事件和記錄。 Google Cloud
- Cloud Trace:Dual Run 使用 Cloud Trace 提供進階監控和偵錯功能。
後續步驟
進一步瞭解 Dual Run 檔案比較。