Windows Azure Acceleratorで加速する

現在、MicrosoftはWindows Azure、Office 365、Bing、MSN、Windows Live、Hotmailなど、200以上のクラウドサービスを提供しています。 これらのリソースは、70か国以上の10億を超える顧客と2000万の企業で24時間365日利用できます。 これらのリソースのサポートは、Microsoft Software Plus Services(ソフトウェアプラスサービス)戦略を実装するGlobal Foundation Services (GFS)に基づいています。 クラウドサービスのITインフラストラクチャをサポートするために、Microsoftは世界中の主要なデータセンターのネットワークを展開しています。 これらの最先端の技術ソリューションのおかげで、ユーザーは安全で信頼性が高く、スケーラブルで効率的なソリューションを利用できるようになりました。 GFSデータセンターの作業をサポートするシステム管理者のみがうらやましく、彼らのプロフェッショナリズムを賞賛すべきです。







ビジネスがMicrosoftクラウドサービスの機能と可能性を最大限に活用できるようにするために、Windows Azureプラットフォームに慣れ親しんでも不便ではありません。 いずれにせよ、イノベーションに興味がなくても、プロジェクトのPaaSの展望を考慮する必要があります。 ここで、イノベーションとはIT分野のソリューションではなく、サービスを提供するビジネスモデル(サービスとしてのプラットフォーム)の新しい見方です。 実際、Windows Azureは、Microsoftのグローバルに分散したデータセンターにアプリケーションを迅速に展開するためのツールです。 ただし、「高速」の概念は非常に相対的です。たとえば、Windows AzureでのアプリケーションのWebロールの展開には、約15〜20分かかります。 そして、Windows Azure Accelerator for Web Rolesが助けになります。



Windows Azure Webロール



Webロール用のWindows Azureアクセラレーターは、Windows Azure Webロールモードで実行される.NETアプリケーションであり、ユーザー(開発者)サイト用のダウンローダーです。 次に、WebロールがWindows Azure環境で実行されているユーザーアプリケーションのインスタンスであることを明確にする必要があります。 実行中のWebロールインスタンスの数は負荷に依存し、ユーザーが定義します。 すべてのインスタンスは同一です。 Webロールの機能は、アプリケーションを使用するクライアントがWebインターフェースを介してアクセスできることです。 Webロールにアクセスするために、一意の仮想IPアドレス(VIP)が提供されますが、これはアプリケーションでは変更されません。 ただし、VIPアプリケーションを再デプロイすると、変更される可能性があります。 この機能は、Webロールのインスタンス数の増減には適用されません。



簡略化されたWindows Azure Webロール構造



Windows Azure Webロールインスタンスは、IISがインストールされた、選択したWindows Server 2008またはWindows Server 2008 R2を備えた仮想マシンです。 Webサーバーは複数のサイトにサービスを提供できるため、Webロールのインスタンスは複数のユーザーリソースへのアクセスを非常にうまく提供できます。 各ユーザーリクエストに対して、Webロールの特定のインスタンスが、セッションの現在の状態を考慮しないロードバランサーによって選択されます。 したがって、クラウドアプリケーションがクライアント側に保存されたCookieを使用するか、セッションデータをリモートストアに保存することは合理的です。



Windows Azureのインフラストラクチャ全体は、Windows Serverをベースとする分散コンピューティングシステムであるWindows Azure Fabricと、一連の診断および管理ツール、およびユーザーにWindows Azureコントロールパネルへのアクセスを提供するWebポータルによって管理されます。 Webロール用のWindows Azureアクセラレーターを使用すると、ユーザーがWindows Azureコントロールパネルを使用せずに自分でサイトを展開できるようにすることができます。



Webロール用のWindows Azureアクセラレーターをインストールする



Webロールクラウド用のWindows Azureアクセラレーターでの展開には、Microsoft Visual Studio 2010または無料のMicrosoft Visual Web Developer 2010 Expressを使用できます。 まず、 http: //waawebroles.codeplex.com/からWebロール用のWindows Azureアクセラレーターをダウンロードし、パッケージのインストールを開始します。



WAAWebRoles.exe



実際、パッケージはローカルコンピューター上のユーザーが指定したフォルダーに解凍されます。 Webロール用のWindows Azureアクセラレータには、依存関係としてASP.NET MVC 3と、もちろんMicrosoft Visual Studio 2010 Platform v1.4用のWindows Azureツールが必要です。 これらのコンポーネントが開発者のコ​​ンピューターにまだ存在しない場合は、インストーラーWebプラットフォーム3.0を使用して展開されます。



WAAWebRoles.exe



次の段階で、スクリプトが起動され、コマンドラインが提示された質問に肯定的に答えるはずです。 もちろん、この時点までにすべての依存関係がインストールされており、Visual Studioの拡張機能のインストールを続行する場合。



WAAWebRoles.exe



これでグラフィカルインストーラーが起動し、Visual Studioに追加されます。現在の例では、Microsoft Visual Web Developer 2010 ExpressのWindows Azure Web Deploy Hostプロジェクトテンプレートに追加されます。



WAAWebRoles.exe



その後、Webロール用のWindows AzureアクセラレーターをMicrosoftクラウドにダウンロードするステップに進むことができます。 これを行うには、選択したバージョンのVisual Studio開発ツールを実行します。 この時点で、Windows Azureコントロールパネルのユーザーは、新しいサービスと1つのストレージアカウントを予約していると想定されます。



Webロール用のWindows Azureアクセラレーターの展開



Microsoft Visual Web Developer 2010 Expressを起動した後、Visual C#テンプレートのクラウドセクションから新しいプロジェクトを作成することを選択します:Windows Azure Web Deploy Host。



Visual Web Developer 2010 Express



連続して開く次の2つのダイアログボックスで、ストレージアカウントのパラメーターを入力します(Windows Azureストレージアカウント情報を入力します)。 アカウント名(アカウント名)とプライマリアクセスキー(アカウントキー)を指定する必要があります。これらはWindows Azureコントロールパネルで利用できます。 次に、将来のサイトの管理者の任意のログイン(ユーザー名)とパスワード(パスワード)(管理サイトのアカウント情報を入力)が設定されます。 これで、プロジェクトをクラウドに転送する準備ができました。



Visual Web Developer 2010 Express



確かに、小さな改善は害になりません。 まず 、ユーザーのWebサイトが.NETアプリケーションとして開発されるだけでなく、PHPによって使用されると想定される場合、Webロールの展開パラメーターを指定する必要があります。 この場合、アプリケーションをデプロイするときに、PHPをサポートするIIS用のFast-CGIモジュールが接続されます。 これを行うには、ファイル/Startup/ConfigureIIS.cmdに数行を追加します。 または、もっと簡単に、Nathan TottenがGitHubで公開した既に変更されたファイルをダウンロードします



次に 、Webサイトの後続の展開がMicrosoft WebMatrixを使用して行われることになっている場合、ポート8172でTCPを介したWebロールのWindows Azureアクセラレーターへのアクセスを許可する必要があります。



ポートを開くには、ServiceDefinition.csdefサービス定義ファイルのEndDsセクションに次の行を追加します。



<InputEndpoint name = "RemoteDeploy" protocol = "tcp" port = "8172" localPort = "8172" />



それだけです-雲の時間です! Webロール用のWindows Azureアクセラレーターの展開は、Visual Studioを使用してWebロールを展開する同じ手順と変わりません。 プロジェクト名WebDeployHost1.Cloudを右クリックして、「公開」または「公開」を選択します。



Visual Web Developer 2010 Express



開いたダイアログボックスで、現在のWindows Azureサービスアカウントの設定を選択します。 信頼性の証明書がまだクラウドにアップロードされていない場合は、証明書を生成してアップロードします。 Visual Studioを使用してアプリケーションを展開する手順に詳しくない場合は、Sergey Baydachnyのスクリーンキャストをご覧になることをお勧めします。WindowsAzureの使用:Visual Studio 2010-TechDays.in.ua



残念なことに、Windows Azure Accelerator for Web Rolesの展開では、Ukrainian .NET開発者コミュニティのWebサイトhttp://dev-club.in.ua/で提供されるWindows Azureへの24時間のテストアクセスが機能しません。完全に機能するWindowsコントロールパネルにアクセスする必要があります紺Azure これは、Webロール用のWindows AzureアクセラレーターがWebロールのインスタンスのリモートアクセスモードを有効にする必要があるためです。 これを行うには、[Windows Azureプロジェクトのデプロイ]ダイアログボックスで[リモートデスクトップ接続設定の構成]を選択します。 ここでは、すべてがアプリケーションインスタンスへのリモートアクセスの標準的な許可に似ています。 ユーザーを認証するためにWindows Azureにダウンロードされる証明書と暗号化キーのセットを生成し、リモート接続の管理者名とパスワードを指定します。 これに慣れていない人のために、Sergey Baydachnyによる別のスクリーンキャストを見ることができます:Windows Azureの使用:Azure Connect-TechDays.in.ua



Microsoftクラウドプラットフォームへのテストアクセスを取得するには、 Windows Azure Webサイトで現在のオファーを確認できますが、すべてのクレジットカードを使用する必要があります。 クレジットカードの詳細を入力せずに30日間試用することはできなくなったようですが、間違っている可能性があります。 いずれにせよ、Windows Azureの開発者向けオンラインコースとクラウドへのテストアクセスを提供してくれたMicrosoft Ukraineに感謝します。



さらに、Windows Azureアカウントへの接続をセットアップする簡単な操作がすべて正常に完了した場合、Windows Azure Accelerator for Web Rolesがクラウドに展開されるまでしばらく待つ必要があります(「アクセラレータ」を使用してサイト展開のこの時間と時間を比較できます)。 デフォルトでは、アプリケーションの2つのインスタンスが作成されます。



Windows Azureコントロールパネルに移動すると、必要なインスタンスが展開され、既に実行されていることを確認できます。 後で必要になるWebロールのVIPアドレス(エンドポイントの入力セクション)をすぐに覚えることができます。



Azureコントロールパネル



興味のある場合は、任意のインスタンスを選択して、そのデスクトップにリモート接続できます。



Rdc



内部はすべてWindows Server 2008 R2でよく知られています。 そのため、サイトでのさらなる作業にはリモート接続アカウントが必要です。このモードは、Webロールのインスタンスの内部構造を理解するためにも非常に興味深いものです。



WebロールWebサイト用のWindows Azureアクセラレーターの使用



Webロール用のWindows AzureアクセラレーターWebサイトは、過剰にふけることはありません。 メインページで、ログインとパスワードを入力します。 承認後、新しいサイトを作成するには、「新しいWebサイト」リンクを選択します。ここで、名前-サイトの名前(ユーザーサイトの展開時に将来使用されます)、説明-任意の説明を設定します。 接続パラメーター(プロトコルとポート)はデフォルト値のままです。ホスト名には、サイトを使用できるドメイン名を指定します。 したがって、指定されたドメインのDNS設定では、Windows Azureによって割り当てられ、コントロールパネルで使用可能なWebロールのVIPアドレスへのリンクを指定する必要があります。 ドメインが仮想の場合(アクセスは開発者のコ​​ンピューターのみによって制限されます)、たとえば: "site.local"、ローカルファイルの対応するエントリを変更できます: "%windir%\ system32 \ drivers \ etc \ hosts"。



WebSiteマネージャー



サイトを作成した後、指定されたURLにアクセスして、さらにアクションのヒントを利用できます。 WebSite Managerサイトは、ユーザーのサイトが展開されるWebロールインスタンスの数も示します。



次のステップは、Microsoft WebMatrixのインストールです。 インストール手順は非常に簡単です-サイトhttp://www.microsoft.com/web/にアクセスし 、インストーラーをダウンロードして結果を待ちます。 私の場合、Microsoft WebMatrixの次の依存関係がインストールされました:Microsoft SQL Server Compact 4.0 [ロシア語]、Microsoft SQL Server Compact 4.0ツール[ロシア語]、SQL Server 2008 R2管理オブジェクト[英語]、SQL Server Native Client [英語]、タイプSQL Server CLR [英語]、統合SQLサポートなしのWeb Deployment Tool 2.1 [ロシア語]、IIS 7.5 Express [ロシア語]、Microsoft WebMatrix Installer [ロシア語]。 ダウンロードしたファイルの合計サイズ:44.82 MB。



WebMatrixをインストールする



次に、Microsoft WebMatrixで簡単なWebサイトを作成します。 PHPでページを追加し、従来のコードを追加します-phpinfo()関数を呼び出します。 当然、ASP.NETについてのみ話している場合、PHPについては忘れます。



Webmatrix



次に、アプリケーションデプロイメントパラメーターを設定します:Webデプロイメント、サーバー-http://プレフィックスなしの Windows AzureサービスのDNS名。 ユーザー名とパスワードは、Windows Azure Webロールのインスタンスのリモートデスクトップアクセス設定です。 リンク先URLは、Webロール用のWindows Azureアクセラレーターのサイトの設定と一致する必要があります。 すべてが正しい場合、WebMatrixは証明書エラーを報告します。 私たちはこれに同意することができるだけです、なぜなら 証明書は自己署名されています。



Webmatrix



サイトはほぼ瞬時にロードされ、指定されたURLで利用可能になります。 たとえば、phpinfo()関数の結果を調べることができます。



Phpinfo



実験の純度を高めるには、Microsoft Visual Web Developer 2010 ExpressでWebサイトを作成し、Webロール用のWindows Azureアクセラレーターを使用して公開します。 これを行うには、まず、WebSite Managerで、「mysite2」などの新しいサイトを作成します。 そのために、新しいドメインを示します。これは、DNSレコードまたは「ホスト」にローカルに登録することを忘れないでください。



次に、Microsoft Visual Web Developer 2010 Expressを開き、ASP.NET MVCなどの新しいサイトを作成します。PHPのテストページを追加することもできます。 展開モードに入り、Web展開を選択し、サービスURL、アプリケーションWebサイトを指定します:「mysite2」、そしてもちろん、リモートデスクトップ経由でWindows Azure Webロールインスタンスにリモート接続するためのユーザー名とパスワード。



Microsoft Visual Web Developer 2010 Express



手順の後、2つのサイト(1つはWebMatrixで、もう1つはMicrosoft Visual Web Developer 2010 Expressで作成)を取得しました。これらのサイトは、Windows AzureクラウドのWebロールの2つのインスタンスで実行されます。 これで、phpinfo()関数の出力を調べたり、ASP.NET MVCサイトスタブの動作を確認したりできます。



ASP.NET MVC



したがって、Windowsロール用のWindows Azureアクセラレーターを使用すると、Azureクラウド内のWebサイトで非常に効率的に作業できます。 「アクセラレータ」の展開時には、Windows Azure管理パネルへのアクセスは必要なくなりました。 一種のホスティングアナログを取得しますが、スケーラビリティと信頼性のマージンは非常に大きくなります。 さらに、このような環境のASP.NETサイトとは別に、PHPソリューションを展開することもできます。 Webロール用のWindows Azureアクセラレータ自体は.NETアプリケーションであるため、独自の開発と統合できます。



まとめ



プラットフォームをサービスとして適合させるため、Windows Azureはデバイスを特定の抽象化の背後に隠します。 これは最初は複雑に思えるかもしれませんが、逆のことが当てはまります。 雲は簡単です! .NETテクノロジを使用した開発について話す場合、Microsoftクラウドプラットフォームはその機能を著しく実行し、大規模でスケーラブルな開発に十分魅力的です。 PHPの場合、すべてがそれほど単純ではありません。 PHPソリューションを.NETアプリケーションとともに使用するハイブリッドプロジェクトについて話す場合、これは非常に興味深いものです。 PHPでの新規開発の場合、Windows Azureプラットフォームの利点は、提供されるサービスの価格設定ポリシーや、データウェアハウスの使用などの特定のアーキテクチャ機能において、クライアントにとって明らかに魅力的です。 既存のPHPプロジェクトの場合、Windows Azureクラウドへの移行はかなり霧がかかっています。 ここでは、プロジェクトを適応させるコストと、別のプロバイダーのクラウドを使用する能力を比較する必要があります。 Windows Azureのアーキテクチャが優れていることを認識しないことはできませんが。



参照資料


1. Microsoftがクラウドデータセンターのビデオツアーを共有-TechNetブログ:MS Datacenters

2. Windows Azureの内部、Mark Russinovichによるクラウドオペレーティングシステム(ビデオ)-Tech ・Ed North America 2011

3. Webロール用のWindows Azureアクセラレーター-Nathan Totten

4. PHPおよびMVC3を使用したWebロール用のWindows Azureアクセラレーターの拡張-Nathan Totten

5. Webロール向けWindows Azureアクセラレーター、またはAzureを専用のホスティングエラスティック自動化ソリューションに変換する方法-Matias Woloski

6. Webロール向けWindows Azureアクセラレーター-Maarten Balliauw {blog}

7. Web Role向けWindows Azure Acceleratorを備えたWebMatrix- superriverfield

8.クラウド用のPHPアプリケーションの開発の見通し。 Windows Azureの紹介- ノートブック

9. Windows Azureでのソリューション開発におけるヨーロッパの経験。 ユーリ・ザイツェフ(スクリーンキャスト) -TechDays.ru



All Articles