要点: すべての顧客リクエストを中央の管理サービスへ通すべきではありません。
この記事の用語: 管理系:テナントやポリシーを管理する系。実行系:顧客リクエストを処理する系。
現場の課題
プラン、上限、配置リージョンは頻繁に変わりませんが、利用者のリクエストには低遅延と高可用性が必要です。両者を密結合すると、管理系の障害が製品全体の停止になります。
プランや上限はゆっくり変わり、利用者 リクエストは速さと可用性を求めます。管理系がバージョン付きポリシーを配布し、実行系が最後の有効スナップショットで処理すれば障害領域を分けられます。
設計と実装
- テナント設定をバージョン付きの期待状態として管理します。
- 資源作成は、途中から再開できる状態機械で非同期実行します。
- 署名付きポリシースナップショットを配布し、管理系停止中も最後の有効バージョンで処理します。
実装例
snapshot = { tenantId, version, region, plan, limits, keyRef }
signature = controlPlane.sign(snapshot)
dataPlane.verify(signature)
dataPlane.activateIf(version > current.version)本番導入の進め方
ポリシーの読み取りを先に切り出し、旧経路と判断を比較します。資源作成を資源種別ごとの状態照合へ移し、古いポリシーと緊急権限取り消しの訓練後に同期呼び出しを外します。
まとめ
管理系と実行系の分離は、テナントのライフサイクルを監査可能にし、顧客トラフィックを管理障害から守ります。
