Windows Azure

Introducing the Windows Azure SDK for PHPをざっくり意訳した投稿です。

Windows Azure SDK for PHPは新しいものではなく、特に紹介する必要は無いかもしれません。

でも、Windwos Azure platform用のPHPアプリケーションを構築する多くの人にとって、SDKは必要なものです。もしSDK 4.0のリリースを確認してなかったり、リリースされたことを知らない人のために紹介したいと思います。

この投稿で、SDKを使用するのに助けになるいくつかの参考情報へのリンクを紹介します。マイクロソフトの Interoperability チームがメンテナンスしているAzurePHPサイトが、とても勉強になります。

SDKの更新内容と入手場所、設定方法について

この投稿では、Windows Azure SDK for PHPのセットアップと、SDKのすぐれてた特徴を紹介します。
SDKは、3つの要素から構成されています。

クラスライブラリ

Windows Azure ストレージサービスにアクセスしたり、Blobストレージにログ情報を格納したり、サービスやデプロイに関する統計情報を収集したり、サービスやデプロイを管理したりするためのライブラリです。

APIリファレンス文章は、SDKの\libraryディレクトリにヘルプへのリンクを格納しています。

コマンドラインツール

ビルド、パッケージ化、配置、プロジェクトの管理などをするためのツールです。

サンプルと詳細情報は、SDKセットアップ後、コマンドラインツールでツール名を入力しEnterを押してください。

プロジェクトテンプレート(scaffold)

.pharファイルのフォームです。

テンプレートの詳細については、後述するアプリケーションのパッケージと配置セクションを参照してください。

アプリケーションのパッケージと配置方法

Windows Azure SDK for PHP 4.0で、Windows AzureにPHPアプリケーションをパッケージ化し配置する“scaffolds”コンセプトを紹介します。

この目的のために使用するPHP開発者用のWindows Azure コマンドラインツールを使用したことがあれば、本当に少しの作業で実現できることに気が付いたと思います。scaffoldsは、とっても簡単で、とっても強力なツールです。scaffoldsは、.pharファイルのPHP/Aずれプロジェクトテンプレートです。

アプリケーションを配置するのに使用するSDKの(/scaffolders ディレクトリに格納されている)デフォルトテンプレートでは、PHPOnAzureにアプリケーションのソースコードを追加します。

詳細については、 Build and deploy a Windows Azure PHP applicationを参照してください。

scaffoldsの使用方法を知るのに参考になるサイト

scaffolderツールを使用するとアプリケーションに特定情報を(e.g. SQL Azure データベースの接続情報)追加したり 、簡単にAzureにデプロイできます。 アプリケーションでのscaffold使用方法については、Using Scaffoldsを参照してください。

Windows Azure Blob, Table, Queueストレージサービスへの接続方法

SDKで提供するクラスライブラリで、Windows Azure Blob, Table, Queueストレージサービスに接続できます。おもに使用するクラスは、
Microsoft_WindowsAzure_Storage_Table
Microsoft_WindowsAzure_Storage_Blog
Microsoft_WindowsAzure_Storage_Queue classes
です。

これらのクラスの使用方法については、下記ドキュメントを参照してください。いくつかのどきゅ面tのは、4.0の前のバージョンのSDKを基にしたものがありますが、ストレージAPIには互換性があります。

テーブルストレージを使用する

Blobストレージを使用する

Queueサービスを使用する

そのほかの資料

そのほかに、以下の資料が参考になります。

Windows Azure

Windows Azure Storage usage in Windows Azure Companion PHPを簡単に紹介した投稿です。

Windows Azure Companion for PHPを使用するには、configure.cscfgにAzure Storageアカウントの情報を設定する必要があります。

<Setting name="WindowsAzureStorageAccountName" value=" happybuddha" />

<Setting name="WindowsAzureStorageAccountKey" value=" dyjrnWG0/ibgI4k9/j6DSZqyhCK5QlZDVYgwqyFqrH8IXW8od9XY1s1TyiDB+1nPCLrT2LOrx34TyhmsI7YyVg==" />

Windows Azure

Windows Azure Companion for PHP: Common Errorsを簡単に紹介する投稿です。

Windows Azure Companion for PHPは、Windows Azure上にPHPベースのアプリケーションを数クリックで配置できる便利なソリューションです。Windows Azure Companion for PHPを使用していると遭遇する可能性があるエラーと原因について説明します。

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ライクなアプリケーションに集中していますが、将来的には、その他のプラットフォームにも対応していきます。