Windows Azure

Windows Azure Companionのソースが、ダウンロードできます。WindowsAzure Companion

の概要は、「ここ」で紹介しています。この投稿では、ソースコードから5箇所取り上げて、説明します。ソリューションアーキテクチャーを理解するのに重要な5箇所です。簡単な機能拡張をしたいときに、触る可能性がある箇所です。

1. Azure Companion 管理アプリケーション:

 

WorkerRole\WorkerRole.cs

             // Start ASP .NET Admin WebSite

       private void StartAdminWebSite()

2. Web CoreでPHPを実行する:

 

VMManagerService\WindowsAzureVMManager.cs

             public static string HWCForPHPProcessName = "HWCForPHP.exe";

 

VMManagerService\WindowsAzureVMManager.cs

// setting the file name and arguments

              hwcServerProcess.StartInfo.FileName = Path.Combine(approot,

 WindowsAzureVMManager.HWCForPHPProcessName);

              hwcServerProcess.StartInfo.Arguments =

                    Path.Combine(configPath, "php_applicationHost.config") + " "

                    + Path.Combine(configPath, "php_web.config");

              hwcServerProcess.Start();

              // Start the asynchronous read of the output stream.

              hwcServerProcess.BeginOutputReadLine();

 

              Trace.TraceInformation("Started Hosted Web Core Server for PHP Applications

 on port {0}", endpoint.Port.ToString());

 

3. RAM パフォーマンスカウンター:

WorkerRole\WorkerRole.cs

// Add performance counter monitoring

            cfg.PerformanceCounters.DataSources.Add(

                            new PerformanceCounterConfiguration()

                            {

                               CounterSpecifier = @"\Processor(_Total)\% Processor Time",

                               SampleRate = timeSpan

                            });

            cfg.PerformanceCounters.DataSources.Add(

                new PerformanceCounterConfiguration()

                {

                    CounterSpecifier = @"\Memory\Available Mbytes",

                    SampleRate = timeSpan

                });

            cfg.PerformanceCounters.ScheduledTransferPeriod = timeSpan;

 

4. Cloud Driveを作成し、 backup.vhd をマウントする:

VMManagerService\WindowsAzureVMManager.cs

// Get Windows Azure Drive container and blob names from service configuration file

string xdriveContainerName = RoleEnvironment.GetConfigurationSettingValue("PHPApplicationsBackupContainerName");

string xdriveBlobName = RoleEnvironment.GetConfigurationSettingValue("XDrivePageBlobName");

 

5. Cloud Drive の名前とサイズなどの設定:

ServiceConfiguration.cscfg

      <!– Settings for Windows Azure Drive used for durability –>

      <Setting name="PHPApplicationsBackupContainerName" value="phpapps" />

      <Setting name="InstallationStatusConfigFileBlob" value="status.xml" />

      <Setting name="ProgressInformationFileBlob" value="progress.xml" />

      <Setting name="XDrivePageBlobName" value="backup.vhd" />

      <Setting name="XDriveSizeInMB" value="2000" />

Windows Azure, ダウンロード

Windows Azure Companion: PHP and WordPress in Azure」にて、Webプラットフォーム インストーラー(Web PI)のクラウド版とも言えるWindows Azure CompanionのCTP版のリリースが紹介されていました。

 

Windows Azure Companionとは

 

Windows Azure Companionとは、自分のAzureアカウントにインストールすることで、Azure上でwebサイトの準備を行えるお手軽インストーラーです。イメージ的には、Web PIのAzure版です。

Windows Azure Companionを使用することで、PHPを導入し、OSSのWordPress、Drupal、JoomlaなどをWindows Azure Companionを動作させているAzureインスタンス(Worker Role)と同じ場所に直接インストールできます。

すでにPHP、MYSQL、Javaなどマイクロソフト製では無いフレームワークやWindows Azreアプリケーションを動作させていたり、ユーザを助けるためのPHP/MySQLTomcatmemcachedなどのアクセラレーターが提供されています。

Windows Azure Companionは、一歩先に進み、Azure上でアプリケーションやフレームワークを管理したり、動作させる為の管理作業をシングルポイントで提供します。現時点では、PHPベースの有名なWordPressやDrupalのようなCMSライクなアプリケーションに集中していますが、将来的には、その他のプラットフォームにも対応していきます。

Windows Azure

Microsoft IT Starts Migration of Microsoft.com to Windows Azure Platform」で、microsoft.com上で提供されているVideo ShowcaseをWindows Azureへ移行した話が紹介されています。
移行結果は、Video Showcaseのアプリを作成する時に、Windows Azureを適材適所で利用しコスト削減と可用性を向上させています。オンプレミスとクラウドの連携となっています。

Video Showcaseは、製品情報を紹介する5分程度のビデオを8000ほど提供しており、主にマイクロソフトのマーケット部門の人間が利用します。機能としては、ビデオの提供以外にも、レーティング、コメント投稿機能、スパム防止機能、分析機能などを備えています。

microsoft.com上で提供しているサービスをWindows Azure上に移行した最初のサービスがVideo Showcaseです。Video ShowcaseをWindows Azureに移行する為に開発されたのが、Social eXperience Platform(以後、SXP)です。

SXPは、microsoft.com内でソーシャルメディアを提供できるように開発されたマルチテナント型のWebサービスです。SXPは、オンプレミスとクラウド両方の長所を採用したサービスです。SXPは、Windows AzureとSQL Azure上で動作していますが、Video ShowcaseのWebサーバはマイクロソフト内のデータセンターにあるmicrosoft.com上に立てています。組み合わせることで、総合運用性の高い、高セキュリティと管理の容易性を実現しています。

SXP Web Servicesは、VS2010と.NET Framework 3.5で作成しています。
SXP Web Servicesは、3つのMediumインスタンス上で1つのWeb Roleが動作しています。SXPチームは、高可用性と、micorsoft.comのエンタープライズwebサイトとしてのスケーラビリティを提供するために3つのインスタンスを選択しました。通常、5%程度の利用率なので、必要以上の性能を持っています。

SXPはマルチテナント型なので、micorosoft.com上の複数のサブサイトで、利用することができます。テナントごとに、SQL Azureデータベースを分けてテナントを作成します。複数データベースを利用することで、DBの分離の利点を享受できます。複数DBを利用することで可用性を高めています。SXPでは、ログの保存にWindows Azure Storageを利用しています。

Windows Azure

Deploying Existing Silverlight Application (Deep Zoom) on Windows Azure」で、Deppzoom Composerで作成したSilverlightアプリケーションのDeep ZoomをWindows Azureにデプロイする方法が紹介されています。

Deepzoom Composer

Deepzoom Composerは、「Microsoft Wave – Deepzoom Composer」で公開されており、SilverlightのDeepzoomを手軽に作成することができる。マウスで、画像を追加し、画面上に配置しリンクなどを設定するだけでDeepzoomを作成できる。

20101005012617

紹介記事では、Deepzoom ComposerからエクスポートしたDeepzoomをWindows Azureにデプロイしている。

Windows Azureへのデプロイ準備

既存のSilverlightアプリケーション(Deepzoom)をWindows AzureのWeb Roleへデプロイする。

  1. Visual StudioでWeb Roleを追加する。
  2. Deepzoomのディレクトリをプロジェクトに追加する。
  3. web.configを修正し、規定のドキュメントにtest.htmlを設定する。以下のコードを<system.Webserver>配下に追加する。

    <defaultDocument>
    <files>
    <add value=”Test.html”/>
    </files>
    </defaultDocument>

以上でWindows AzureへのSilverlightアプリケーションのデプロイ準備が完了する。後は、デプロイして完了。具体的な手順は、「Deploying Existing Silverlight Application (Deep Zoom) on Windows Azure – Mingfei’s Code Block」にてスクリーンショット付きで紹介されている。

実際にWindows Azure上にデプロイされたデモアプリが、Silverlight Project Test Pageで公開されている。

Windows Azure

マイクロソフトパートナー向けに、Windows Azureの開発者・アーキテクチャコースがリリースされています。全部で3種類のコースが提供されており、それぞれ予想受講時間が4時間となっている。リリースされたコースは、オンラインで英語のセッションとなっているが、デモ動画もあり案外なとかなりそうである。

1)Technical Architectural Guidance for Migrating your application to the Windows Azure Platform

  • レベル:300
  • パートナーのITプロ向け
  • アプリケーションのマイグレーションに関するアーキテクチャ紹介
  • Application Assesment toolの使用方法(準備中)
  • アプリケーション共通のアーキテクチャデザイン考(準備中)

「アプリケーションのマイグレーションに関するアーキテクチャ紹介」が公開されており、セッション内訳は以下となっている。

  • Windows Azureの価値と概要
  • 動的環境
  • 待ち時間とタイムアウト
  • トランザクションと帯域
  • 認証と権限
  • ローカルの状態
  • Data Sensitivity
  • Windows Azureで集合開発

2)Assess and plan an application’s migration to Windows Azure

  • レベル:100
  • パートナーセールス向け

これは、セッションというよりは体験版のようです。Windows Azure Migration Assessment Tool (MAT)をClick Onceでインストールして、操作していく形式。最初はとくわからず、戸惑いました。

3)How to develop a practice around Windows Azure

  • レベル:100
  • パートナーセルス向け

セッション概要は以下の通り

  • 今日開始するためのオファーとプログラムを見る
  • エンタープライズ顧客へ提供するWindows Azureの価値を理解する
  • Windows Azureでの開発方法を学ぶ
  • Windows Azure Platformの利点をホワイトペーパーで読む

まとめ

 

とりあえず登録して、触りをさらっと見ただけなので、中身については週末の楽しみにしておきたいと思います。どなたかが日本語化してくれることに、ちょびっと期待しつつ。