アーキテクチャ (IT)システムアーキテクト

ミッションクリティカルな決済処理プラットフォームのために、地域的な障害時のブラスト半径を制御し、ゼロダウンタイムのクラスター回転を可能にし、トランザクションの整合性を保ちながら、セルベースの障害アイソレーションされた展開トポロジーをどのように設計しますか?

Hintsage AIアシスタントで面接を突破

質問への回答

セルベースのアーキテクチャは、サービスを独立したインスタンスであるセルに分割し、それぞれが自律的にトラフィックの一部を処理できるようにします。決済プラットフォームの各セルは、ロードバランサーアプリケーションサーバーデータベース、およびメッセージキューで構成されており、複数の可用性ゾーンに展開されますが、ネットワークとデータ層で他のセルから隔離されています。トラフィックルーティングは顧客識別子を使用した決定論的シャーディングに依存しており、特定の顧客が一つのアクティブなセルに独占的にマッピングされ、サービス中断なしにセルをダウンさせて回転させる能力を維持します。

クロスセルの一貫性は(例えば、詐欺検出、規制報告など)変更データキャプチャ(CDC)ストリームを使用した非同期イベントレプリケーションによって実現され、一方、セル内のトランザクションはローカルデータベースクラスターを通じてACID保証を維持します。セル回転は、セル境界内の青緑デプロイメントパターンを利用し、グローバルEdge CDN層でのサーキットブレーカーヘルスチェックに基づくトラフィックスティアリングと組み合わせて、劣化したセルを自動的に隔離します。

実生活からの状況

1級の決済処理業者は、データベースインデックスの破損が可用性ゾーン全体に広がる中、米国東部地域のモノリスで壊滅的なカスケード障害を経験しました。これにより、40万人の顧客に影響を与える4時間のグローバルアウトageが発生し、PCI DSSの可用性要件に違反しました。事後分析では、共有インフラストラクチャコンポーネントが隠れた障害依存関係を引き起こし、金融システムの高可用性に必要な独立した障害ドメインの原則に違反したことが明らかになりました。

解決策A: アクティブ-アクティブマルチリージョンレプリケーション

このアプローチは、Galera ClusterまたはCockroachDBを使用したマルチマスターデータベースレプリケーションを伴い、複数の地域に同一スタックを展開し、任意の地域での書き込みを可能にします。主な利点はリソースの完全な利用とレイテンシの低減のための地理的ローカリティです。しかし、金融トランザクションの競合解決の複雑さは、ネットワークパーティション中の二重支出や不整合バランス状態のリスクをもたらし、ベクトルクロックマージ競合を管理する運用負担はトランザクションのボリュームに比例して指数的に増加します。

解決策B: アクティブ-パッシブホットスタンバイ

ホットスタンバイアーキテクチャを実装すると、二次地域を常に同期させ、プライマリ障害から数秒以内にトラフィックを引き受ける準備が整います。これにより、強い整合性が保証され、明示的なフェイルオーバーオーケストレーションを通じてスプリットブレインシナリオを排除します。重要な欠点は、通常の運用中に発生する50%のリソースの無駄と、完全な切り替えイベントなしに段階的な回転や更新を行うことができないことです。これにより、ルーチンのメンテナンスウィンドウが複雑になり、デプロイリスクが増加します。

解決策C: 決定論的ルーティングを使用したセルベースのパーティショニング

選択されたアーキテクチャは顧客ベースを20の異なるセルに分割し、それぞれがグローバルトラフィックの5%を処理し、隔離されたKubernetesクラスター、専用のPostgreSQLプライマリー、独立したKafkaブローカーを構成しています。Envoy Proxyサイドカーはcustomer_idに対して一貫したハッシングを実装し、特定のセルにリクエストをルーティングし、グローバルコントロールプレーンがセルの健康状態を監視し、回転中にトラフィックの排出をオーケストレーションします。これにより、セルレベルの障害中に影響を受けるのは5%のユーザーに限られ、カナリア分析自動ロールバックトリガーを使用して新しいセル世代へとトラフィックを徐々にシフトさせることでゼロダウンタイムの回転が可能になります。

実装の結果、プラットフォームは99.999%の可用性(年間5分未満のダウンタイム)を達成し、インシデントのブラスト半径を95%削減し、グローバルなロールアウト前に生産トラフィックのサブセットに対して変更を検証するセルレベルのカナリアデプロイメントによってデプロイリスクを低減しました。

候補者が見逃しがちなこと

異なるセルに分散されているような、複数のセルに跨るエンティティの参照整合性をどう維持しますか?

候補者は多くの場合、厳密なセルアイソレーションがクロスセルトランザクションを防ぐと誤解しています。解決策は、軽量なTemporalまたはCamundaワークフローエンジンを使用して、補償トランザクションで構成されたSagaパターンを実装しています。クロスセル操作には、実際の変更がセルローカルである間、調整フェーズのためにのみ二相コミット(2PC)を使用します。冪等性キーは、分散操作中の部分的な障害が金融的影響を重複させることなく安全に再試行できることを保証します。さらに、グローバルな読み取り専用キャッシュにおけるマテリアライズドビューは、アイソレーション境界を違反することなく、最終的に整合性のあるクロスセルクエリを提供します。

セルが地政学的境界を跨ぐ必要がある場合、データ居住コンプライアンス(例:GDPR、PCI DSS)をどう処理しますか?

多くの候補者はセル配置の法的影響を見落としています。このアーキテクチャは、主要なデータストレージが主権境界内に留まるジオフェンスセルを実装し、二次セルは暗号化されたホットスタンバイとして機能する能力を持っています。同型暗号化技術により、詐欺検出アルゴリズムが機密データを解読せずに暗号化された国境を越えたデータで操作できるようになります。セルのトラフィックルーティングは地理情報対応DNSRoute 53 地理的近接ルーティング)を組み込んで、EUの顧客が災害復旧シナリオのために明示的に許可されていない限り、米国のセルを通過しないようにします。また、Infrastructure as Code (IaC)スキャンを介してセル配置のコンプライアンスを確認するための自動データ居住監査が実施されます。

障害から回復したセルが数千のクライアントの再接続を同時に試みるときに、過負荷になることを防ぐメカニズムは何ですか?

この微妙な運用上の問題はしばしば見落とされます。解決策は、APIゲートウェイ層で特にセルの再入場に対してトークンバケットレート制限を使用し、クライアントSDKでの指数バックオフジッターと組み合わせます。セルが回復すると、コントロールプレーンは、p99レイテンシエラーレートを監視しながら、15分間にわたって0%から100%へのルーティングの重みを徐々に増加させます。接続プール適応的同時実行制限Envoyに実装して接続の枯渇を防ぎ、ウォームアップリクエスト(合成トランザクション)は、顧客トラフィックを受け入れる前にセルの健康状態を検証します。キャッシュウォーミングジョブは、冷たいストレージ上のキャッシュスタンピードを防ぐために、回復しているセルのRedisクラスターを積極的に満たします。