Windows Azure における Hybrid Application の構築 –(1)
皆様、こんにちは!今回と次回、2回に分けて、このP&Pの記事をご紹介します。
Building Hybrid Applications in the Cloud on Windows Azure
※ こちらは、先月末開催された、Windows Developer Days でも、このガイドの監修者であるHQの担当Program Managerより、セッション提供があったので、覚えておられる方も多いかもしれません。非常に緻密に作られたプローブンなアーキテクチャーガイドですので、ぜひご覧ください。
※WDDセッションの方は、間もなく他のセッション同様、ビデオとスライドが公開されると思いますので、お楽しみに!
概説
今日、殆どのアプリケーションはシンプルな単一の状態のままではありません。それらは、多くの分割された特徴を持っており、それぞれが、サービスとして、あるいはコンポーネントとして、3rd Party のプラグインとして、そして、他のシステムまたはリソース等として、実装されています。これらのアイテム群を統合していくことは、もしそれらすべてのコンポーネントが自社のデータセンターに配置されている場合でも、簡単なタスクではありません。そしてこれが、当該アプリケーションをクラウドベースの環境に配置しようとする場合には、その統合作業は、更にチャレンジングなものになることでしょう。
例えば、典型的なアプリケーションは Web Role と Worker Role を、Windows Azure 上で稼働させており、そのデータを SQL Azure データベースに格納し、また 3rd Party のサービスと連携しています。それら個々のサービスは、たとえばユーザーを認証をしたり、顧客に荷物を配達したり、といったサービスです。
しかしながら、通常、一つのアプリケーションを、パートナー組織や、様々な理由でクラウドにマイグレーション不可能な企業ネットワークの内部に存在するサービスやコンポーネントに、利用させることは、一般的ではありません。
このようなアプリケーションは、時としてハイブリッドアプリケーションと呼ばれます。このガイドが主にフォーカスするのは、一部はクラウド上で一部はオンプレミスで実行されるアプリケーションの開発時に、あるいは開発者が既存のオンプレミスのIT資産の全ての要素あるいはいくつかの要素をクラウドにマイグレーションしようと決めたときに、開発者が必ず遭遇するであろう共通のチャレンジです。このガイドはWindows Azure をホスト環境として使用しており、具体的にどのように、このプラットフォームに加えSQL Azure を使って、その様々な特徴を利用して、開発をシンプルにスピーディに行うか、にフォーカスしています。
サンプルコードのダウンロード |
|
PDF バージョン |
|
コミュニティ |
|
ライセンス |
概要
この書籍は、Windows Azure に関するシリーズの第3章に当たります。第一章 Moving Applications to the Cloud は、Windows Azureの入門から入り、コストモデルに言及し、クラウドベースのアプリケーションのライフサイクルマネジメントについて記述し、そのうえで、既存のASP.NETアプリケーションをクラウドに移行するかについて触れています。 第二章は、Developing Applications for the Cloud で、ここでは、クラウド上で稼働するマルチテナントのSaaS(Software as a Service )アプリケーションを、Windows Azure の最新の開発ツールを使い、最新の特徴を活かして、スクラッチで開発する方法について述べています。
本ガイドがフォーカスするのは、オンプレミスとクラウドの境界にまたがるアプリケーションで、 そこでは幾つかの機能が Windows Azure 上で稼働している一方、 他の幾つかの機能は、企業ネットワークの内部で稼働しています。 このガイドはまた、どのようにしてこの種のアプリケーション群を外部パートナーと一緒にシステムインテグレーションしていくかについても記述しています。当該ガイドには、Trey Research という名前の架空の会社が、どのようにして、オンプレミスのOrdersアプリケーションを、Windows Azure と Windows Azure SQL Database により実現可能な多くの特長とサービスを使って、外部の運送パートナーと連携するハイブリッドなアプリケーションとして、マイグレーションしたのか、が記述されています。また、このガイドには、Appendix が付いており、ハイブリッドアプリケーション構築の中で通常遭遇するであろうユースケースとそれに対するチャレンジが記載されています。また、これらのチャレンジを解決するためのガイダンスも提供しています。
共通のシナリオ
第1章, "The Trey Research Scenario" これには、Trey Research についてと、Trey Research のオンプレミスOrdersアプリケーションをクラウドとのハイブリッドアプリケーションにするプランに関する序章が書かれています。 また、オリジナルのオンプレミスOrdersアプリケーションのアーキテクチャーとその運用の概要、そして、完成したハイブリッド実装が含まれており、残りのガイドの残り部分を読むにあたってのコンテキストを提供してくれます。
第2章, "Deploying the Orders Application and Data in the Cloud" ここで書かれているのは、 Trey Research がアプリケーションとそれがクラウド上で使うデータをデプロイするためのテクニックと必要な技術要素、Trey Research がどのようにして、どのデータをオンプレミスに留めるべきと考えたか、そしえtTrey Research 自らの要求に合致するデプロイのためのアーキテクチャーを決定したか、というようなことです。この章ではまた、オンプレミスとクラウドの境界をまたぐデータを同期させるための技術について考察し、ビジネスインテリジェンスレポーティング機能を、いかにして引き続きメンテナンスされるべきか、についても触れています。
第3章, "Authenticating Users in the Orders Application" に書かれているのは、Trey Research がオンプレミスの Order アプリケーションからハイブリッドアプリケーションに移行時に、 認証に使われている ASP.NET フォーム認証からクレームベース認証への拡張にあたって、検討が必要な技術とアーキテクチャーについてです。
第4章, "Implementing Reliable Messaging and Communications with the Cloud" に書かれているのは、Trey Research がオンプレミスとクラウドの境界をまたぐメッセージ送信のために調査した技術と、Trey Research が選択したソリューションです。このソリューションには、パートナー企業に対して、オンプレミスのサービスに対してと同様に、信頼性のある方法でメッセージを送信するためのアーキテクチャーと実装が含まれます。
第5章, "Processing Orders in the Trey Research Scenario" に書かれているのは、ビジネスロジックで、これにより Trey Research は、Order Web サイトを使うことにより、セキュアで信頼された方法で、顧客の注文をプロセッシングすることを要求されます。当該ロジックには、メッセージを適切なパートナーまたはサービスに振り分けること、承認を受け取ること、そしてネットワーク障害等でうまく送信されなかった場合に再度施行すること、も含んでいます。
第6章, "Maximizing Scalability, Availability, and Performance in the Orders Application" に書かれているのは、 Trey Research が Orders アプリケーションのパフォーマンスを、最大化させるための技術です。具体的には、Web ロールや Worker ロールのインスタンスのオートスケーリングを使ったり、複数のデータセンターに Orders アプリケーションをデプロイしたり、またキャッシュ等の機能を使ってデータアクセス自体の速度を向上させたりして、どのように最大化させるか、ということが書かれています。
第7章, "Monitoring and Managing the Orders Application" に書かれているのは Trey Research が、Orders アプリケーションのモニタリングと管理のために検証し選んだ技術です。具体的には、diagnostic 情報のキャプチャーや、Windows Azure サービスの設定と構成、そして、アプリケーション構成と運用のリモート管理、等です。
この "Hybrid Challenge Scenarios" の Appendix では、ハイブリッドアプリケーションの設計・構築時に通常遭遇するような、更に一般的なシナリオにフォーカスしています。個々の Appendix は、一つの特定のエリアのハイブリッドアプリケーションのチャレンジと要求について言及しています。第1章に書かれているのと同様です。これは Orders アプリケーションのために Trey Research の設計者が熟考したものをはるかに超えています。シナリオ群に加えて、この Appendix では、更に特定されたガイダンスを一つ一つのチャレンジに取り組むための技術に対して提供しています。
- Appendix A - Replicating, Distributing, and Synchronizing Data
- Appendix B - Authenticating Users and Authorizing Requests
- Appendix C - Implementing Cross-Boundary Communication
- Appendix D - Implementing Business Logic and Message Routing across Boundaries
- Appendix E - Maximizing Scalability, Availability, and Performance
- Appendix F - Monitoring and Managing Hybrid Applications
取りあえず、前半はここまでとしましょう。次回は後半部分について公開します。
鈴木 章太郎