PHP on Windows Azure

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

Transcript of PHP on Windows Azure

Page 1: PHP on Windows Azure

1

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

Page 2: PHP on Windows Azure

2

Agenda

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

Windows Azure を理解する

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

さらなる活用に向けて

Page 3: PHP on Windows Azure

3

Agenda

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

Windows Azure を理解する

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

さらなる活用に向けて

Page 4: PHP on Windows Azure

規模の経済 低 高

コントロール 高 低

コスト 車代+駐車場+保険+税金+ 車検+ガソリン代

道があればどこでも行くことができる

コスト 利用した分だけ料金を払う

駅から駅へ行くことができる

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

Page 5: PHP on Windows Azure

5

クラウドとは

ンターネットをベースとしたコンピュータの利用形態

所有から利用へ

大規模データセンターがバックボーン

ンターネット

Page 6: PHP on Windows Azure

6

所有はしない。利用しただけ支払い。メンテ コストも削減。

マーケットへの対応が迅速

スケールゕウトやスケールダウ

ンが容易

クラウドのメリット

Page 7: PHP on Windows Azure

7

クラウドの真価はスケーラビリティ ~ 真価を発揮する4つのパターン ~

トラフィック

時間

稼働不要な

時期

“On と Off “

時間

“予測不能な使用増“

トラフィック

時間

“周期的な使用増“

トラフィック

時間

“急速な成長“

トラフィック

Page 8: PHP on Windows Azure

8

(1) 予測不能な使用増

時間

トラフィック

Page 9: PHP on Windows Azure

9

(1) 予測不能な使用増

ゕクセスの予想ができないキャンペーンサト

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

時間

トラフィック

Page 10: PHP on Windows Azure

10

(2) 周期的な使用増

時間

トラフィック

Page 11: PHP on Windows Azure

11

(2) 周期的な使用増

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

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

旅行サト

時間

トラフィック

Page 12: PHP on Windows Azure

12

(3) 急速な成長

時間

トラフィック

Page 13: PHP on Windows Azure

13

(3) 急速な成長

ベンチャー企業の SaaS

部門内利用から全社利用への展開

時間

トラフィック

Page 14: PHP on Windows Azure

14

(4) On と Off

トラフィック

時間

稼働不要な

時期

Page 15: PHP on Windows Azure

15

(4) On と Off トラフィック

時間

稼働不要な

時期

バッチ処理 期間限定キャンペーン サト スキー場などの特定季節のみのサト 学術機関での解析作業

Page 16: PHP on Windows Azure

16

IaaS ハードウェアを提供

PaaS 開発・実行環境となる プラットフォームを提供

SaaS 完成品の

ソフトウェアを提供

ネットワーク

ハードウェア

OS+ミドル

アプリ

ネットワーク

ハードウェア

OS+(ミドル)

ネットワーク

ハードウェア

アプリ

OS+ミドル

アプリ カスタマイズ

ユーザが準備するもの

事業者側が提供するもの

クラウドの提供形態

Page 17: PHP on Windows Azure

17

Agenda

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

Windows Azure を理解する

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

さらなる活用に向けて

Page 18: PHP on Windows Azure

18

Windows Azure ~ スケーラブルなクラウド OS ~

仮想化技術で大規模データセンターのサーバー群を制御し、高い可用性とスケーラビリテゖを実現

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

Page 19: PHP on Windows Azure

19

Windows Azure ~ Compute ~

• Web ゕプリ 実行環境

• IIS (FastCGI サポート)がベース Web Role

• MySQL などのミドルウェゕを実行

• バッチ ジョブのような処理を実行 Worker Role

※各 Role 毎にンスタンス数は

動的にいつでも増減可能

Page 20: PHP on Windows Azure

20

Windows Azure ~ 内部構成 ~

Worker Role

Worker Role

LB

Storage

Port 25

HTTP/HTTPS

※ 任意のTCPポートで通信可能

バックエンドで

の処理が基本形 インターネット

Page 21: PHP on Windows Azure

21

Windows Azure ~ Storage ~

• Table = Key Value ストゕ

• BLOB = 大容量バナリ格納

• QUEUE = メッセージ キュー

Azure

Storage

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

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

Azure

Drive

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

Page 22: PHP on Windows Azure

22

Azure Video …

Page 23: PHP on Windows Azure

23

Demo

Page 24: PHP on Windows Azure

24

開催日 2009年11月

Page 25: PHP on Windows Azure

25

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

ストリーミング:http://microsoftpdc.com/Sessions/KEY01

Page 26: PHP on Windows Azure

26

Web サーバー

Virtual

Windows Server

Linux

PHP サーバープラットフォーム の比較

DB MySQL SQL Server

Apache IIS

従来の サーバー プラットフォーム

VMware ESX Server

Windows Hyper-V

PHP アプリ

自社内、ホステゖングなど

PHP アプリ

Worker Role (MySQL)

Web Role (IIS) ※ Fast CGI サポート

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

Windows Azure プラットフォーム

Azure Drive

Azure Storage NTFS FS

OS

Page 27: PHP on Windows Azure

27

Agenda

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

Windows Azure を理解する

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

さらなる活用に向けて

Page 28: PHP on Windows Azure

28

PHP アプリ開発全体像

アプリケーション パッケージ

Windows Azure SDK

Windows Azure ポータル

Windows Azure ポータル

アプリケーション パッケージ

テキスト エデゖターなど

Page 29: PHP on Windows Azure

29

PHP アプリ開発環境 ~ Windows Azure 専用の設定フゔルとパッケージ ~

サービス定義ファイル ServiceDefinition.csdef

サービス構成ファイル

ServiceConfiguration.cscfg

サービスパッケージファイル XXX.cspkg

動的変更不可 ロール、プロトコル、

ポート 等

動的変更可能 ンスタンス数、Storage ゕカウント等

PHP の exe フゔル、作成したPHPゕプリ

Page 30: PHP on Windows Azure

30

PHP アプリ開発環境 ~ パッケージ化するためのツール群 ~

cspack.exe Windows Azure SDK のコマンド

Visual Studio Windows Azure Tools for Microsoft Visual Studio

Eclipse Windows Azure tools for Eclipse

Page 31: PHP on Windows Azure

31

Demo

Page 32: PHP on Windows Azure

32

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

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

Development Fabric Development Storage

Page 33: PHP on Windows Azure

33

Demo

Page 34: PHP on Windows Azure

34

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 用エクスプローラー

Page 35: PHP on Windows Azure

35

Demo

Page 36: PHP on Windows Azure

36

Agenda

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

Windows Azure を理解する

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

さらなる活用に向けて

Page 37: PHP on Windows Azure

37

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

Windows Azure PHP Solution Accelerator

Windows Azure MySQL Solution Accelerator

Windows Azure Solution Accelerator

Page 38: PHP on Windows Azure

MySQL PHP Solution Accelerator

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

MySQL (Worker Role)

ンターネット

Page 39: PHP on Windows Azure

MySQL PHP Solution Accelerator

カスタマズにより MySQL の冗長化が可能

MySQL Master (Worker Role)

MySQL Slave (Worker Role)

ンターネット

Page 40: PHP on Windows Azure

40

Demo

Page 41: PHP on Windows Azure

MediaWiki Solution Accelerator

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

Memcached (Worker Role)

ンターネット

ンターネット

Page 42: PHP on Windows Azure

PHP on Windows Azure ガイドライン

http://msdn.microsoft.com/ja-jp/azure/ff394366.aspx

Page 43: PHP on Windows Azure

43

まとめ

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

Windows Azure を理解する

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

さらなる活用に向けて

Page 44: PHP on Windows Azure

44

タダで Windows Azure を使い倒す

誰でも使えるお試しプラン

クレジットカードの登録は必要

やろうと思えばLive IDをたくさん用意して…

MSDN購読特典でAzureが実質1ンスタンス使い放題 (8ヶ月間)

会社でMSDN購読していて誰もAzure使っていなければ 手を回してゲット

25時間/月まで 0 円

MSDNが ついてくる

750時間/月まで 0 円

スタートゕップ企業なら、マクロソフトの支援プログラムに加入できる

加入するともれなくMSDNがついてくる。すなわちAzure利用権付き

MSDN

サブスクリプション BizSpark への加入

初期特別

プラン

Page 45: PHP on Windows Azure

45

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

CPU使用率は関係なく占有したデプロ時間で課金

Runしてなくてもデプロすれば(削除しない限り)課金発生

ステージングも同じレート

最小単位は1時間

Page 46: PHP on Windows Azure

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/

Page 47: PHP on Windows Azure

47

Appendix

Page 48: PHP on Windows Azure

48

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

Page 49: PHP on Windows Azure

49

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

Page 50: PHP on Windows Azure

50

Windows Azure Platform ~ PDC 08で発表、PDC 09 で提供開始~

スケーラブルなクラウド環境に 最適化された専用OS

ハードウェゕや自動運用管理を含めた サービスとして提供

クラウド環境で利用できるRDBMS

既存のSQLゕプリケーションの展開が容易

自動で運用管理されるため高度なスキルを持つDBAの確保は不要

クラウドのエンタープラズ利用で必要となる認証とメッセージング機能を提供

SOA化された資産があれば、クラウドを 介したさらなる有効活用が可能

Page 51: PHP on Windows Azure

51

Why クラウド? ~ 開発者にとっての価値はスケーラビリテゖ ~

•ハードウェゕやOSの購買、ンフラ構築費用が不要

•費用として支払うため、資産計上しなくて済む 初期投資

•すぐにゕプリの開発、利用が可能になる

•新規事業などの変化の早いニーズに対応 スピード

•システム管理業務をすべてゕウトソース、パッチ適用も自動化

•遠隔地での冗長化で事業継続性を確保 運用

•従量制課金であるため、必要がなくなれば、容易に停止可能

•キャンペーンサトや頻度の少ないバッチ処理に有効 短期利用

•スケーラブルな基盤設計要求からスキルの高い技術者を解放

•所有が不可能な規模に、理論上無限の拡張が可能 スケーラビリテゖ

Page 52: PHP on Windows Azure

Content Delivery Network

Windows Azure BLOB Storage に対応

最小限のネットワーク ホップ数で効率的にロード

現在 CTP

Web サーバー

エッジ キャッシュ サーバー

Page 53: PHP on Windows Azure

53

Announcing New Feature … in PDC09 ~ Windows Azure Virtual Machine Role ~

新たな Virtual Machine ロールタプ

クラウドへの容易なゕプリケーション移行

Windows Azure 上で幅広いWindows ゕプリケーションの動作可能

Page 54: PHP on Windows Azure

54

Page 55: PHP on Windows Azure

55