はじめに
Azureクラウドアプリケーションアーキテクチャガイド。皆さんご存知でしょうか?
いわば、Azure版のWell-Architectedフレームワークです。非常に示唆に富む内容なので、分からない用語や概念を調べつつ、まとめようと思います。
本稿では、「はじめに」から、第一章「アーキテクトスタイルの選択」の導入部までを扱います。
連載目次
Azureアーキテクチャガイドまとめ 1 【はじめに】 → 本記事
Azureアーキテクチャガイドまとめ 2【N層】
Azureアーキテクチャガイドまとめ 3 【Webキューワーカー】
Azureアーキテクチャガイドまとめ 4 【マイクロサービス】
Azureアーキテクチャガイドまとめ 5 【CQRS】
Azureアーキテクチャガイドまとめ 6 【イベントドリブンアーキテクチャ】
Azureアーキテクチャガイドまとめ 7 【ビッグデータアーキテクチャ】
Azureアーキテクチャガイドまとめ 8 【ビッグコンピューティングアーキテクチャ】
従来のオンプレ環境と最新のクラウド環境
ご存知の通り、クラウドまわりの技術は急速に進化しています。マイクロサービス、コンテナ、AI/MLなどなど。
流れが早すぎて潮流が読めないなと感じることも多いと思います。以下はオンプレ環境と最新のクラウド環境の比較です。
本ガイドはその指針として活用できます。
このガイドでは、スケーラブルで回復性と可用性が高いクラウド アプリケーションを設計するための構造化されたアプローチについて解説します。
(本文より抜粋)
詳しく見ていきます。
ガイドの構成
ガイドは以下の5つステップで構成されています。
1. アーキテクチャスタイルの選択
2. コンピューティングおよびデータストア用テクノロジの選択
3. Azureアプリケーションの設計 10の原則
4. ソフトウェア品質 5つの柱
5. クラウド設計パターンの適用
ステップ1を行う前に、アーキテクチャの要件の明確化が必要になります。
というより、明確にしないと先に進めないようになっています。
設計後半で要件の見落しに気づいて大幅な手戻りが...なんて場面を回避できます。ついつい技術要素に目が向きがちなので、これはありがたい。
アーキテクチャスタイルの選択
要件の集合からテンプレートを選択というイメージです。合計7パターン。
各スタイルの概要は下記の通り。
アーキテクチャスタイル | ドメインの種類 | 依存関係の管理 |
---|---|---|
N 層 | 一般的ビジネスドメイン。更新は低頻度 | サブネットに分割された水平方向の層 |
Webキューワーカー | 比較的単純なドメインで、リソースを集中的に使用するタスクが存在する場合 | フロントエンドとバックエンドのジョブを非同期メッセージングによって分離 |
マイクロサービス | 複雑なドメイン。更新は高頻度 | 垂直方向 (機能的) に分解されたサービスがAPIを通じて相互に通信 |
CQRS | 多くのユーザーが同じデータにアクセスする共同作業ドメイン。 | 読み取り/書き込みの分離。スキーマとスケールを個別に最適化。 |
イベントドリブンアーキテクチャ | IoTやリアルタイムのシステム | プロデューサー/コンシューマー。サブシステムごとに独立したビュー |
ビッグデータ | バッチおよびリアルタイムのデータ分析。MLによる予測分析 | 大規模なデータセットを小さいチャンクに分割。ローカルデータセットを並列処理 |
ビッグコンピューティング | 数値計算を集中的に使用するドメイン (シミュレーションなど) | 数千個のコアにデータを割り当て |
用語は聞いたことあっても、具体的に何のことを言っているのかわからない、というのが正直な感想。
制約・課題・利点
それぞれのスタイルの説明に移る前に、なぜこの段階で型にはめる必要があるのかを整理します。
- スタイルの選択は、制約をもたらす
- 各スタイルは、固有の課題を持っている
- 制約を満たす場合、利点が生まれる
制約、課題、利点の概要と関係性を図示します。
もっとも利点マイナス課題が大きくなるスタイルを見つけることで、最適なアーキテクチャに最短距離で近づくことが出来る、という格好です。
おわりに
次回以降は各アーキテクチャスタイルについて解説します。お楽しみに!