ストーリー
ミッション概要
| ミッション | テーマ | 目安時間 |
|---|---|---|
| Mission 1 | 品質属性ユーティリティツリーの作成 | 15分 |
| Mission 2 | ミニATAM分析 | 15分 |
| Mission 3 | TCO算出 | 15分 |
| Mission 4 | ADRの作成 | 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分