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

このガイドは、Azure においてスケーラブルで回復力がある高可用性のアプリケーションを設計するための体系化された方法を示します。This guide presents a structured approach for designing applications on Azure that are scalable, resilient, and highly available. 顧客エンゲージメントから学んだ実証済みのプラクティスに基づいています。It is based on proven practices that we have learned from customer engagements.

はじめにIntroduction

クラウドによって、アプリケーションを設計する方法が変わりつつあります。The cloud is changing the way applications are designed. アプリケーションは、モノリスではなく、小さな分散サービスに分解されます。Instead of monoliths, applications are decomposed into smaller, decentralized services. これらのサービスは、API を介して、あるいは非同期メッセージングまたはイベントを使用して通信します。These services communicate through APIs or by using asynchronous messaging or eventing. アプリケーションは、需要に応じて新しいインスタンスを追加して水平方向に拡張します。Applications scale horizontally, adding new instances as demand requires.

このような傾向により新たな課題が生まれました。These trends bring new challenges. アプリケーションの状態が分散しています。Application state is distributed. 操作は並列かつ非同期的に実行されます。Operations are done in parallel and asynchronously. 障害が発生しても、システム全体としては回復力があることが必要です。The system as a whole must be resilient when failures occur. デプロイは自動的に行い予測可能であることが必要です。Deployments must be automated and predictable. 監視とテレメトリは、システムの状態を把握するために重要です。Monitoring and telemetry are critical for gaining insight into the system. Azure アプリケーション アーキテクチャ ガイドは、このような変化に対応できるように支援します。The Azure Application Architecture Guide is designed to help you navigate these changes.

従来のオンプレミスTraditional on-premises先進的なクラウドModern cloud
モノリシック、集中管理Monolithic, centralized
予測可能なスケーラビリティの設計Design for predictable scalability
リレーショナル データベースRelational database
強力な一貫性Strong consistency
直列および同期の処理Serial and synchronized processing
障害 (MTBF) を回避する設計Design to avoid failures (MTBF)
不定期の大規模な更新Occasional big updates
手動管理Manual management
スノーフレーク サーバーSnowflake servers
分解、分散化Decomposed, de-centralized
柔軟なスケーラビリティの設計Design for elastic scale
多機種の持続性 (記憶域テクノロジの混在)Polyglot persistence (mix of storage technologies)
最終的な一貫性Eventual consistency
並列および非同期の処理Parallel and asynchronous processing
障害 (MTTR) のための設計Design for failure (MTTR)
頻繁な小規模の更新Frequent small updates
自動自己管理Automated self-management
イミュータブル インフラストラクチャImmutable infrastructure

このガイドは、アプリケーションの設計者、開発者、および運用チームを対象としています。This guide is intended for application architects, developers, and operations teams. 個々 の Azure サービスを使用するためのハウツー ガイドではありません。It's not a how-to guide for using individual Azure services. このガイドを読むことで、Azure クラウド プラットフォームでの構築に適用できるアーキテクチャのパターンやベスト プラクティスを理解できます。After reading this guide, you will understand the architectural patterns and best practices to apply when building on the Azure cloud platform. また、このガイドの電子ブック バージョンをダウンロードすることもできます。You can also download an e-book version of the guide.

本書の構成How this guide is structured

Azure アプリケーション アーキテクチャ ガイドは、アーキテクチャや設計から実装まで、一連のステップで編成されます。The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. ステップごとに、アプリケーション アーキテクチャの設計に役立つ補助的なガイダンスがあります。For each step, there is supporting guidance that will help you with the design of your application architecture.

アーキテクチャ スタイルArchitecture styles

最初の意思決定ポイントがすべての基盤になります。The first decision point is the most fundamental. どのような種類のアーキテクチャを構築しますか。What kind of architecture are you building? マイクロサービス アーキテクチャ、従来の n 層アプリケーション、またはビッグ データ ソリューションも考えられます。It might be a microservices architecture, a more traditional N-tier application, or a big data solution. 複数のアーキテクチャ スタイルを特定しました。We have identified several distinct architecture styles. それぞれに利点と課題があります。There are benefits and challenges to each.

詳細情報:Learn more:

テクノロジの選択Technology choices

早い段階で 2 つのテクノロジの選択を決定する必要があります。アーキテクチャ全体に影響が及ぶためです。Two technology choices should be decided early on, because they affect the entire architecture. それは、計算サービスとデータ ストアの選択です。These are the choice of compute service and data stores. "計算" は、アプリケーションがそこで実行される計算リソースのホスティング モデルを指します。Compute refers to the hosting model for the computing resources that your applications runs on. "データ ストア" にはデータベースの他に、メッセージ キュー、キャッシュ、ログ、およびアプリケーションが記憶域に格納するその他すべての記憶域が含まれます。Data stores includes databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage.

詳細情報:Learn more:

設計原則Design principles

Microsoft では、アプリケーションの拡張性、回復性、および管理性を強化する設計原則を大まかに特定しました。We have identified ten high-level design principles that will make your application more scalable, resilient, and manageable. これらの設計原則は、任意のアーキテクチャ スタイルに適用されます。These design principles apply to any architecture styles. 設計プロセス全体を通じて、ここで示す 10 個の設計原則に留意してください。Throughout the design process, keep these ten high-level design principles in mind. その上で、自動スケーリング、キャッシュ、データのパーティション分割、API 設計などの具体的な側面に関する一連のベスト プラクティスについて検討します。Then consider the set of best practices for specific aspects of the architecture, such as auto-scaling, caching, data partitioning, API design, and others.

詳細情報:Learn more:

品質の重要な要素Quality pillars

ソフトウェア品質の 5 つの重要な要素である拡張性、可用性、回復性、管理性、セキュリティについて説明します。A successful cloud application will focus on five pillars of software quality: Scalability, availability, resiliency, management, and security. 設計レビューのチェックリストを使用し、品質に関するこれらの要点に基づいてアーキテクチャをレビューします。Use our design review checklists to review your architecture according to these quality pillars.