Azure アプリケーション アーキテクチャ ガイド

このガイドは、Azure においてスケーラブルで回復力がある高可用性のアプリケーションを設計するための体系化された方法を示します。 顧客エンゲージメントから学んだ実証済みのプラクティスに基づいています。

はじめに

クラウドによって、アプリケーションを設計する方法が変わりつつあります。 アプリケーションは、モノリスではなく、小さな分散サービスに分解されます。 これらのサービスは、API を介して、あるいは非同期メッセージングまたはイベントを使用して通信します。 アプリケーションは、需要に応じて新しいインスタンスを追加して水平方向に拡張します。

このような傾向により新たな課題が生まれました。 アプリケーションの状態が分散しています。 操作は並列かつ非同期的に実行されます。 障害が発生しても、システム全体としては回復力があることが必要です。 デプロイは自動的に行い予測可能であることが必要です。 監視とテレメトリは、システムの状態を把握するために重要です。 Azure アプリケーション アーキテクチャ ガイドは、このような変化に対応できるように支援します。

従来のオンプレミス先進的なクラウド
モノリシック、集中管理
予測可能なスケーラビリティの設計
リレーショナル データベース
強力な一貫性
直列および同期の処理
障害 (MTBF) を回避する設計
不定期の大規模な更新
手動管理
スノーフレーク サーバー
分解、分散化
柔軟なスケーラビリティの設計
多機種の持続性 (記憶域テクノロジの混在)
最終的な一貫性
並列および非同期の処理
障害 (MTTR) のための設計
頻繁な小規模の更新
自動自己管理
イミュータブル インフラストラクチャ

このガイドは、アプリケーションの設計者、開発者、および運用チームを対象としています。 個々 の Azure サービスを使用するためのハウツー ガイドではありません。 このガイドを読むことで、Azure クラウド プラットフォームでの構築に適用できるアーキテクチャのパターンやベスト プラクティスを理解できます。

本書の構成

Azure アプリケーション アーキテクチャ ガイドは、アーキテクチャや設計から実装まで、一連のステップで編成されます。 ステップごとに、アプリケーション アーキテクチャの設計に役立つ補助的なガイダンスがあります。

アーキテクチャ スタイル。 最初の意思決定ポイントがすべての基盤になります。 どのような種類のアーキテクチャを構築しますか。 マイクロサービス アーキテクチャ、従来の n 層アプリケーション、またはビッグ データ ソリューションも考えられます。 アーキテクチャ スタイルを 7 つ特定しました。 それぞれに利点と課題があります。

Azure 参照アーキテクチャでは、Azure での推奨デプロイを、スケーラビリティ、可用性、管理性、およびセキュリティに関する考慮事項と共に示します。 ほとんどにはデプロイ可能な Resource Manager テンプレートも含まれています。

テクノロジの選択。 早い段階で 2 つのテクノロジの選択を決定する必要があります。アーキテクチャ全体に影響が及ぶためです。 これらは、コンピューティングと記憶域のテクノロジの選択です。 "コンピューティング" という用語は、アプリケーションが実行するコンピューティング リソースのホスティング モデルを指します。 記憶域にはデータベースの他に、メッセージ キュー、キャッシュ、IoT データ、非構造化ログ データ、およびアプリケーションが記憶域に格納するその他すべての記憶域が含まれます。

コンピューティング オプション記憶域オプションでは、コンピューティングと記憶域のサービスを選択するために各基準が詳しく比較されます。

設計原則。 設計プロセス全体を通じて、ここで示す 10 個の設計原則に留意してください。

ベスト プラクティスの記事では、自動スケール、キャッシュ、データのパーティション分割、API 設計などについて具体的なガイダンスが提供されます。

要点。 成功するクラウド アプリケーションは、ソフトウェア品質の 5 つの要点、すなわちスケーラビリティ、可用性、回復力、管理性、およびセキュリティに重点的に取り組みます。

設計レビューのチェックリスト を使用し、品質に関するこれらの要点に基づいて設計をレビューします。

クラウドの設計パターン。 これらの設計パターンは、信頼性の高い、スケーラブルで安全なアプリケーションを Azure に構築するために役立ちます。 各パターンでは、問題、その問題を解決するパターン、Azure に基づく例を説明します。

➤ クラウド設計パターンの完全なカタログはこちらを参照してください。