Microsoftのpatterns & practicesグループがクラウドホスト型アプリケーションの実装に適したソリューションとパターンを提案したガイドをリリースした。このガイドは各種パターンが解決する問題を、その利点と欠点とともに説明している。このグループは(たとえ例がWindows Azureを対象としていようとも)クラウドプラットフォームによらない分散システムのためのガイドを提供することを目的としている。
彼らは開発者コミュニティからのフィードバックを活用して、クラウドアプリケーションの開発で最もよく見られる領域をカバーした8つの問題カテゴリを定義した。
- 可用性 (Availability)
- データマネジメント (Data Management)
- 設計と実装 (Design and Implementation)
- メッセージング (Messaging)
- マネジメントとモニタリング (Management and Monitoring)
- パフォーマンスとスケーラビリティ (Performance and Scalability)
- 弾力性 (Resiliency)
- セキュリティ (Security)
彼らは各カテゴリごとに指針を作って、開発者がよく遭遇する問題を解決する助けになるよう、共通のパターンをドキュメント化した。
このガイドには基礎知識と実践テクニックとして10の入門および指針のトピックが含まれており、それぞれアプリケーション開発の1面をカバーし、1つのカテゴリを対象としている。カバーしているトピックには、Asynchronous Messaging、Caching、Data Consistencyなどが含まれている。
また、彼らがクラウドホスト型アプリケーションで有用だと考える24のデザインパターンも含まれている。それぞれのパターンは1つ以上のカテゴリに属しており、たとえば、Compensating Transaction、Command and Query Responsibility Segregation (CQRS)、Pipes and Filtersといったパターンが含まれている。それぞれのパターンは、適用されるコンテキストと問題、パターンが提供するソリューション、パターンを適用する際の課題と考察を含んだ共通のフォーマットで説明されている。また、それぞれのパターンに対するAzureの例も提供されている。
説明したデザインパターンの使い方を実演するため、彼らは10のサンプルアプリケーションを作り、すべてのソースコードをダウンロードできるようにしている。サンプルには、サービスバスからメッセージを取得する消費者の競合に関するアプリケーションや、フィルタを使ってパイプラインをシミュレートするアプリケーションが含まれている。
なお、彼らは、これらのサンプルは単純化されており、そのまま製品に使えるようには作られていないと強調している。
Windows AzureはMicrosoftが提供するクラウドプラットフォームだ。