マイクロソフト株式会社
    デベロッパー エバンジェリスト
    井上大輔 (daisukei@microsoft.com)
    Blog    http://blogs.msdn.com/daisukei/
    Twitter http://twitter.com/daisukei777


1
Agenda

 クラウドの基本をおさらい (一般論)

 Windows Azure を理解する

 PHP on Windows Azure 開発のポ゗ン
 トを理解する

 さらなる活用に向けて

                               2
Agenda

 クラウドの基本をおさらい (一般論)

 Windows Azure を理解する

 PHP on Windows Azure 開発のポ゗ン
 トを理解する

 さらなる活用に向けて

                               3
クラウドを身近な物で例えると




 コスト                  コスト
 車代+駐車場+保険+税金+         利用した分だけ料金を払う
 車検+ガソリン代

 道があればどこでも行くことができる    駅から駅へ行くことができる


  低                           規模の経済 高
  高     コントロール                          低
クラウドとは
゗ンターネットをベースとしたコンピュー
タの利用形態
 所有から利用へ
 大規模データセンターがバックボーン


     ゗ンターネット




                      5
クラウドのメリット




 所有はしない。              スケールゕウト
 利用しただけ支    マーケットへの
             対応が迅速    やスケールダウ
 払い。メンテ コ               ンが容易
 ストも削減。




                                6
クラウドの真価はスケーラビリティ
~ 真価を発揮する4つのパターン ~
              “On と Off            “急速な成長“
                  “
     トラフィック




                          トラフィック
                 稼働不要な
                  時期




                  時間                  時間




 “予測不能な使用増“               “周期的な使用増“

                          トラフィック
 トラフィック




                 時間                   時間




                                             7
(1) 予測不能な使用増

  トラフィック




           時間




                8
(1) 予測不能な使用増

              ゕクセスの予想が
              できないキャン
              ペーンサ゗ト
トラフィック




              ゲームサ゗トなど
              の初公開時
         時間




                         9
(2) 周期的な使用増
 トラフィック




          時間


               10
(2) 周期的な使用増

              オリンピックなど
              特定゗ベントに関
              連するサ゗ト
トラフィック




              セール時のショッ
              ピング サ゗ト
         時間


              旅行サ゗ト


                         11
(3) 急速な成長
 トラフィック




            時間




                 12
(3) 急速な成長

              ベンチャー企業の
              SaaS

              部門内利用から全
トラフィック




              社利用への展開
         時間




                         13
(4) On と Off


           稼働不要な
  トラフィック



             時期




               時間




                    14
(4) On と Off

                 バッチ処理

                 期間限定キャンペーン
         稼働不要な   サ゗ト
トラフィック




          時期



                 スキー場などの特定季
          時間     節のみのサ゗ト

                 学術機関での解析作業

                          15
クラウドの提供形態
ユーザが準備するもの

事業者側が提供するもの


 カスタマイズ
                 アプリ          アプリ
   アプリ

  OS+ミドル       OS+(ミドル)     OS+ミドル

 ハードウェア        ハードウェア       ハードウェア

 ネットワーク        ネットワーク       ネットワーク

   SaaS         PaaS         IaaS
  完成品の        開発・実行環境となる   ハードウェアを提供
ソフトウェアを提供    プラットフォームを提供

                                       16
Agenda

 クラウドの基本をおさらい (一般論)

 Windows Azure を理解する

 PHP on Windows Azure 開発のポ゗ン
 トを理解する

 さらなる活用に向けて

                               17
Windows Azure
~ スケーラブルなクラウド OS ~
                     仮想化技術で大規
                     模データセンター
                     のサーバー群を制
                     御し、高い可用性
                     とスケーラビリ
                     テゖを実現




ゕプリ、ミドルウェゕ実行環境   信頼性の高いストレージ


                               18
Windows Azure
~ Compute ~

                 • Web ゕプリ 実行環境
   Web Role
                 • IIS (FastCGI サポート)がベース




                 • MySQL などのミドルウェゕを実行
   Worker Role
                 • バッチ ジョブのような処理を実行



        ※各 Role 毎に゗ンスタンス数は
         動的にいつでも増減可能
                                        19
Windows Azure
 ~ 内部構成 ~

                               バックエンドで
   HTTP/HTTPS
                               の処理が基本形
インター
ネット
                                     Worker
       LB




                                      Role
                  Worker
                   Role
        Port 25

                           Storage


  ※ 任意のTCPポートで通信可能                            20
Windows Azure
~ Storage ~
               • Table = Key Value ストゕ
      Azure
               • BLOB = 大容量バ゗ナリ格納
     Storage
               • QUEUE = メッセージ キュー



      Azure    • クラウド上の NTFS サービス

      Drive    • 将来提供予定(現在 β)



     ※ ほぼ無尽蔵にストレージ領域を利用可能

                                         21
Azure Video …



                22
Demo



       23
開催日   2009年11月




                 24
基調講演 で PHP on Windows Azure
~ WordPress 創始者 Matt Mullenweg ~




     ストリーミング:http://microsoftpdc.com/Sessions/KEY01
                                                      25
PHP サーバープラットフォーム の比較
           従来の サーバー                   Windows Azure
           プラットフォーム                   プラットフォーム
                PHP アプリ                   PHP アプリ
Web
             IIS        Apache
                                        Web Role (IIS)
サーバー                                    ※ Fast CGI サポート


DB        SQL Server       MySQL                Worker Role
                                                   (MySQL)

          Windows          Linux
OS         Server                     Azure        Azure
            NTFS             FS                   Storage
                                      Drive
          Windows       VMware
Virtual
          Hyper-V      ESX Server


                       …                                     …
          自社内、ホステゖングなど              マ゗クロソフト の データセンター
                                                             26
Agenda

 クラウドの基本をおさらい (一般論)

 Windows Azure を理解する

 PHP on Windows Azure 開発のポ゗ン
 トを理解する

 さらなる活用に向けて

                               27
PHP アプリ開発全体像
                        テキスト
                      エデゖターなど




    アプリケーション
      パッケージ
               Windows Azure SDK

    アプリケーション
      パッケージ
                Windows Azure
                   ポータル


                Windows Azure
                   ポータル         28
PHP アプリ開発環境
~ Windows Azure 専用の設定フゔ゗ルとパッケージ ~
  サービス定義ファイル                     動的変更不可
   ServiceDefinition.csdef      ロール、プロトコル、
                                   ポート 等


  サービス構成ファイル                    動的変更可能
                                ゗ンスタンス数、
   ServiceConfiguration.cscfg   Storage ゕカウント等


  サービスパッケージファイル                 PHP の exe フゔ゗ル、
   XXX.cspkg                    作成したPHPゕプリ




                                             29
PHP アプリ開発環境
~ パッケージ化するためのツール群 ~
 cspack.exe
  Windows Azure SDK のコマンド


 Visual Studio
  Windows Azure Tools for Microsoft Visual Studio


 Eclipse
  Windows Azure tools for Eclipse




                                                    30
Demo



       31
デバッグ環境
~ Windows Azure シミュレーション環境 ~



   Windows Azure シミュレーション環境

   Development Fabric   Development
                        Storage




                                      32
Demo



       33
PHP アプリ開発環境
~ Azure Storage へのゕクセス ~

 Windows Azure SDK for PHP
  Azure Storage へ簡単ゕクセス


 Zend Framework 1.10
  Zend_Service_WindowsAzure コンポーネントが提供
  されており Azure Storage へ簡単ゕクセス

 Windows Azure Storage Explorer
  Azure Storage 用エクスプローラー


                                     34
Demo



       35
Agenda

 クラウドの基本をおさらい (一般論)

 Windows Azure を理解する

 PHP on Windows Azure 開発のポ゗ン
 トを理解する

 さらなる活用に向けて

                               36
アクセラレーター
~ MySQL 、CMS の利用を容易に ~

 Windows Azure   PHP Solution
 Accelerator

 Windows Azure      MySQL Solution
 Accelerator

 Windows Azure        Solution
 Accelerator




                                     37
MySQL PHP Solution Accelerator
 Worker Role として MySQL を起動
   常駐させ、それを Web Role から利用



    ゗ンターネット


                         MySQL
                       (Worker Role)
MySQL PHP Solution Accelerator
  カスタマ゗ズにより MySQL の冗長化が可能



   ゗ンターネット
                      MySQL Master
                      (Worker Role)




                        MySQL Slave
                       (Worker Role)
Demo



       40
MediaWiki Solution Accelerator
  MediaWiki のバックエンドに、MySQL と
  Memcached を冗長化構成で利用



  ゗ンターネット
                       Memcached
                       (Worker Role)


  ゗ンターネット
PHP on Windows Azure ガイドライン




 http://msdn.microsoft.com/ja-jp/azure/ff394366.aspx
まとめ
クラウドの基本をおさらい (一般論)

Windows Azure を理解する

PHP on Windows Azure 開発のポ゗ントを理解
する

さらなる活用に向けて



                             43
タダで Windows Azure を使い倒す

  初期特別             MSDN         BizSpark
  プラン           サブスクリプション       への加入

 誰でも使えるお試        MSDN購読特典で     スタートゕップ企業
 しプラン            Azureが実質1゗ン   なら、マ゗クロソフ
                 スタンス使い放題      トの支援プログラム
 クレジットカード        (8ヶ月間)        に加入できる
 の登録は必要
                 会社でMSDN購読し    加入するともれなく
 やろうと思えば         ていて誰もAzure    MSDNがついてくる。
 Live IDをたくさん    使っていなければ      すなわちAzure利用
 用意して…           手を回してゲット      権付き


 25時間/月まで       750時間/月まで        MSDNが
    0円              0円          ついてくる


                                             44
Windows Azure を使う時の注意点
~ 課金の原則 ~

            CPU使用率は関係なく占有
            したデプロ゗時間で課金
            Runしてなくてもデプロ゗
            すれば(削除しない限り)
            課金発生
            ステージングも同じレート
            最小単位は1時間




                        45
リソース情報
Windows Azure Portal(日本語)
 http://www.microsoft.com/japan/WindowsAzure/


Windows Azure Interoperability (日本語)
 http://www.microsoft.com/japan/windowsazure/interop/


Windows Azure Tools for Eclipse (英語)
 http://www.windowsazure4e.org/




                                                        46
Appendix



           47
マ゗クロソフトのデータセンター




                  48
ファブリック:
大規模データセンターと最新鋭管理技術




                     49
Windows Azure Platform
~ PDC 08で発表、PDC 09 で提供開始~
             スケーラブルなクラウド環境に
             最適化された専用OS
             ハードウェゕや自動運用管理を含めた
             サービスとして提供


             クラウド環境で利用できるRDBMS
             既存のSQLゕプリケーションの展開が容易
             自動で運用管理されるため高度なスキル
             を持つDBAの確保は不要

             クラウドのエンタープラ゗ズ利用で必要
             となる認証とメッセージング機能を提供
             SOA化された資産があれば、クラウドを
             介したさらなる有効活用が可能

                                   50
Why クラウド?
~ 開発者にとっての価値はスケーラビリテゖ ~
           • ハードウェゕやOSの購買、゗ンフラ構築費用が不要
 初期投資
           • 費用として支払うため、資産計上しなくて済む


           • すぐにゕプリの開発、利用が可能になる
 スピード
           • 新規事業などの変化の早いニーズに対応


           • システム管理業務をすべてゕウトソース、パッチ適用も自動化
   運用
           • 遠隔地での冗長化で事業継続性を確保


           • 従量制課金であるため、必要がなくなれば、容易に停止可能
 短期利用
           • キャンペーンサ゗トや頻度の少ないバッチ処理に有効


           • スケーラブルな基盤設計要求からスキルの高い技術者を解放
スケーラビリテゖ
           • 所有が不可能な規模に、理論上無限の拡張が可能


                                            51
Content Delivery Network
 Windows Azure BLOB Storage に対応
 最小限のネットワーク ホップ数で効率的にロード
 現在 CTP




                           Web サーバー
            エッジ キャッシュ
              サーバー
Announcing New Feature … in PDC09
~ Windows Azure Virtual Machine Role ~
 新たな Virtual Machine ロールタ゗プ
 クラウドへの容易なゕプリケーション移行
 Windows Azure 上で幅広いWindows ゕプリケー
  ションの動作可能




                                         53
54
55

PHP on Windows Azure

  • 1.
    マイクロソフト株式会社 デベロッパー エバンジェリスト 井上大輔 (daisukei@microsoft.com) Blog http://blogs.msdn.com/daisukei/ Twitter http://twitter.com/daisukei777 1
  • 2.
    Agenda クラウドの基本をおさらい (一般論) Windows Azure を理解する PHP on Windows Azure 開発のポ゗ン トを理解する さらなる活用に向けて 2
  • 3.
    Agenda クラウドの基本をおさらい (一般論) Windows Azure を理解する PHP on Windows Azure 開発のポ゗ン トを理解する さらなる活用に向けて 3
  • 4.
    クラウドを身近な物で例えると  コスト  コスト 車代+駐車場+保険+税金+ 利用した分だけ料金を払う 車検+ガソリン代  道があればどこでも行くことができる  駅から駅へ行くことができる 低 規模の経済 高 高 コントロール 低
  • 5.
  • 6.
    クラウドのメリット 所有はしない。 スケールゕウト 利用しただけ支 マーケットへの 対応が迅速 やスケールダウ 払い。メンテ コ ンが容易 ストも削減。 6
  • 7.
    クラウドの真価はスケーラビリティ ~ 真価を発揮する4つのパターン ~ “On と Off “急速な成長“ “ トラフィック トラフィック 稼働不要な 時期 時間 時間 “予測不能な使用増“ “周期的な使用増“ トラフィック トラフィック 時間 時間 7
  • 8.
    (1) 予測不能な使用増 トラフィック 時間 8
  • 9.
    (1) 予測不能な使用増 ゕクセスの予想が できないキャン ペーンサ゗ト トラフィック ゲームサ゗トなど の初公開時 時間 9
  • 10.
  • 11.
    (2) 周期的な使用増 オリンピックなど 特定゗ベントに関 連するサ゗ト トラフィック セール時のショッ ピング サ゗ト 時間 旅行サ゗ト 11
  • 12.
  • 13.
    (3) 急速な成長 ベンチャー企業の SaaS 部門内利用から全 トラフィック 社利用への展開 時間 13
  • 14.
    (4) On とOff 稼働不要な トラフィック 時期 時間 14
  • 15.
    (4) On とOff バッチ処理 期間限定キャンペーン 稼働不要な サ゗ト トラフィック 時期 スキー場などの特定季 時間 節のみのサ゗ト 学術機関での解析作業 15
  • 16.
    クラウドの提供形態 ユーザが準備するもの 事業者側が提供するもの カスタマイズ アプリ アプリ アプリ OS+ミドル OS+(ミドル) OS+ミドル ハードウェア ハードウェア ハードウェア ネットワーク ネットワーク ネットワーク SaaS PaaS IaaS 完成品の 開発・実行環境となる ハードウェアを提供 ソフトウェアを提供 プラットフォームを提供 16
  • 17.
    Agenda クラウドの基本をおさらい (一般論) Windows Azure を理解する PHP on Windows Azure 開発のポ゗ン トを理解する さらなる活用に向けて 17
  • 18.
    Windows Azure ~ スケーラブルなクラウドOS ~ 仮想化技術で大規 模データセンター のサーバー群を制 御し、高い可用性 とスケーラビリ テゖを実現 ゕプリ、ミドルウェゕ実行環境 信頼性の高いストレージ 18
  • 19.
    Windows Azure ~ Compute~ • Web ゕプリ 実行環境 Web Role • IIS (FastCGI サポート)がベース • MySQL などのミドルウェゕを実行 Worker Role • バッチ ジョブのような処理を実行 ※各 Role 毎に゗ンスタンス数は 動的にいつでも増減可能 19
  • 20.
    Windows Azure ~内部構成 ~ バックエンドで HTTP/HTTPS の処理が基本形 インター ネット Worker LB Role Worker Role Port 25 Storage ※ 任意のTCPポートで通信可能 20
  • 21.
    Windows Azure ~ Storage~ • Table = Key Value ストゕ Azure • BLOB = 大容量バ゗ナリ格納 Storage • QUEUE = メッセージ キュー Azure • クラウド上の NTFS サービス Drive • 将来提供予定(現在 β) ※ ほぼ無尽蔵にストレージ領域を利用可能 21
  • 22.
  • 23.
  • 24.
    開催日 2009年11月 24
  • 25.
    基調講演 で PHPon Windows Azure ~ WordPress 創始者 Matt Mullenweg ~ ストリーミング:http://microsoftpdc.com/Sessions/KEY01 25
  • 26.
    PHP サーバープラットフォーム の比較 従来の サーバー Windows Azure プラットフォーム プラットフォーム PHP アプリ PHP アプリ Web IIS Apache Web Role (IIS) サーバー ※ Fast CGI サポート DB SQL Server MySQL Worker Role (MySQL) Windows Linux OS Server Azure Azure NTFS FS Storage Drive Windows VMware Virtual Hyper-V ESX Server … … 自社内、ホステゖングなど マ゗クロソフト の データセンター 26
  • 27.
    Agenda クラウドの基本をおさらい (一般論) Windows Azure を理解する PHP on Windows Azure 開発のポ゗ン トを理解する さらなる活用に向けて 27
  • 28.
    PHP アプリ開発全体像 テキスト エデゖターなど アプリケーション パッケージ Windows Azure SDK アプリケーション パッケージ Windows Azure ポータル Windows Azure ポータル 28
  • 29.
    PHP アプリ開発環境 ~ WindowsAzure 専用の設定フゔ゗ルとパッケージ ~ サービス定義ファイル 動的変更不可 ServiceDefinition.csdef ロール、プロトコル、 ポート 等 サービス構成ファイル 動的変更可能 ゗ンスタンス数、 ServiceConfiguration.cscfg Storage ゕカウント等 サービスパッケージファイル PHP の exe フゔ゗ル、 XXX.cspkg 作成したPHPゕプリ 29
  • 30.
    PHP アプリ開発環境 ~ パッケージ化するためのツール群~ cspack.exe Windows Azure SDK のコマンド Visual Studio Windows Azure Tools for Microsoft Visual Studio Eclipse Windows Azure tools for Eclipse 30
  • 31.
  • 32.
    デバッグ環境 ~ Windows Azureシミュレーション環境 ~ Windows Azure シミュレーション環境 Development Fabric Development Storage 32
  • 33.
  • 34.
    PHP アプリ開発環境 ~ AzureStorage へのゕクセス ~ Windows Azure SDK for PHP Azure Storage へ簡単ゕクセス Zend Framework 1.10 Zend_Service_WindowsAzure コンポーネントが提供 されており Azure Storage へ簡単ゕクセス Windows Azure Storage Explorer Azure Storage 用エクスプローラー 34
  • 35.
  • 36.
    Agenda クラウドの基本をおさらい (一般論) Windows Azure を理解する PHP on Windows Azure 開発のポ゗ン トを理解する さらなる活用に向けて 36
  • 37.
    アクセラレーター ~ MySQL 、CMSの利用を容易に ~ Windows Azure PHP Solution Accelerator Windows Azure MySQL Solution Accelerator Windows Azure Solution Accelerator 37
  • 38.
    MySQL PHP SolutionAccelerator Worker Role として MySQL を起動 常駐させ、それを Web Role から利用 ゗ンターネット MySQL (Worker Role)
  • 39.
    MySQL PHP SolutionAccelerator カスタマ゗ズにより MySQL の冗長化が可能 ゗ンターネット MySQL Master (Worker Role) MySQL Slave (Worker Role)
  • 40.
  • 41.
    MediaWiki Solution Accelerator MediaWiki のバックエンドに、MySQL と Memcached を冗長化構成で利用 ゗ンターネット Memcached (Worker Role) ゗ンターネット
  • 42.
    PHP on WindowsAzure ガイドライン http://msdn.microsoft.com/ja-jp/azure/ff394366.aspx
  • 43.
    まとめ クラウドの基本をおさらい (一般論) Windows Azureを理解する PHP on Windows Azure 開発のポ゗ントを理解 する さらなる活用に向けて 43
  • 44.
    タダで Windows Azureを使い倒す 初期特別 MSDN BizSpark プラン サブスクリプション への加入 誰でも使えるお試 MSDN購読特典で スタートゕップ企業 しプラン Azureが実質1゗ン なら、マ゗クロソフ スタンス使い放題 トの支援プログラム クレジットカード (8ヶ月間) に加入できる の登録は必要 会社でMSDN購読し 加入するともれなく やろうと思えば ていて誰もAzure MSDNがついてくる。 Live IDをたくさん 使っていなければ すなわちAzure利用 用意して… 手を回してゲット 権付き 25時間/月まで 750時間/月まで MSDNが 0円 0円 ついてくる 44
  • 45.
    Windows Azure を使う時の注意点 ~課金の原則 ~ CPU使用率は関係なく占有 したデプロ゗時間で課金 Runしてなくてもデプロ゗ すれば(削除しない限り) 課金発生 ステージングも同じレート 最小単位は1時間 45
  • 46.
    リソース情報 Windows Azure Portal(日本語) http://www.microsoft.com/japan/WindowsAzure/ Windows Azure Interoperability (日本語) http://www.microsoft.com/japan/windowsazure/interop/ Windows Azure Tools for Eclipse (英語) http://www.windowsazure4e.org/ 46
  • 47.
  • 48.
  • 49.
  • 50.
    Windows Azure Platform ~PDC 08で発表、PDC 09 で提供開始~ スケーラブルなクラウド環境に 最適化された専用OS ハードウェゕや自動運用管理を含めた サービスとして提供 クラウド環境で利用できるRDBMS 既存のSQLゕプリケーションの展開が容易 自動で運用管理されるため高度なスキル を持つDBAの確保は不要 クラウドのエンタープラ゗ズ利用で必要 となる認証とメッセージング機能を提供 SOA化された資産があれば、クラウドを 介したさらなる有効活用が可能 50
  • 51.
    Why クラウド? ~ 開発者にとっての価値はスケーラビリテゖ~ • ハードウェゕやOSの購買、゗ンフラ構築費用が不要 初期投資 • 費用として支払うため、資産計上しなくて済む • すぐにゕプリの開発、利用が可能になる スピード • 新規事業などの変化の早いニーズに対応 • システム管理業務をすべてゕウトソース、パッチ適用も自動化 運用 • 遠隔地での冗長化で事業継続性を確保 • 従量制課金であるため、必要がなくなれば、容易に停止可能 短期利用 • キャンペーンサ゗トや頻度の少ないバッチ処理に有効 • スケーラブルな基盤設計要求からスキルの高い技術者を解放 スケーラビリテゖ • 所有が不可能な規模に、理論上無限の拡張が可能 51
  • 52.
    Content Delivery Network Windows Azure BLOB Storage に対応 最小限のネットワーク ホップ数で効率的にロード 現在 CTP Web サーバー エッジ キャッシュ サーバー
  • 53.
    Announcing New Feature… in PDC09 ~ Windows Azure Virtual Machine Role ~  新たな Virtual Machine ロールタ゗プ  クラウドへの容易なゕプリケーション移行  Windows Azure 上で幅広いWindows ゕプリケー ションの動作可能 53
  • 54.
  • 55.