このページでは、Dual Run の主なコンポーネントについて説明します。 アーキテクチャの一部はバッチ比較とオンライン比較で共有されますが、ワークロード固有の部分もあります。
Dual Run コンポーネント
Dual Run コンポーネントは、Google Kubernetes Engine(GKE)クラスタでコンテナとして実行されます。 Dual Run は、BigQuery や Cloud Storage などの他の Google Cloud プロダクトや、バッチ比較とオンライン比較のための特殊なコンポーネントにも依存しています。
オンライン ワークロードとバッチ ワークロードの両方で共有される Dual Run クラスタ コンポーネントは次のとおりです。
- Config Manager: ユーザー インターフェースとダッシュボード。
- Env Checker: インストールの検証エンジン。
Config Manager
Config Manager は、Dual Run アプリケーションのフロントエンドです。 このコンポーネントを使用して、ユーザー権限の管理、エンドポイントを介したオンライン ワークロードの構成、ダッシュボードの編集を行います。Identity and Access Management システムを使用して、ユーザー認証を設定できます。
Config Manager には、比較結果を確認できるダッシュボード環境も用意されています。ダッシュボードでは、適用したフィルタに基づいて比較結果の概要を表示し、個々のレコードの結果の詳細を確認できます。
ダッシュボードは、データ可視化とデータ探索のためのオープンソース ソフトウェアである Apache Superset をベースにしています。カスタマイズされたレポートとクエリを作成することもできます。
Env Checker
Env Checker は、Dual Run のインストールとデプロイが正常に完了したことを検証する Dual Run コンポーネントです。 必要な Dual Run コンポーネントがすべて正しく構成され、実行されていることを確認し、エラーや構成ミスを報告します。
バッチ比較のアーキテクチャ
次の図は、以降のセクションで説明するバッチ比較の Dual Run アーキテクチャを示しています。

ファイル比較
ファイル比較は、Dual Run の設定の予想されるファイル出力と実際のファイル出力を比較できる Dual Run コンポーネントです。 比較を行う際に、結果を同等とマークする許容レベルを設定できます。
ファイル比較では、 Google Cloudで実行されるフルマネージド Apache Spark クラスタである Managed Service for Apache Spark を使用して比較を行います。比較するデータのサイズとインフラストラクチャの要件に応じて、次の 2 つのアプローチを選択できます。
- Dual Run デプロイの一部として作成される Managed Service for Apache Spark で実行されるマネージド サーバーレス Spark ベースの環境。固定構成を使用して、最大数 GB のファイルを比較できます。 これがデフォルトのアプローチです。
- Dual Run デプロイ後に作成して構成する Managed Service for Apache Spark の Spark クラスタ。これは、次のような場合に便利です。
- カスタム VM またはディスク構成を使用する予定がある。
- 数 GB を超えるファイルを比較する必要がある。
- 複数の比較ジョブを同時に実行する。
オンライン比較のアーキテクチャ
次の図は、以降のセクションで説明するオンライン比較の Dual Run アーキテクチャを示しています。

Interceptor
インターセプタは、メインフレーム アプリケーションであるプライマリ システムの高信頼性と高パフォーマンスのプロキシとして機能します。アプリケーション トラフィックをリッスンし、最小限のレイテンシでリクエストをプライマリ システムに転送します。後続の二重化のために、すべてのリクエストとレスポンスを複製します。インターセプタは、Dual Run プロジェクトやオンプレミス環境など、Kubernetes ベースの任意の環境にデプロイできます。
インターセプタは、 サービスへの接続が失敗した場合でも動作し、 プライマリ システムの可用性を最大限に高めます。 Google Cloud
Dual Run は、HTTP、TN3270、MQ メッセージのインターセプタをサポートしています。
Dualizer
デュアライザーは、キャプチャされたオンライン トランザクションを最新のセカンダリ システムに再生します。Pub/Sub の二重化キューから記録されたトランザクションを消費し、セカンダリ システムにリクエストを送信してレスポンスを取得します。
プライマリ レスポンスとセカンダリ レスポンスは、バッチのファイル比較で使用されるものと同じ基盤となる比較エンジンを使用して比較されます。リクエスト、レスポンス、比較結果は Cloud Storage に保存され、比較結果は BigQuery にストリーミングされます。構成ファイルは Config Manager によって管理され、Cloud Storage から読み取られます。
Session Handler
セッション ハンドラは、セカンダリ システムとのアクティブなセッションを維持します。セッション ハンドラは、TN3270 などのステートフルな通信プロトコル用に、クライアント接続ごとに開いている TCP ソケットを維持します。セカンダリ システムに二重化されたリクエストごとに、デュアライザーは二重化されたリクエストをセッション ハンドラに送信します。セッション ハンドラは、開いているソケットを使用してセカンダリ システムに送信し、セカンダリ レスポンスを受信して、処理のためにデュアライザーに返送します。
Google Cloud 依存関係
Dual Run は、次の Google Cloud プロダクトに依存して実行されます。
- Google Kubernetes Engine: Dual Run は GKE を使用して、ポッドで マイクロサービスを実行します。
- Cloud Storage: Dual Run は、環境の構成ファイルと比較アーティファクトを Cloud Storage バケットに保存します。
- Artifact Registry: Dual Run は、GKE で使用するコンテナ イメージをレジストリに保存します。
- BigQuery: Dual Run は、バッチ トランザクションとオンライン トランザクションの両方の比較出力結果を BigQuery に保存します。
- Pub/Sub: Dual Run は、内部メッセージング システムとして Pub/Sub を使用して、異なるポッド間で構成の変更を渡します。
- Cloud SQL: Dual Run は、今後のアップデートとの互換性を確保するために、Cloud SQL データベース インスタンスを作成します。
Dual Run バッチ比較は、次の追加の プロダクトに依存しています。
- Managed Service for Apache Spark: Dual Run は、Managed Service for Apache Spark のサーバーレス Spark クラスタを使用してファイル比較を実行します。
- Workflows と Cloud Run 関数: Dual Run は Workflows を使用して、ファイル比較ジョブを実行する Cloud Run 関数を管理します。
- Identity and Access Management: Dual Run は、認証とアクセス管理に Identity and Access Management を使用します。これにより、Google または SAML ID プロバイダを使用してユーザーロールを認証および認可できます。
Dual Run オンライン比較は、次の追加の プロダクトに依存しています。
- 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 ファイル比較の詳細を確認する。