狠狠撸

狠狠撸Share a Scribd company logo
Windows Azure で LL 言語系 Web アプリケーション開発 はてな  田中 慎司 stanaka @ hatena.ne.jp http://d.hatena.ne.jp/stanaka/ http://twitter.com/stanaka/
アジェンダ Azure とは GAE/AWS と比較 試してみた Hello World 級 PHP on Azure PHP & MySQL on Azure Mediawiki on Azure
スペック 基本的に Linux 系 いわゆる  LAMP スタック Linux, Apache, MySQL, Perl IDE は使わない Windows との接点 メインのノート PC は Windows VB, C# は知っている COM コンポーネントは一度書いたことがある VisualStudio
今日のテーマ LL 系言語エンジニアからの視点 クラウドサービスでの Azure の位置付け Azure – AWS – GAE Azure の勘所 とりあえず動かしてみる
Azure とは Microsoft によるクラウドサービス アプリケーションの動作サービス (Windows Azure) ネットワークサービス (.NET Services) クラウドの RDB(SQL Azure)
Windows Azure Windows Azure Compute Web Role Worker Role Windows Azure Storage  BLOB Table Queue Drive
Role Web Role ウェブアプリケーション向け IIS .NET Framework Worker Role バッチ処理向け 普通の TCP 通信もできる .NET Framework
Storage BLOB メディアイメージ HTTP REST でアクセス Table BigTable 的 DB Queue メッセージキュー Drive( 未リリース ?) NTFS ドライブ
Amazon Web Services EC2 IA サーバ環境を提供 時間貸しレンタルサーバ ストレージ S3 CloudFront サービス Elastic Block Storage Relational Database Service SimpleDB Simple Queue Service
Google Application Engine 自動的にスケールする 柔軟なデータストア (BigTable) サービス URL フェッチ メール Memcache 画像操作 cron XMPP 通信
Google Application Engine の制約 言語の制約 Python/Java のみ 処理機能の制約 サーブレットによる 30 秒以上を要するリクエスト処理 サーブレットによるレスポンス送出時のデータストリーミング ファイルシステムへの書き込み 外部サーバーへのソケット接続 VM 機能の制約 スレッド生成 ガベージコレクション実行やシステム停止 カスタムクラス?ローダの利用
Windows Azure の特性 EC2 と GAE の中間 インスタンスは意識する ただし各インスタンスの直接制御はできない .NET が基本だが、ネイティブアプリも動作 C/C++ のコードも動く 言語処理系を上げてしまえば、なんでも動く !! MySQL/memcached も動く
開発環境 VisualStudio Microsoft Visual Web Developer 2008 Express Edition Eclipse Azure SDK
Azure Platform Interoperability Windows Azure Tools for Eclipse PHP / Java などとの Interoperability にも注力 http://www.microsoft.com/windowsazure/interop/
Azure の開発フロー Visual Studio / Eclipse で開発 ビルドも ローカルテスト環境にデプロイ Azure にデプロイ Staging で確認 Prodution に展開
LL 言語系 Web 屋から観点 .NET の世界 C# という言語がある IIS ってなんだ Internet Information Services IDE に抵抗がある 統合開発環境 Eclipse / Visual Studio
Azure への期待 クラウドプレイヤーの増加 AWS vs GAE vs Azure 競争促進 ロックインの排除 アプリレイヤーとクラウドレイヤーの疎結合化 Azure は、 GAE ほど極端ではない
Azure の開発フロー (LL 言語向け ) Emacs / vi で開発 コマンドラインでビルド IDE だとよく分からない
簡単な Azure アプリ /ProjectRoot/ WebRole/ index.html simple.csdef .. クラウド?サービス定義ファイル simple.cscfg .. クラウド?サービス構成ファイル
簡単な Azure アプリ simple.csdef  クラウド?サービス定義ファイル <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <ServiceDefinition name=&quot;Simple&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition&quot;> <WebRole name=&quot;WebRole&quot;> <ConfigurationSettings>  </ConfigurationSettings> <InputEndpoints> <!-- Must use port 80 for http and port 443 for https when running in the cloud --> <InputEndpoint name=&quot;HttpIn&quot; protocol=&quot;http&quot; port=&quot;80&quot; /> </InputEndpoints> </WebRole> </ServiceDefinition>
簡単な Azure アプリ simple.cscfg  クラウド?サービス構成ファイル <?xml version=&quot;1.0&quot;?> <ServiceConfiguration serviceName=&quot;Simple&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration&quot;> <Role name=&quot;WebRole&quot;> <Instances count=&quot;1&quot;/> <ConfigurationSettings>  </ConfigurationSettings> </Role> </ServiceConfiguration>
簡単な Azure アプリ index.html <html> <head><title>Quick Sample</title></head> <body> This a quick sample. <br /> <img alt=&quot;Sample Photo&quot; src=/slideshow/using-windows-azure/3519567/&quot;photo.jpg&quot; /> </body> </html>
簡単な Azure アプリ ビルド デプロイ >cspack simple.csdef /copyonly Windows(R) Azure(TM) Packaging Tool version 1.0.0.0 for Microsoft(R) .NET Framework 3.5 Copyright (c) Microsoft Corporation. All rights reserved.  >csrun simple.csx simple.cscfg Windows(R) Azure(TM) Desktop Execution Tool version 1.0.0.0 for Microsoft(R) .NET Framework 3.5 Copyright (c) Microsoft Corporation. All rights reserved. Using session id 1 Created deployment(34) Started deployment(34) Deployment input endpoint HttpIn of role WebRole at http://127.0.0.1:82/
簡単な Azure アプリ 开発环境にデプロイ
簡単な Azure アプリ 動作 !
簡単な Azure アプリ 本番
PHP on Azure PHP の言語処理系 (php.exe) を Azure 上に送りこむ ネイティブコードサポート !
PHP on Azure /ProjectRoot/ WebRole/ index.php web.config simple.csdef .. クラウド?サービス定義ファイル simple.cscfg .. クラウド?サービス構成ファイル
PHP on Azure phpsimple.csdef  クラウド?サービス定義ファイル <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <ServiceDefinition name=&quot;phpsimple&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition&quot;> <WebRole name=&quot;WebRole&quot;  enableNativeCodeExecution=&quot;true“ > <ConfigurationSettings>  </ConfigurationSettings> <InputEndpoints> <!-- Must use port 80 for http and port 443 for https when running in the cloud --> <InputEndpoint name=&quot;HttpIn&quot; protocol=&quot;http&quot; port=&quot;80&quot; /> </InputEndpoints> </WebRole> </ServiceDefinition>
PHP on Azure phpsimple.cscfg  クラウド?サービス構成ファイル <?xml version=&quot;1.0&quot;?> <ServiceConfiguration serviceName=&quot;phpsimple&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration&quot;> <Role name=&quot;WebRole&quot;> <Instances count=&quot;1&quot;/> <ConfigurationSettings>  </ConfigurationSettings> </Role> </ServiceConfiguration>
PHP on Azure index.php <html> <head><title>Hello World PHP</title></head> <body> <?php echo 'Today is '. date('Y-m-d') .&quot;\n&quot;; ?>  </body> </html>
PHP on Azure web.config <?xml version=&quot;1.0&quot;?> <configuration> <system.webServer> <handlers> <add name=&quot;FastCGIHandler&quot; verb=&quot;*&quot; path=&quot;*.php&quot; scriptProcessor=&quot;%RoleRoot%\approot\PHP\php-cgi.exe&quot; modules=&quot;FastCgiModule&quot; resourceType=&quot;Unspecified&quot; /> </handlers> <defaultDocument> <files> <add value=&quot;index.php&quot;/> </files> </defaultDocument> </system.webServer> </configuration>
PHP on Azure web.roleconfig <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> <configuration> <system.webServer> <fastCgi> <application fullPath=&quot;%RoleRoot%\approot\PHP\php-cgi.exe&quot; /> </fastCgi> </system.webServer> </configuration>
PHP on Azure ビルド デプロイ >cspack phpsimple.csdef /copyonly Windows(R) Azure(TM) Packaging Tool version 1.0.0.0 for Microsoft(R) .NET Framework 3.5 Copyright (c) Microsoft Corporation. All rights reserved.  >csrun phpsimple.csx phpsimple.cscfg Windows(R) Azure(TM) Desktop Execution Tool version 1.0.0.0 for Microsoft(R) .NET Framework 3.5 Copyright (c) Microsoft Corporation. All rights reserved. Using session id 1 Created deployment(32) Started deployment(32) Deployment input endpoint HttpIn of role WebRole at http://127.0.0.1:82/
PHP on Azure 开発环境にデプロイ
PHP on Azure 動作 !
PHP & MySQL on Azure Windows Azure MySQL PHP Solution Accelerator http://code.msdn.microsoft.com/winazuremysqlphp MySQL php.exe に加え、 mysql.exe も送りこむ Worker Role で mysql のインスタンスを起動させる
PHP & MySQL on Azure Windows Azure MySQL PHP Solution Accelerator をダウンロード?展開 PHP, MySQL, PHPMyAdmin などを詰め込む ディレクトリ構成
MySQL を WorkerRole で動かす LocalStorage を定義  (ServiceDefinition.csdef) <LocalResources> <LocalStorage name=&quot;InstMgrLocalStorage&quot; sizeInMB=&quot;75&quot; cleanOnRoleRecycle=&quot;false&quot; /> <LocalStorage name=&quot;MySQL&quot; sizeInMB=&quot;75&quot; cleanOnRoleRecycle=&quot;false&quot; /> <LocalStorage name=&quot;MySQLDatastore&quot; sizeInMB=&quot;122880&quot; cleanOnRoleRecycle=&quot;false&quot; /> <LocalStorage name=&quot;BlobBackup&quot; sizeInMB=&quot;2&quot; cleanOnRoleRecycle=&quot;false&quot; /> </LocalResources>
MySQL を WorkerRole で動かす Wrapper で指定  (MySQLAccess.cs) public bool Start(int id) { try { string baseDir = RoleEnvironment.GetLocalResource(&quot;MySQL&quot;).RootPath.Replace('\\', '/'); string dataDir = RoleEnvironment.GetLocalResource(&quot;MySQLDatastore&quot;).RootPath.Replace('\\', '/'); string blobDir = RoleEnvironment.GetLocalResource(&quot;BlobBackup&quot;).RootPath.Replace('\\', '/'); … File.Copy(&quot;my.ini&quot;, iniFile, true); //update teh my.ini file with mysql server details UpdateMyIni(iniFile, baseDir, dataDir, port, id.ToString());
PHP & MySQL on Azure
PHP & MySQL on Azure
Mediawiki on Azure Windows Azure Mediawiki MySQL Solution Accelerator http://code.msdn.microsoft.com/winazuremediawiki 基本的には、  Windows Azure MySQL PHP Solution Accelerator と同等
Mediawiki on Azure memcached を動かす MySQL と同様に Worker Role + C# の Wrapper protected void RunMemcached() { IPEndPoint endpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[&quot;memcached&quot;].IPEndpoint; string cacheSize = RoleEnvironment.GetConfigurationSettingValue(&quot;CacheSizeInMB&quot;); string arguments = &quot;-m &quot; + cacheSize + &quot; -l &quot; + endpoint.Address + &quot; -p &quot; + endpoint.Port; ProcessStartInfo startInfo = new ProcessStartInfo(); … try { using (Process exeProcess = Process.Start(startInfo)) { exeProcess.WaitForExit();
Mediawiki on Azure
その他  Ruby on Rails on Azure FastCGI 対応のものは動かせる Ruby on Rails も http://rubyonrails.cloudapp.net
まとめ Azure を試してみた LL 系言語アプリも十分動かせる Amazon EC2 の対抗として十分なポテンシャルがありそう ただし、もうすこし UNIX-like な開発環境があると親和性が高くなる OSX な開発者もいるので ..

More Related Content

What's hot (20)

Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加するAwsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
聡 大久保
?
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews, Inc.
?
奥别产サーバ勉强会03
奥别产サーバ勉强会03奥别产サーバ勉强会03
奥别产サーバ勉强会03
oranie Narut
?
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発
Nomura Yusuke
?
中小规模サーヒ?スの础辫补肠丑别チューニンク?
中小规模サーヒ?スの础辫补肠丑别チューニンク?中小规模サーヒ?スの础辫补肠丑别チューニンク?
中小规模サーヒ?スの础辫补肠丑别チューニンク?
勲 國府田
?
ECS for Docker Meetup #4
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4
Shinpei Ohtani
?
础辫补肠丑别チューニング
础辫补肠丑别チューニング础辫补肠丑别チューニング
础辫补肠丑别チューニング
ii012014
?
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
?
Embulk 20150411
Embulk 20150411Embulk 20150411
Embulk 20150411
Hiroshi Nakamura
?
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したいAwsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
聡 大久保
?
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
?
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料
Makoto Uehara
?
颁丑别蹿と笔耻辫辫别迟の比较
颁丑别蹿と笔耻辫辫别迟の比较颁丑别蹿と笔耻辫辫别迟の比较
颁丑别蹿と笔耻辫辫别迟の比较
Sugawara Genki
?
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くするGulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
Hayashi Yuichi
?
础苍蝉颈产濒别入门...?
础苍蝉颈产濒别入门...?础苍蝉颈产濒别入门...?
础苍蝉颈产濒别入门...?
shirou wakayama
?
Webアプリケーションの パフォーマンス向上のコツ 実践編
 Webアプリケーションの パフォーマンス向上のコツ 実践編 Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 実践編
Masahiro Nagano
?
窜补产产颈虫の础笔滨を使って运用を楽しくする话
窜补产产颈虫の础笔滨を使って运用を楽しくする话窜补产产颈虫の础笔滨を使って运用を楽しくする话
窜补产产颈虫の础笔滨を使って运用を楽しくする话
Masahito Zembutsu
?
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
?
今日から使い始める颁丑别蹿
今日から使い始める颁丑别蹿今日から使い始める颁丑别蹿
今日から使い始める颁丑别蹿
Masahiro NAKAYAMA
?
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加するAwsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
聡 大久保
?
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews, Inc.
?
奥别产サーバ勉强会03
奥别产サーバ勉强会03奥别产サーバ勉强会03
奥别产サーバ勉强会03
oranie Narut
?
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発
Nomura Yusuke
?
中小规模サーヒ?スの础辫补肠丑别チューニンク?
中小规模サーヒ?スの础辫补肠丑别チューニンク?中小规模サーヒ?スの础辫补肠丑别チューニンク?
中小规模サーヒ?スの础辫补肠丑别チューニンク?
勲 國府田
?
础辫补肠丑别チューニング
础辫补肠丑别チューニング础辫补肠丑别チューニング
础辫补肠丑别チューニング
ii012014
?
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
?
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したいAwsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
聡 大久保
?
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
?
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料
Makoto Uehara
?
颁丑别蹿と笔耻辫辫别迟の比较
颁丑别蹿と笔耻辫辫别迟の比较颁丑别蹿と笔耻辫辫别迟の比较
颁丑别蹿と笔耻辫辫别迟の比较
Sugawara Genki
?
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くするGulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
Hayashi Yuichi
?
础苍蝉颈产濒别入门...?
础苍蝉颈产濒别入门...?础苍蝉颈产濒别入门...?
础苍蝉颈产濒别入门...?
shirou wakayama
?
Webアプリケーションの パフォーマンス向上のコツ 実践編
 Webアプリケーションの パフォーマンス向上のコツ 実践編 Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 実践編
Masahiro Nagano
?
窜补产产颈虫の础笔滨を使って运用を楽しくする话
窜补产产颈虫の础笔滨を使って运用を楽しくする话窜补产产颈虫の础笔滨を使って运用を楽しくする话
窜补产产颈虫の础笔滨を使って运用を楽しくする话
Masahito Zembutsu
?
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
?
今日から使い始める颁丑别蹿
今日から使い始める颁丑别蹿今日から使い始める颁丑别蹿
今日から使い始める颁丑别蹿
Masahiro NAKAYAMA
?

Viewers also liked (6)

Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
Shinji Tanaka
?
Introduction to Accumulo
Introduction to AccumuloIntroduction to Accumulo
Introduction to Accumulo
Mario Pastorelli
?
Building an API layer for C* at Coursera
Building an API layer for C* at CourseraBuilding an API layer for C* at Coursera
Building an API layer for C* at Coursera
Daniel Jin Hao Chia
?
Scala and Hadoop @ eBay
Scala and Hadoop @ eBayScala and Hadoop @ eBay
Scala and Hadoop @ eBay
ebaynyc
?
Original Server Conference
Original Server ConferenceOriginal Server Conference
Original Server Conference
Shinji Tanaka
?
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
Shinji Tanaka
?
Building an API layer for C* at Coursera
Building an API layer for C* at CourseraBuilding an API layer for C* at Coursera
Building an API layer for C* at Coursera
Daniel Jin Hao Chia
?
Scala and Hadoop @ eBay
Scala and Hadoop @ eBayScala and Hadoop @ eBay
Scala and Hadoop @ eBay
ebaynyc
?
Original Server Conference
Original Server ConferenceOriginal Server Conference
Original Server Conference
Shinji Tanaka
?

Similar to Using Windows Azure (20)

Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi
?
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david9142
?
実プロジェクトの経験から学ぶ补锄耻谤别サービス适用パターン
実プロジェクトの経験から学ぶ补锄耻谤别サービス适用パターン実プロジェクトの経験から学ぶ补锄耻谤别サービス适用パターン
実プロジェクトの経験から学ぶ补锄耻谤别サービス适用パターン
Kuniteru Asami
?
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
日本マイクロソフト株式会社
?
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
?
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
?
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
de:code 2017
?
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
Hiroshi Okunushi
?
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
?
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
Takenori Nakagawa
?
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWS
Amazon Web Services Japan
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
真吾 吉田
?
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -
Masaki Takeda
?
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Akira Inoue
?
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
?
[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション
de:code 2017
?
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi
?
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david9142
?
実プロジェクトの経験から学ぶ补锄耻谤别サービス适用パターン
実プロジェクトの経験から学ぶ补锄耻谤别サービス适用パターン実プロジェクトの経験から学ぶ补锄耻谤别サービス适用パターン
実プロジェクトの経験から学ぶ补锄耻谤别サービス适用パターン
Kuniteru Asami
?
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
日本マイクロソフト株式会社
?
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
?
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
?
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
de:code 2017
?
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
真吾 吉田
?
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -
Masaki Takeda
?
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Akira Inoue
?
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
?
[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション
de:code 2017
?

Recently uploaded (7)

2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
翔栄 杉田
?
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト运営事务局
?
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
?
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
?
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージカスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
info819904
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
翔栄 杉田
?
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
?
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
?
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージカスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
info819904
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?

Using Windows Azure

  • 1. Windows Azure で LL 言語系 Web アプリケーション開発 はてな 田中 慎司 stanaka @ hatena.ne.jp http://d.hatena.ne.jp/stanaka/ http://twitter.com/stanaka/
  • 2. アジェンダ Azure とは GAE/AWS と比較 試してみた Hello World 級 PHP on Azure PHP & MySQL on Azure Mediawiki on Azure
  • 3. スペック 基本的に Linux 系 いわゆる LAMP スタック Linux, Apache, MySQL, Perl IDE は使わない Windows との接点 メインのノート PC は Windows VB, C# は知っている COM コンポーネントは一度書いたことがある VisualStudio
  • 4. 今日のテーマ LL 系言語エンジニアからの視点 クラウドサービスでの Azure の位置付け Azure – AWS – GAE Azure の勘所 とりあえず動かしてみる
  • 5. Azure とは Microsoft によるクラウドサービス アプリケーションの動作サービス (Windows Azure) ネットワークサービス (.NET Services) クラウドの RDB(SQL Azure)
  • 6. Windows Azure Windows Azure Compute Web Role Worker Role Windows Azure Storage BLOB Table Queue Drive
  • 7. Role Web Role ウェブアプリケーション向け IIS .NET Framework Worker Role バッチ処理向け 普通の TCP 通信もできる .NET Framework
  • 8. Storage BLOB メディアイメージ HTTP REST でアクセス Table BigTable 的 DB Queue メッセージキュー Drive( 未リリース ?) NTFS ドライブ
  • 9. Amazon Web Services EC2 IA サーバ環境を提供 時間貸しレンタルサーバ ストレージ S3 CloudFront サービス Elastic Block Storage Relational Database Service SimpleDB Simple Queue Service
  • 10. Google Application Engine 自動的にスケールする 柔軟なデータストア (BigTable) サービス URL フェッチ メール Memcache 画像操作 cron XMPP 通信
  • 11. Google Application Engine の制約 言語の制約 Python/Java のみ 処理機能の制約 サーブレットによる 30 秒以上を要するリクエスト処理 サーブレットによるレスポンス送出時のデータストリーミング ファイルシステムへの書き込み 外部サーバーへのソケット接続 VM 機能の制約 スレッド生成 ガベージコレクション実行やシステム停止 カスタムクラス?ローダの利用
  • 12. Windows Azure の特性 EC2 と GAE の中間 インスタンスは意識する ただし各インスタンスの直接制御はできない .NET が基本だが、ネイティブアプリも動作 C/C++ のコードも動く 言語処理系を上げてしまえば、なんでも動く !! MySQL/memcached も動く
  • 13. 開発環境 VisualStudio Microsoft Visual Web Developer 2008 Express Edition Eclipse Azure SDK
  • 14. Azure Platform Interoperability Windows Azure Tools for Eclipse PHP / Java などとの Interoperability にも注力 http://www.microsoft.com/windowsazure/interop/
  • 15. Azure の開発フロー Visual Studio / Eclipse で開発 ビルドも ローカルテスト環境にデプロイ Azure にデプロイ Staging で確認 Prodution に展開
  • 16. LL 言語系 Web 屋から観点 .NET の世界 C# という言語がある IIS ってなんだ Internet Information Services IDE に抵抗がある 統合開発環境 Eclipse / Visual Studio
  • 17. Azure への期待 クラウドプレイヤーの増加 AWS vs GAE vs Azure 競争促進 ロックインの排除 アプリレイヤーとクラウドレイヤーの疎結合化 Azure は、 GAE ほど極端ではない
  • 18. Azure の開発フロー (LL 言語向け ) Emacs / vi で開発 コマンドラインでビルド IDE だとよく分からない
  • 19. 簡単な Azure アプリ /ProjectRoot/ WebRole/ index.html simple.csdef .. クラウド?サービス定義ファイル simple.cscfg .. クラウド?サービス構成ファイル
  • 20. 簡単な Azure アプリ simple.csdef クラウド?サービス定義ファイル <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <ServiceDefinition name=&quot;Simple&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition&quot;> <WebRole name=&quot;WebRole&quot;> <ConfigurationSettings> </ConfigurationSettings> <InputEndpoints> <!-- Must use port 80 for http and port 443 for https when running in the cloud --> <InputEndpoint name=&quot;HttpIn&quot; protocol=&quot;http&quot; port=&quot;80&quot; /> </InputEndpoints> </WebRole> </ServiceDefinition>
  • 21. 簡単な Azure アプリ simple.cscfg クラウド?サービス構成ファイル <?xml version=&quot;1.0&quot;?> <ServiceConfiguration serviceName=&quot;Simple&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration&quot;> <Role name=&quot;WebRole&quot;> <Instances count=&quot;1&quot;/> <ConfigurationSettings> </ConfigurationSettings> </Role> </ServiceConfiguration>
  • 22. 簡単な Azure アプリ index.html <html> <head><title>Quick Sample</title></head> <body> This a quick sample. <br /> <img alt=&quot;Sample Photo&quot; src=/slideshow/using-windows-azure/3519567/&quot;photo.jpg&quot; /> </body> </html>
  • 23. 簡単な Azure アプリ ビルド デプロイ >cspack simple.csdef /copyonly Windows(R) Azure(TM) Packaging Tool version 1.0.0.0 for Microsoft(R) .NET Framework 3.5 Copyright (c) Microsoft Corporation. All rights reserved. >csrun simple.csx simple.cscfg Windows(R) Azure(TM) Desktop Execution Tool version 1.0.0.0 for Microsoft(R) .NET Framework 3.5 Copyright (c) Microsoft Corporation. All rights reserved. Using session id 1 Created deployment(34) Started deployment(34) Deployment input endpoint HttpIn of role WebRole at http://127.0.0.1:82/
  • 24. 簡単な Azure アプリ 开発环境にデプロイ
  • 27. PHP on Azure PHP の言語処理系 (php.exe) を Azure 上に送りこむ ネイティブコードサポート !
  • 28. PHP on Azure /ProjectRoot/ WebRole/ index.php web.config simple.csdef .. クラウド?サービス定義ファイル simple.cscfg .. クラウド?サービス構成ファイル
  • 29. PHP on Azure phpsimple.csdef クラウド?サービス定義ファイル <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <ServiceDefinition name=&quot;phpsimple&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition&quot;> <WebRole name=&quot;WebRole&quot; enableNativeCodeExecution=&quot;true“ > <ConfigurationSettings> </ConfigurationSettings> <InputEndpoints> <!-- Must use port 80 for http and port 443 for https when running in the cloud --> <InputEndpoint name=&quot;HttpIn&quot; protocol=&quot;http&quot; port=&quot;80&quot; /> </InputEndpoints> </WebRole> </ServiceDefinition>
  • 30. PHP on Azure phpsimple.cscfg クラウド?サービス構成ファイル <?xml version=&quot;1.0&quot;?> <ServiceConfiguration serviceName=&quot;phpsimple&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration&quot;> <Role name=&quot;WebRole&quot;> <Instances count=&quot;1&quot;/> <ConfigurationSettings> </ConfigurationSettings> </Role> </ServiceConfiguration>
  • 31. PHP on Azure index.php <html> <head><title>Hello World PHP</title></head> <body> <?php echo 'Today is '. date('Y-m-d') .&quot;\n&quot;; ?> </body> </html>
  • 32. PHP on Azure web.config <?xml version=&quot;1.0&quot;?> <configuration> <system.webServer> <handlers> <add name=&quot;FastCGIHandler&quot; verb=&quot;*&quot; path=&quot;*.php&quot; scriptProcessor=&quot;%RoleRoot%\approot\PHP\php-cgi.exe&quot; modules=&quot;FastCgiModule&quot; resourceType=&quot;Unspecified&quot; /> </handlers> <defaultDocument> <files> <add value=&quot;index.php&quot;/> </files> </defaultDocument> </system.webServer> </configuration>
  • 33. PHP on Azure web.roleconfig <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> <configuration> <system.webServer> <fastCgi> <application fullPath=&quot;%RoleRoot%\approot\PHP\php-cgi.exe&quot; /> </fastCgi> </system.webServer> </configuration>
  • 34. PHP on Azure ビルド デプロイ >cspack phpsimple.csdef /copyonly Windows(R) Azure(TM) Packaging Tool version 1.0.0.0 for Microsoft(R) .NET Framework 3.5 Copyright (c) Microsoft Corporation. All rights reserved. >csrun phpsimple.csx phpsimple.cscfg Windows(R) Azure(TM) Desktop Execution Tool version 1.0.0.0 for Microsoft(R) .NET Framework 3.5 Copyright (c) Microsoft Corporation. All rights reserved. Using session id 1 Created deployment(32) Started deployment(32) Deployment input endpoint HttpIn of role WebRole at http://127.0.0.1:82/
  • 35. PHP on Azure 开発环境にデプロイ
  • 36. PHP on Azure 動作 !
  • 37. PHP & MySQL on Azure Windows Azure MySQL PHP Solution Accelerator http://code.msdn.microsoft.com/winazuremysqlphp MySQL php.exe に加え、 mysql.exe も送りこむ Worker Role で mysql のインスタンスを起動させる
  • 38. PHP & MySQL on Azure Windows Azure MySQL PHP Solution Accelerator をダウンロード?展開 PHP, MySQL, PHPMyAdmin などを詰め込む ディレクトリ構成
  • 39. MySQL を WorkerRole で動かす LocalStorage を定義 (ServiceDefinition.csdef) <LocalResources> <LocalStorage name=&quot;InstMgrLocalStorage&quot; sizeInMB=&quot;75&quot; cleanOnRoleRecycle=&quot;false&quot; /> <LocalStorage name=&quot;MySQL&quot; sizeInMB=&quot;75&quot; cleanOnRoleRecycle=&quot;false&quot; /> <LocalStorage name=&quot;MySQLDatastore&quot; sizeInMB=&quot;122880&quot; cleanOnRoleRecycle=&quot;false&quot; /> <LocalStorage name=&quot;BlobBackup&quot; sizeInMB=&quot;2&quot; cleanOnRoleRecycle=&quot;false&quot; /> </LocalResources>
  • 40. MySQL を WorkerRole で動かす Wrapper で指定 (MySQLAccess.cs) public bool Start(int id) { try { string baseDir = RoleEnvironment.GetLocalResource(&quot;MySQL&quot;).RootPath.Replace('\\', '/'); string dataDir = RoleEnvironment.GetLocalResource(&quot;MySQLDatastore&quot;).RootPath.Replace('\\', '/'); string blobDir = RoleEnvironment.GetLocalResource(&quot;BlobBackup&quot;).RootPath.Replace('\\', '/'); … File.Copy(&quot;my.ini&quot;, iniFile, true); //update teh my.ini file with mysql server details UpdateMyIni(iniFile, baseDir, dataDir, port, id.ToString());
  • 41. PHP & MySQL on Azure
  • 42. PHP & MySQL on Azure
  • 43. Mediawiki on Azure Windows Azure Mediawiki MySQL Solution Accelerator http://code.msdn.microsoft.com/winazuremediawiki 基本的には、 Windows Azure MySQL PHP Solution Accelerator と同等
  • 44. Mediawiki on Azure memcached を動かす MySQL と同様に Worker Role + C# の Wrapper protected void RunMemcached() { IPEndPoint endpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[&quot;memcached&quot;].IPEndpoint; string cacheSize = RoleEnvironment.GetConfigurationSettingValue(&quot;CacheSizeInMB&quot;); string arguments = &quot;-m &quot; + cacheSize + &quot; -l &quot; + endpoint.Address + &quot; -p &quot; + endpoint.Port; ProcessStartInfo startInfo = new ProcessStartInfo(); … try { using (Process exeProcess = Process.Start(startInfo)) { exeProcess.WaitForExit();
  • 46. その他 Ruby on Rails on Azure FastCGI 対応のものは動かせる Ruby on Rails も http://rubyonrails.cloudapp.net
  • 47. まとめ Azure を試してみた LL 系言語アプリも十分動かせる Amazon EC2 の対抗として十分なポテンシャルがありそう ただし、もうすこし UNIX-like な開発環境があると親和性が高くなる OSX な開発者もいるので ..