Windows Azure の機能アップデート概要
日本マイクロソフト株式会社
デベロッパー&プラットフォーム統括本部
プラットフォーム戦略アドバイザー
セッションの目的とゴール
• セッションの目的
– Windows Azure アプリケーション開発の概要を理解する
– Windows Azure のロードマップと Azure SDK のアップデートを理解す
る
• セッションのゴール
– Visual Studio を使った Windows Azure アプリケーション開発を実践で
きるようになる
– Windows Azure のロードマップを活用し、実プロジェクトにおいて
Windows Azure 採用の検討、採用を行うことができるようになる
Agenda
• はじめに
• Windows Azure 対応アプリケーションの開発
– 準備
– ローカル環境での開発
– クラウド環境でのデバッグのためのツール
• まとめ
Windows Azure 概要
マイクロソフトのクラウド OS
Windows Azure 概要
• PaaS 型パブリッククラウドサービス
• 用途に応じたロールモデルが提供され、環境が標準化
OS(Guest OS) Web サーバー フレームワーク アプリケーション OSサービス 仮想化/Host OS ハードウェア SaaS HaaS IaaS PaaS アプリケーション Windows Server 2008/R2 IIS . NET Framework OS ServicesHyper-V (Windows Server 2008/R2) x64
Web ロール Worker ロー ル
開発環境
Visual Studio へのプラグインで Azure 用の IDE へ
• Windows Azure Tools for Visual Studio
– 最新版は Version 1.3 (2010 年 11 月リリース)
– Azure SDK + VS拡張機能
– Visual Studio 2010 に対応
– サービス発行の自動化
– .NET Framework 4 のサポート
– インテリトレース機能のサポート※ 1
– 日本語版あり
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
Guest OS と .NET Framework の対応
• 2系統の Guest OS
– 1.x : Windows Server 2008
– 2.x : Windows Server 2008 R2
関連ツール
開発や管理を便利にする周辺ツール
• Windows Azure
– Windows Azure 開発ポータル -
http://windows.azure.com/
– Windows Azure MMC
– Windows Azure Service Management CmdLets
– myAzureStorage -
https://www.myazurestorage.com/
等
• SQL Azure
– Windows Azure 開発ポータル -
http://windows.azure.com/
PHP、Java サポートの強化
Eclipse も Windows Azure の IDE に
• Windows Azureは、オープンな
プラットフォーム
• PHPやJavaなどに対するSDK、
ドライバ、ツールを提供
• PHP
– Windows Azure Tools for Eclipse V2
発表 (CTP リリース済み)
• Java
– Windows Azure SDK for Java V2 発表 (CTP リリース済み)
– Windows Azure Tools for Eclipse for Java 発表
(2010 年内にCTP リリース)
Windows Azure Platform アップデートの歴史
2008年10月
2009年11月
2010年6月
2010年2月
• Full Trust, PHP, Java, CDN CTP 等 の対応 • VM ロール, Project Sydney, 価格 と SLA の発表 • Project “Dallas” CTP • Windows Azure アップデート • .NET Framework 4 • OS Versioning • CDN • SQL Azure アップデート • 50GB データベース • 空間データ サポート • DAC サポート
Windows Azure Platform リリース
• Windows Azure Platform 発表 • 最初の CTP リリース
SQL Azure 発表
12
Windows Azure: 新機能アナウンス
Windows Azure
• 管理者モード & スタートアップ タスク • フル IIS サポート • ネットワークの拡張 • リモート デスクトップ • VM ロール• Windows Azure Connect • Extra Small インスタンス
• CDN の拡張
SQL Azure
• Database Manager for SQL Azure
• SQL Azure Reporting • SQL Azure Data Sync
• SQL Azure Federation
Windows Azure
AppFabric
• AppFabric Caching • AppFabric Connect (Integration)• AppFabric Composition Model • AppFabric Composite App
Service
Windows Azure のロードマップ (抜粋)
リモートデスクトップ
リモートデスクトップによるサーバー管理
システム特権昇格
(管理者モード/スタートアップタスク)IIS 設定などのために、一時的にシステム特権で設定スクリプト等
のアプリケーションを動作させる機能
フル IIS
ホスト可能な Web コア (HWC) 等ではなく IIS のフル機能
ロール間
コミュニケーション拡張
VLAN やポート定義や内部コミュニケーションで使用するポートを
設定
WS2008 R2 サポート
Guest OS のベースが Windows Server 2008 から Windows Server 2008
R2 に更新
Multiple Admin
単一の Windows Azure アカウントに対し複数の Live ID を管理アカ
ウントとして設定
Windows Azure Connect
オンプレミスとクラウドをセキュアに接続する機能
Windows Azure ロードマップ 概念図
ロール間
Windows Azure 対応
開発環境の準備
Windows Azure Tools for Visual Studio が提供するシームレス
• [発行] メニューをワンクリックすると、アプリケーションがクラウドに
配置
– 発行用パッケージの作成から Windows Azure 環境への配置を自動化
– 資格情報とサブスクリプション ID による認証
発行前の準備
• あらかじめ用意する情報
– Windows Azure 管理ポータル
機能に接続するための資格情
報
• 発行時に必要な情報
– 使用する資格情報
– 発行先 (Production と Staging)
– 発行で使用するストレージサー
ビス
– ラベルの指定
– IntelliTrace の指定
– リモートデスクトップ
.CER資格情報の作成手順 (1)
• [発行] ダイアログで資格情報の追加を選択し、その後の
ワークフローを実行する
資格情報の作成画面
資格情報 (証明書)
を作成 (ローカルに作成
される)
資格情報の保存場所 (パ
ス) をコピー
証明書をクラウドにアップ
ロード
資格情報の作成手順 (2)
ポータルからサブスクリプ
ション ID をコピーして入
力
参考: アップロードした証
明書情報
参考: ローカルに保持している
証明書情報
プロジェクトの作成
• 用意された Visual Studio のテンプレートから作成
– Windows Azure クラウドサービス
クラウド配置に必要な情報、コン
フィギュレーション情報を保持
ロールの設定
• ロール プロジェクトのプロパティ
– VM サイズ
– インスタンス数
– 変数設定
– エンド ポイント
– ローカル ストレージ
– 証明書
パフォーマンスと課金にかかわる重要
な設定
ローカルでの実行とデバッグ
• [F5] キーでデバッグ開始
– 開発のエミュレーション環境が起動する
Compute Emulator
2 つのエミュレーション UI
• Compute Emulation UI
– 稼働中の Role インスタンスの稼働状況、ログの確認、操作
• Storage Emulation UI
マルチ IIS サイトと仮想アプリケーション
• フル IIS を Web ロールのホスティングとして利用
– ホスト可能な Web コア (HWC) での WaWorkerHost.exe ではない
• Web ロールのサービス定義ファイル (csdef) に構成を記述
• デバッガから手動でプロセスにアタッチ
Azure Tool 1.2
Azure Tool
(New)
システム定義ファイル (csdef)
<WebRole name="WebRole1"> <Sites> <Site name="Web"> <VirtualApplication name="mail" physicalDirectory="C:\Users\jnak\Desktop\Scratch\WebSite"/> <Bindings><Binding name="HttpIn" endpointName="HttpIn" /> </Bindings>
</Site>
<Site name="PDC"
physicalDirectory="C:\Users\jnak\Desktop\Scratch\SecondWebSite"> <Bindings>
<Binding name="HttpIn" endpointName="HttpIn" hostHeader="pdctest" />
</Bindings> </Site>
26
システム定義ファイル (csdef)
<WebRole name="WebRole1"> <Sites> <Site name="Web"> <VirtualApplication name="mail" physicalDirectory="C:\Users\jnak\Desktop\Scratch\WebSit e"/> <Bindings><Binding name="HttpIn" endpointName="HttpIn" /> </Bindings> </Site> <Site name="PDC" physicalDirectory="C:\Users\jnak\Desktop\Scratch\Second WebSite"> <Bindings>
<Binding name="HttpIn" endpointName="HttpIn" hostHeader="pdctest" />
</Bindings>
</Site>
ホストヘッダーに関する情報を
hosts ファイルに記述
例: 127.0.0.1 pdctest
リモートデスクトップ
• クラウド内のデバッグや障害調査を容易
– Web ロール、Woker ロール、VM ロール
• 運用環境でのカスタマイズは要注意
IntelliTrace
• クラウド内でのヒストリカルなデバッグ
• Windows Azure コンピューティング エクスプローラーよりイ
Diagnostics
• ロールのプロパティで Diagnostics の設定情報を登録
public override bool OnStart() {
DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultInitialConfiguration(); dmc.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", dmc);