Skip to content

デプロイ方針

MVP: 単一サービスデプロイ

BFF と Backend は 同一 Cloud Run サービス としてデプロイする。

判断理由説明
in-process 参照Application 層を直接参照するため、同一プロセス内で動作する必要がある
運用シンプルさ単一チーム・単一デプロイパイプラインで管理可能
インフラコストCloud Run インスタンス数を最小化
[Cloud Run Service: tashika-app]
├── BFF Endpoints        (/employee/*, /admin/*, /agency/*, /system/*)
├── Backend API Endpoints (/api/v1/external/*)
├── Application Layer
├── Infrastructure Layer
└── Health Check          (/health)

ヘルスチェック

GET /health
状態レスポンス条件
Healthy200 OKDB 接続正常 + セッションストア正常
Degraded200 OK (body に degraded 表示)非必須サービス(ウイルススキャン等)が異常
Unhealthy503 Service UnavailableDB 接続不可 or シャットダウン中
  • Graceful Shutdown 開始時に即座に Unhealthy に切替(→ operational-architecture.md
  • Cloud Run のヘルスチェック間隔: 10秒

将来のサービス分離

スケールアウトが必要になった場合、BFF と Backend を別サービスに分離可能:

  1. MediatR の ISender.Send() を HTTP 呼び出しに差し替えるアダプターを実装
  2. BFF を独立した Cloud Run サービスとしてデプロイ
  3. Backend API のエンドポイントを Internal Service として構成

MediatR のインターフェースが抽象化層として機能するため、Application 層のコードは変更不要。

→ 満たす要件: AV-001 可用性