Windows Azure における Hybrid Application の構築 –(2)
皆様、こんにちは!それでは、P&Pの記事の後半部分をご紹介します。
Building Hybrid Applications in the Cloud on Windows Azure
※ こちらは、先月末開催された、Windows Developer Days でも、このガイドの監修者であるHQの担当Program Managerより、セッション提供があったので、覚えておられる方も多いかもしれません。非常に緻密に作られたプローブンなアーキテクチャーガイドですので、ぜひご覧ください。
開発者の前提となる知識
このガイドの対象者は、アーキテクト、デベロッパー、または IT (Information Technology )プロフェッショナルであり、オンプレミスで稼働するかあるいはクラウドと連携するアプリケーションとサービスを設計し、構築し、または運用する人々です。Windows Azure で動かすアプリケーションは必ずしもマイクロソフトのWindows オペレーティングシステムをベースとしている必要はありませんが、この書籍はWindows ベースのシステムを使って仕事をする人々のために書かれています。 そのため、.NET Framework や Visual Studio、ASP.NET MVC、そして Visual C# 等に詳しい方が都合が良いといえるでしょう。
システム要件
下記にこのシナリオを実行するためのシステム要件を記します :
- Microsoft Windows 7 with Service Pack 1 以降 (32 bit または64 bit), 、または Windows Server 2008 R2 with Service Pack 1 以降
- Microsoft Internet Information Server (IIS) 7.0
- Microsoft .NET Framework version 4.0
- Microsoft ASP.NET MVC Framework version 3
- Microsoft Visual Studio 2010 Ultimate, Premium, または Professional (いずれも Service Pack 1 が必要)
- Windows Azure SDK for .NET (Visual Studio Tools for Windows Azure が含まれます)
- Microsoft SQL Server or SQL Server Express 2008
- Windows Identity Foundation
- Enterprise Library 5 (必要なアセンブリはダウンロードされるソースコードに含まれます)
- Windows Azure Platform cmdlets (Windows PowerShell snap-in としての Windows Azure Platform cmdlets をインストールします。これは Azure Management API を使うために必要です)
- Sample database (ソースコードの Database フォルダーにスクリプトが含まれます)
デザインゴール
Trey Research の Orders アプリケーションを使うと、Web サイト訪問者は、製品のオーダーをすることができます。それは Web アプリケーションであり、クラウドベースアプリケーションとして世界中の異なる場所に置かれた複数のデータセンターに配置することにより、たとえ、オンプレミスの企業インフラ配下にある、いくつかの重要なサービスやアプリケーションがメンテナンス中であったとしても、時間外のオーダーにも対応することができます。これは、多くの組織における共通のシナリオと言え、そしてそのことが意味するのは、ソリューションは多様なチャレンジにより生み出されるものだということです。例えば、当該アプリケーションはどのようにしてクラウドベースのサービスとオンプレミスのアプリケーションを接続して、タスクを実行することができるのか、それは通常は企業の出たセンターネットワーク内で交換されるタスクでありるところ、現在はインターネットを経由する必要がある訳です。
この Trey Research のケースでは、当該 Orders アプリケーションに接続される幾つかのきわめて重要な機能群は、実はクラウドには配置されていない。Trey Research の管理・運用アプリケーション、そしていくつかのデータベースは、彼らのデータセンター内に配置されています。移動と配送の機能は、Trey Research のいくつかの運輸パートナーにより実行される。これらの運輸パートナーは、彼ら自身クラウドにホストされたサービスを使用しているかもしれないが、そのことは Trey Research の独自のアプリケーション設計と実装には何らインパクトをもたらさないことになります。
Trey Research はOrders アプリケーションを開発し、それは元々は、すべて彼らのデータセンター内で実行されます。例外は運輸パートナーによる輸送と配布のサービスだけです。当該アプリケーションは、2つの分割されたコンポーネントとして作成されます。それらは、Orders アプリケーションそれ自体 (Web サイトと関連ロジック)、そして、管理とレポーティング用のスイートとなります。そのように設計された理由は、Trey Research は早いうちにこれらの2機能は2つの分割された機能のエリアであるということがわかっていたからです。
加えて、パブリックなサービスとして公開されている Order Web アプリケーションは、そのビジネスの成長に従って、スケールする必要があることが期待されているのに対して、管理とレポーティングのアプリケーションは、同じ意味ではスケールする必要がないのです。Trey Research が、管理とレポーティングのアプリケーションをスケールさせる必要があるのは、追加のサーバーリソースを彼らのデータセンターに追加することにより増加した要求がある場合だけです。
価格が手頃で信頼性のあるクラウドホスティングサービスの実用性が決め手となり、Trey Research は 当該 Orders アプリケーションの Windows Azure への移行可能性を調査し始めます。このハイブリッド Orders アプリケーションは、オンプレミスの場合とまったく同様に稼働します。
当該アプリケーションの利用により、顧客は、ハイテク部品と関連備品を、オーダーすることができます。それらは Trey Research が自社工場で製造したもので、サードパーティの運輸パートナーを使って顧客に発送することができます。
全ての顧客のリクエストは、Windows Azure Traffic Manager を通じて転送され、それは顧客を、もっとも近い (それは応答時間と可用性に基づいて決定されます)Windows Azure データセンターで稼働している Orders アプリケーションのインスタンスにリダイレクトします。顧客には、Windows Azure Access Control Service (ACS) を通じたフェデレーション認証を提供し、その際には、Windows Live ID、Yahoo!、Google といったソーシャル Idpを使って認証を行います。
顧客の詳細は、オンプレミスのデータベースにある Cusutomers テーブルと、全ての Windows Azure データセンターにある SQL Azure Database の Customers テーブルとで、動機が行われています。これにより、顧客は世界中のどこのデータセンタにある Trey Research のアプリケーションにもアクセスすることができます。この Orders アプリケーションは、Products テーブルに保存されている製品一覧のリストを表示します。当該製品 (Products) データは、本社オフィスのデータセンター内にに配置されているマスターデータベースから、同期されるように設定されています。
顧客がオーダーをした際には、Orders アプリケーションは、当該オーダーの詳細をローカル(=そのアプリケーションが配置されているデータセンター内)の SQL Azure Database の Orders テーブルに保存します。全てのオーダーは全てのWindows Azure データセンターの中で同期され、Traffic Manager により顧客がどのデータセンターにルーティングされたかに関係なく、オーダーの最新ステータス情報を参照することが可能となります。
この Orders アプリケーションはまた、アドバイスのメッセージを適切な運輸パートナーに対して送信します。そのタイミングは、配達状況に依存し、 また監査情報、例えば特定の合計値のオーダー等、をオンプレミスの管理及びモニタリングアプリケーションに対して送信し、本社オフィスのデータセンター内に配置されたデータベースのストレージに保存します。運輸パートナーが当該オーダーを顧客に配達した際には、当該パートナーは Orders アプリケーションに対してメッセジーを送信し、Orders アプリケーションは、Orders テーブルの内容を更新します。
サードバーティのコンプライアンス用のアプリケーションは、クラウド上のVM Role で稼働しており、Orders テーブル内にあるオーダー群が、法的制約に照らして許容されているかどうかを、継続的に検証しています。そして、マネージャーの注意が必要であるオーダーにつき、当該データベースのテーブルにフラグをセットします。このアプリケーションはまた日次レポートを生成し、そのレポートは、本社オフィスのデータセンター内のサーバーに保存されます。
管理情報を取得するために、オンプレミスの Reporting アプリケーションは、クラウド内の SQL Azure Database 上で稼働している Reporting サービス機能を使い、Orders テーブルからのレポートを生成します。これらのレポート群は、Windows Azure Marketplace から取得されるデータマーケットセクションのデータと必要に応じて統合され、グローバル及びローカルのオーダー傾向の結果を比較するために使用されます。このレポート群は、外部ユーザーからもアクセス可能であり、例えば、外部にいるパートナーや Trey Research の従業員からもアクセスできるようになっています。
コミュニティ
このガイドは、他の多くの patterns & practices の成果物同様、コミュニティサイトに紐づけられています。このコミュニティサイトにおいて、質問も可能ですし、フィードバックも可能ですし、また他のユーザーとディスカッションしたりアイデアを共有することもできます。コミュニティメンバーはまた Microsoft のプラン作成をヘルプして戴き、フューチャーガイドをテストし、そして付加的なコンテンツ、たとえば拡張機能やトレーニングマテリアルをダウンロードできます。
フィードバックとサポート(ここは原文のまま)
Questions? Comments? Suggestions? To provide feedback about this guide, or to get help with any problems, please visit the Windows Azure guidance Community site. The message board on the community site is the preferred feedback and support channel because it allows you to share your ideas, questions, and solutions with the entire community. This content is a guidance offering, designed to be reused, customized, and extended. It is not a Microsoft product. Code-based guidance is shipped "as is" and without warranties. Customers can obtain support through Microsoft Support Services for a fee, but the code is considered user-written by Microsoft support staff.
著者:協力者
このガイドは、下記の人々によって作成されました(以下は原文のまま) :
- Program and Product Management: Masashi Narumoto (Microsoft Corporation)
- Architect: Eugenio Pace (Microsoft Corporation)
- Subject Matter Experts: John Sharp (Content Master), Alex Homer, Scott Densmore, Clemens Vasters, Mark Scurrell, Jason Chen, Tina Stewart, Arun Rajappa, and Corey Sanders (Microsoft Corporation)
- Development: Scott Densmore (Microsoft Corporation), Jorge Rowies (Southworks), Alejandro Jezierski (Southworks),
- Test team: Hanz Zhang (Microsoft Corporation), Ravindra Mahendravarman (Infosys Ltd.), and Ravindran Paramasivam (Infosys Ltd.)
- Edit team: RoAnn Corbisier and Alex Homer (Microsoft Corporation) and John Sharp (Content Master)
- Book design and illustrations: John Hubbard (eson), Ellen Forney, and Eugenio Pace (Microsoft Corporation).
- Release Management: Nelly Delgado (Microsoft Corporation) and Richard Burte (ChannelCatalyst.com, Inc.)
We want to thank the customers, partners, and community members who have patiently reviewed our early content and drafts. Among those, we want to highlight the exceptional contributions of Kashif Alam, Vijaya Alaparthi, Matias Woloski, Eugenio Pace, Enrique Saggese, and Trent Swanson.
関連タイトル
- Moving Applications to the Cloud, 2nd Edition
- Developing Applications for the Cloud, 2nd Edition
- A Guide to Claims-based Identity and Access Control, 2nd Edition
以上です。よろしくお願いします!
鈴木 章太郎