Azure アプリケーション アーキテクチャの基礎
このコンテンツ ライブラリは、Azure においてスケーラブル、安全で回復力がある高可用性のアプリケーションを設計するための体系化された方法を示します。 このガイダンスは、顧客エンゲージメントから学んだ実証済みのプラクティスに基づいています。
はじめに
クラウドによって、アプリケーションの設計とセキュリティで保護する方法が変わりつつあります。 アプリケーションは、モノリスではなく、小さな分散サービスに分解されます。 これらのサービスは、API を介して、あるいは非同期メッセージングまたはイベントを使用して通信します。 アプリケーションは、需要に応じて新しいインスタンスを追加して水平方向に拡張します。
このような傾向により新たな課題が生まれました。 アプリケーションの状態は分散されます。 操作は並列かつ非同期的に実行されます。 障害が発生しても、アプリケーションは回復力があることが必要です。 悪意のある攻撃者は継続的にアプリケーションを標的にします。 デプロイは自動的に行い予測可能であることが必要です。 監視とテレメトリは、システムの状態を把握するために重要です。 このガイドは、このような変化に対応できるように支援します。
従来のオンプレミス | 先進的なクラウド |
---|---|
モノリシック 予測可能なスケーラビリティ向けに設計 リレーショナル データベース 同期された処理 障害 (MTBF) を回避する設計 不定期の大規模な更新 手動管理 スノーフレーク サーバー |
分散 柔軟なスケーラビリティ向けに設計 多機種の持続性 (記憶域テクノロジの混在) 非同期処理 障害 (MTTR) のための設計 頻繁な小規模の更新 自動自己管理 イミュータブル インフラストラクチャ |
本ガイダンスの構成
この Azure アプリケーション アーキテクチャの基礎ガイダンスは、アーキテクチャや設計から実装まで、一連のステップで編成されます。 ステップごとに、アプリケーション アーキテクチャの設計に役立つ補助的なガイダンスがあります。
アーキテクチャ スタイル
最初の意思決定ポイントがすべての基盤になります。 どのような種類のアーキテクチャを構築しますか。 マイクロサービス アーキテクチャ、従来の n 層アプリケーション、またはビッグ データ ソリューションも考えられます。 複数のアーキテクチャ スタイルを特定しました。 それぞれに利点と課題があります。
詳細情報:アーキテクチャ スタイル
テクノロジの選択
構築しているアーキテクチャの種類を把握したので、アーキテクチャの主要なテクノロジについて選択を開始できます。 次のテクノロジの選択が重要です。
コンピューティング は、アプリケーションが実行されるコンピューティング リソースのホスティング モデルを指します。 詳細については、コンピューティング サービスの選択に関するページをご覧ください。
"データ ストア" にはデータベースだけでなく、メッセージ キュー、キャッシュ、ログのほか、アプリケーションが記憶域に格納するその他のもののための記憶域が含まれます。 詳細については、データ ストアの選択に関するページをご覧ください。
"メッセージング" テクノロジを使用すると、システムのコンポーネント間での非同期メッセージを有効にできます。 詳細については、メッセージング サービスの選択に関するページをご覧ください。
場合によっては、その過程で追加のテクノロジを選択する必要がありますが、これら 3 つの要素 (コンピューティング、データ、メッセージング) は、ほとんどのクラウド アプリケーションにとって中心的な役割を果たし、これらにより設計の多くの側面が決定されます。
アーキテクチャの設計
アーキテクチャ スタイルと主要なテクノロジ コンポーネントを選択したら、アプリケーションの特定の設計に取り掛かれます。 アプリケーションは異なっても、次のリソースが役立ちます。
参照用アーキテクチャ
シナリオに応じて、適切な出発点として、この参照アーキテクチャのいずれかを使用できます。 各参照アーキテクチャの説明には、推奨プラクティスが、スケーラビリティ、可用性、セキュリティ、回復性、および設計のその他の側面に関する考慮事項と共に含まれます。 ほとんどの場合、デプロイ可能なソリューションまたは参照実装も含まれます。
設計原則
Microsoft では、アプリケーションの拡張性、回復性、および管理性を強化する 10 個の設計原則を大まかに特定しました。 これらの設計原則は、任意のアーキテクチャ スタイルに適用されます。 設計プロセス全体を通じて、ここで示す 10 個の設計原則に留意してください。 詳細については、設計原則のページを参照してください。
設計パターン
ソフトウェア設計パターンは、特定の問題を解決することが実証された繰り返し可能なパターンです。 クラウド設計パターンのカタログは、分散システムの特定の課題に対処します。 可用性、高可用性、オペレーショナル エクセレンス、回復性、パフォーマンス、セキュリティなどの側面に対処します。 設計パターンのカタログについては、こちらを参照してください。
ベスト プラクティス
ベスト プラクティスの記事では、API 設計、自動スケール、データのパーティション分割、キャッシュなど、さまざまな設計上の考慮事項について説明します。 これらを確認し、お使いのアプリケーションのニーズに応じてベスト プラクティスを適用します。
セキュリティの運用方法
Microsoft のセキュリティのベスト プラクティスでは、アプリケーションの機密性、整合性、および可用性が悪意のある攻撃者によって侵害されないようにする方法について説明します。
品質の重要な要素
成功するクラウド アプリケーションでは、ソフトウェア品質の 5 つの重要な要素である信頼性、セキュリティ、コストの最適化、オペレーショナル エクセレンス、パフォーマンス効率に焦点をあてます。
Microsoft Azure Well-Architected Framework を活用して、これら 5 つの柱全体にわたってアーキテクチャを評価します。