はじめに
Azureクラウドアプリケーションアーキテクチャガイドより、7つあるアーキテクチャスタイルの一つ、N層アーキテクチャに関してまとめます。
連載目次
Azureアーキテクチャガイドまとめ 1 【はじめに】
Azureアーキテクチャガイドまとめ 2【N層】 → 本記事
Azureアーキテクチャガイドまとめ 3 【Webキューワーカー】
Azureアーキテクチャガイドまとめ 4 【マイクロサービス】
Azureアーキテクチャガイドまとめ 5 【CQRS】
Azureアーキテクチャガイドまとめ 6 【イベントドリブンアーキテクチャ】
Azureアーキテクチャガイドまとめ 7 【ビッグデータアーキテクチャ】
Azureアーキテクチャガイドまとめ 8 【ビッグコンピューティングアーキテクチャ】
概要
N層アーキテクチャと呼ばれるもの中で代表的なものが、以下の三層アーキテクチャです。
- プレゼンテーション層
- 中間層
- データ層
下記の例では、中間層が二つ(Middle Tier 1 / Middle Tier 2)あり、別々の機能を持たせています。名称はとっつきにくいですが、よく見るような一般的な構成です。
以下のような特徴を持つアプリケーションに適したアーキテクチャスタイルです。
- 単純なWebアプリケーション
- オンプレアプリをAzureに最小限のリファクタリングで移行
- オンプレアプリとクラウドアプリの統一的開発
特徴は以下の通り。
- 一般的なIaaSアプリとしての実装
- レイヤー
- 論理レイヤーと物理レイヤーに分断し、責任を分離し、依存関係を管理する
- 上位レイヤーは下位レイヤーのサービスを利用可。逆は不可
- 2種のアーキテクチャ
- クローズドレイヤー (直下のレイヤーのみを呼び出し可)
- オープンレイヤー (下のすべてのレイヤーを呼び出し可)
利点
- オンプレ/クラウド間の移植性が高い
- エンジニアにとって学習コストが低い
- 異種混在環境(Windows/Linux)への適合性が高い
課題
- 各機能の独立展開不可
- 管理コストが高い
- 大規模システムのセキュリティ管理が難しい場合あり
- 中間層が無意味に待ち時間を増やす場合あり
ベストプラクティス
スケーラビリティ、信頼性、セキュリティの各層の境界としてサブネットを活用し、以下のマネージドサービスを利用する
- キャッシング
- オートスケール
- ロードバランサ
- メッセージング
- 各層の分離に非同期メッセージングを使用
- データストレージ
- アクセス制限のため、中間層からの要求だけ許可
- 高可用性実現のため、可用性グループを使用
対応するAzureサービス
各層のコンピューティングにVirtual Machineを利用し、マネージドサービスを追加していく形です。アイコンと一緒に覚えてしまいましょう。
まとめ
N層アーキテクチャの特徴と、使用されるサービスについて見ていきました。次回はWebキューワーカーについてまとめます。お楽しみに!