クラウドアプリケーション設計原則
概要
『クラウドアプリケーション 10の設計原則』は、Microsoft の Azure アプリケーションアーキテクチャガイド をもとに、クラウドで動くアプリケーションを設計する際の普遍的な原理原則をまとめたものです。特定のクラウドに依存しない、スケーラブルで回復力のあるシステムを作るための指針です。
10の設計原則
- 自己修復できるよう設計する(Design for self-healing) — 障害は起こる前提で、自動回復を組み込む
- あらゆるものを冗長化する(Make all things redundant) — 単一障害点をなくす
- 調整を最小化する(Minimize coordination) — コンポーネント間の調整を減らしスケーラビリティを高める
- スケールアウトを前提に設計する(Design to scale out) — 水平方向に増やせる構成
- 上限を見越して分割する(Partition around limits) — サービスやDBの上限を考慮してパーティション分割
- 運用を見据えて設計する(Design for operations) — 運用チームが監視・診断できるように(オブザーバビリティ)
- マネージドサービスを使う(Use managed services) — 運用負荷を委譲する
- 用途に最適なデータストアを選ぶ(Use the best data store for the job) — ポリグロット・パーシステンス
- 進化を見据えて設計する(Design for evolution) — 変更に強い疎結合
- ビジネスニーズに基づいて作る(Build for the needs of business) — 過剰設計を避け要件に合わせる
関連トピックとの接続
- 回復性・冗長化 → ソフトウェアアーキテクチャ の可用性
- 運用設計 → オブザーバビリティ / OpenTelemetry
- スケールアウト・分割 → システムパフォーマンス / ストリーミングシステム
- データストアの選択 → MySQLパフォーマンス / ストリーミングデータベース
関連ページ
参考資料
- クラウドアプリケーション 10の設計原則 「Azureアプリケーションアーキテクチャガイド」から学ぶ普遍的な原理原則
- Microsoft Azure Application Architecture Guide