明日から役に立たない azure web サイト使いこなしテクニック

13
明日から役に立たない Azure Web サイト使いこなしテクニック しばやん

Upload: tatsuro-shibamura

Post on 28-May-2015

1.276 views

Category:

Technology


6 download

TRANSCRIPT

明日から役に立たないAzure Web サイト使いこなしテクニック

しばやん

自己紹介

• しばやん (@shibayan)

• http://shiba-yan.hatenablog.jp/

• Microsoft MVP for ASP.NET/IIS

• Microsoft Azure Web サイト好き

このセッションの内容

• Azure Web サイトで良く分からないことをします。

• Kudu は一般的な教養として扱います。– Site Extensions / XML Document Transform は有名ですよね。

• WAWebSiteSID は円環の理に導かれて、ARRAffinity だけになった話。

• 今、Azure Web サイト界で激熱な httpPlatformHandler とか使います。– Java は知らん

Kudu

• Azure Web サイトの git デプロイエンジンのようなもの

• バックエンドを支える重要なサービス

• https://<sitename>.scm.azurewebsites.net/

• 環境確認、デバッグコンソール、プロセスエクスプローラ、ストリーミングログ

Site Extensions

• Azure Web サイトの applicationHost.config を書き換えるための機能

• 新しく仮想アプリケーションを追加したり、管理ポータルから弄れない設定を変更

– IIS をほぼ自由に弄れる。ただし machine.config はダメ

applicationHost.config

• Azure Web サイトで動いている IIS の設定を持っているファイル

• 中身を見ると Azure Web サイトでどんな機能が使えるのか見れる

XML Document Transform

• Visual Studio での Web.config の変換に使われているXML を書き換える仕様

• Web.Release.config / Web.Debug.config みたいな

• applicationHost.config を書き換えるにはapplicationHost.xdt を用意する

Site Extensions Gallery

• NuGet ベースで Site Extensions をインストール出来る仕組み

• 基本的にまだ David Ebbo 作のパッケージばかり

ARRAffinity, WAWebSiteSID

• Azure Web サイトのリリース当初は 2 種類のクッキーが発行されていた– ARRAffinity

– WAWebSiteSID

• ちょっと前に WAWebSiteSID が廃止されて、ARRAffinity だけに– 1 リクエストあたり 100 バイトぐらい削減

– ARRAffinity == WEBSITE_INSTANCE_ID

Perl on Azure Web Sites

• Strawberry Perl を Azure Web サイトに手動インストール

• CGI で動かす場合

– Web.config に CgiModule を利用する HTTP ハンドラーマッピングを追加

• FastCGI で動かす場合

– Site Extensions を使って fastCgi 要素に perl.exe を追加

– 管理ポータルから HTTP ハンドラーマッピングを追加

Java on Azure Web Sites

• Build 2014 で Tomcat / Jetty 対応が発表される

– JDK 1.7 が Azure Web サイトにインストールされている

• IIS に httpPlatformHandler モジュールを追加し、アプリケーションサーバを動かす

• httpPlatformHandler は FastCGI 的な挙動を示す気がする

httpPlatformHandler

• IIS の HTTP パイプラインを HTTP に変換するプロキシ的な役割を果たす

• 居場所はD:¥Windows¥System32¥inetsrv¥httpplatformhandler.dll

• 32bit 版と 64bit 版の両方が用意されている

Ruby on Azure Web Sites

• CGI で動かす = 最高に遅い

• FastCGI で動かす = 最高に不安定な気がする

• httpPlatformHandler + thin で動かす = そこそこ安定、そこそこ高速

– Rack でサポートされている動かし方なので比較的安心

– Unicorn を使いたかったけど、Windows に対応していないので thin