EXERCISE 60分

ストーリー

佐藤CTO
フィンテックプラットフォームのアーキテクチャを決定する時が来た
佐藤CTO
3つの選択肢がある。どれにも一長一短がある。感覚ではなく、体系的にトレードオフを分析して決定を下してほしい

ミッション概要

ミッションテーマ目安時間
Mission 1品質属性ユーティリティツリーの作成15分
Mission 2ミニATAM分析15分
Mission 3TCO算出15分
Mission 4ADRの作成15分

前提シナリオ

企業: フィンテックスタートアップ「FinFlow」
事業: 法人向け請求書管理・決済プラットフォーム
要件:
  - 月間処理件数: 100万件
  - 金融規制準拠(PCI DSS Level 1)
  - 99.99%可用性
  - 監査証跡の完全性
  - マルチテナント対応

アーキテクチャ選択肢:
  案A: モノリス + PostgreSQL(シンプル構成)
  案B: マイクロサービス + イベントソーシング(高機能構成)
  案C: モジュラーモノリス + CQRS(バランス構成)

Mission 1: 品質属性ユーティリティツリーの作成(15分)

要件

FinFlowの品質属性をユーティリティツリーとして構造化してください。各品質属性にH/M/Lの優先度を付けること。

解答例
品質属性ユーティリティツリー

可用性 [H]
├── 通常時の稼働率 99.99% [H,H]
├── 単一障害点の排除 [H,M]
└── 計画メンテナンス時の無停止 [M,M]

セキュリティ [H]
├── PCI DSS Level 1 準拠 [H,H]
├── データ暗号化(保存時・通信時) [H,H]
└── 監査ログの完全性 [H,M]

パフォーマンス [M]
├── 決済処理 p95 < 2秒 [H,M]
├── 請求書検索 p95 < 500ms [M,M]
└── レポート生成 < 30秒 [M,L]

スケーラビリティ [M]
├── 月間100万→1000万件対応 [H,M]
└── テナント数の水平スケール [M,M]

保守性 [M]
├── 新機能追加のリードタイム [M,H]
└── 独立したチーム開発 [M,M]

※ [ビジネス重要度, 技術的難易度]

Mission 2: ミニATAM分析(15分)

要件

3つの案について、上位3つの品質属性(可用性、セキュリティ、スケーラビリティ)に対する感度点とトレードオフ点を分析してください。

解答例
品質属性案A: モノリス案B: マイクロサービス+ES案C: モジュラーモノリス+CQRS
可用性△ 単一障害点リスク◎ サービス独立で部分障害許容○ DB冗長化で対応可能
セキュリティ○ 単一境界で管理容易△ サービス間通信の保護必要○ 単一境界+内部分離
スケーラビリティ△ 全体スケールのみ◎ サービス単位スケール○ 読み書き分離でスケール

感度点(Sensitivity Points):

  • 案Bのサービス間通信レイテンシが決済処理SLAに影響
  • 案Aのデータベース負荷がスケーラビリティのボトルネック
  • 案Cの読み書き分離による結果整合性が金融データの整合性要件と衝突

トレードオフ点(Tradeoff Points):

  • セキュリティ ↔ スケーラビリティ: 案Bはスケーラビリティは高いがサービス間のセキュリティ管理が複雑
  • 可用性 ↔ 保守性: 案Aは保守しやすいが可用性の上限が低い
  • パフォーマンス ↔ 監査性: イベントソーシング(案B)は監査に強いが読み取りパフォーマンスにオーバーヘッド

Mission 3: TCO算出(15分)

要件

各案の3年間のTCO(Total Cost of Ownership)を概算してください。

解答例
コスト項目案A案B案C
初期開発(人月)30人月60人月40人月
インフラ(月額)¥50万¥150万¥80万
運用人件費(月額)¥100万¥250万¥150万
ライセンス(月額)¥10万¥30万¥15万
初期開発費¥3,000万¥6,000万¥4,000万
3年間運用費¥5,760万¥1億5,480万¥8,820万
3年間TCO¥8,760万¥2億1,480万¥1億2,820万

備考:

  • 案Aは初期コスト最安だが、スケーリング時に大幅な再設計コスト発生リスク
  • 案Bは高コストだが、スケーリング時の追加コストが最小
  • 案Cはバランスの取れたコスト構造

Mission 4: ADRの作成(15分)

要件

分析結果を踏まえ、最終的なアーキテクチャ決定をADRとして記述してください。

解答例
# ADR-001: FinFlowのアーキテクチャとしてモジュラーモノリス+CQRSを採用する

## ステータス
承認済(2026-02-01)

## コンテキスト
法人向け請求書管理・決済プラットフォームの
アーキテクチャを選定する。月間100万件の処理、
PCI DSS準拠、99.99%可用性が求められる。

## 検討した選択肢
- 案A: モノリス + PostgreSQL
- 案B: マイクロサービス + イベントソーシング
- 案C: モジュラーモノリス + CQRS

## 決定
案C(モジュラーモノリス + CQRS)を採用する。

## 理由
1. ATAM分析で案Cが最もバランスが良い
2. 3年間TCO ¥1億2,820万は案Bの60%
3. PCI DSS準拠は単一境界の方が管理容易
4. CQRSにより読み取りスケーラビリティ確保
5. 将来的なマイクロサービス分離の基盤になる
6. チーム規模(15名)に適切な複雑度

## 結果
### メリット
- コストとスケーラビリティのバランス
- セキュリティ境界の管理容易性
- 段階的な進化が可能

### デメリット
- 読み書きモデルの整合性管理が必要
- マイクロサービスほどのチーム独立性は得られない

### 将来の検討
- 月間500万件超で決済サービスの分離を検討
- テナント数100社超でシャーディング戦略を検討

まとめ

ポイント内容
ユーティリティツリー品質属性を構造化し優先順位を明確にする
ATAM感度点とトレードオフ点を体系的に分析する
TCO初期コストだけでなく運用コストも含めて比較する
ADR決定の背景と理由を記録に残す

チェックリスト

  • 品質属性ユーティリティツリーを作成できた
  • ATAM分析で感度点とトレードオフ点を特定できた
  • TCOを概算できた
  • ADRを適切なフォーマットで記述できた

次のステップへ

次はチェックポイントクイズです。トレードオフ分析の理解度を確認しましょう。


推定読了時間: 60分