.NET 4 時代の Windows Azure アーキテクチャ選択 セッション ID: T1-501 .NET 4 時代の Windows Azure アーキテクチャ選択 株式会社アークウェイ 代表取締役社長 森屋英治 Microsoft MVP Microsoft Regional Director
セッションの目的とゴール Session Objectives and Takeaways アーキテクチャについて理解を深め、Windows Azure のアーキテクチャ構築に関して, .NET 4 時代の様々なバリエーションの種類を理解し適切な選択に役立てる。 セッションのゴール アーキテクチャの複数観点の必要性、最適を理解する。 Windows Azure の特徴、アーキテクチャ要素の組みあわせを理解する。 具体的な選択に関して、考察する
アジェンダ アーキテクチャとは Windows Azure Architecture Map 1.2 パターンの導入 まとめ 考慮点 Architecture Map 1.2 各レイヤーの考慮点 例: ASP.NET 4 の利用 例: ASP.NET MVC2 の利用 例: Silverlight 4 の利用 パターンの導入 まとめ
アーキテクチャとは UI Logic Box & Line
アーキテクチャとは 特定の視点、粒度における制約と依存関係 デザインスケッチ UI Logic Common
アーキテクチャ 1 にすべきものと 1: N にするものが絵では区別できない BOX B BOX A BOX A BOX B UI Logic Common
アーキテクチャ 水平な視点忘れていませんか。 UI-A UI-B UI-C
Architectural Description IEEE std 1471-2000 アーキテクチャ記述 Mission fulfills 1…* influences has an Environment System Architecture inhabits has 1…* described by 1 identifies provides Stakeholder Architectural Description Rationale 1…* 1…* 1…* is addressed to is important to participates in has selects organized by identifies 1…* 1…* 1…* 1…* conforms to Concern Viewpoint View 1…* used to cover 1 1 1…* participates in has source 0…1 Library Viewpoint consists of 1…* aggregates establishes method for 1…* 1…* Model
ひとつの観点のみを考慮
様々な観点でデザインする
目的にあった、必要最低限の構造こそが成功の鍵 大きすぎるアーキテクチャはその重さ故、沈む。 すべてが基本アーキテクチャに従う 最適なアーキテクチャを求めて 守破離 一般解との別れ、特殊解へ 目的にあった、必要最低限の構造こそが成功の鍵 大きすぎるアーキテクチャはその重さ故、沈む。 すべてが基本アーキテクチャに従う
Windows Azure すぐに利用可能な 利用分支払いの インターネットを介した スケール可能な .NET Framework 3.5 SP1 または .NET Framework 4 を利用可能な Web ベースのプラットフォーム
追加されているもの (+) + Windows Azure Storage + SQL Azure -サポートされていない T-SQL + Table + Queue + Blob + SQL Azure -サポートされていない T-SQL + Service Bus + Access Control Service + .NET Framework 4 + Silverlight 4 + WCF RIA Services …
制約リスト (ー) (+) VM Role サポート予定 (ー) IIS の設定できない (ー) Local File System + ローカル インスタンス ストレージ VM サイズにより異なる Small: 225 GB, X-Large: 2,040 GB RoleEnvironment. GetLocalResource + Azure Drive NTFS API (e. g. X:) (ー) IIS 関連以外の Service AD, MSMQ, SMTP … (+) VM Role サポート予定
典型的な Windows Azure 構成 WebRole Storage Table Service Mobile Data Access Biz Logic SQL Azure Console/ Rich Client Web Queue Browser Message Entity Message Message
典型的なキューを利用した処理 Queue Balancer Load Write Read Message Web Role Worker Role Message Message VMs VMs Storage Table
Windows Azure 構成セオリーにご注意を フルセットが正解ではない レイヤー、標準の機能を増やすと遅く、開発も増加、テスト工数も増大 ただし必要であればそれ以上の効能が得られる 必要がなければ使わない (役割の確認) Azure Storage Table キューの利用 ワーカー ロールの利用 サービス バス 他のプラットフォーム コンフィグの設定 Silverlight から参照する WCF の URI は、相対パスで参照 Web. Config の利用
Windows Azure Architecture Map 1.2
Azure Architecture Map 1.2 Client App Service Entity/Data Access ASMX Console Azure Storage WinForm Data Service Client REST WCF WPF WCF Data Service Table/BLOB/Queue LINQ to SQL Silverlight WCF RIA Service Entity Framework HTML JavaScript ASP.NET/ ASP.NETMVC SQL Azure ADO.NET DataSet T-SQL Ajax/jQuery Windows Azure Web Role Web Browser
UI の選択 Console WinForm WPF Web HTML/JavaScript jQuery ASP.NET ASP.NET MVC2 Silverlight リッチ UI データ セットが使えない 非同期コールによってサービスを呼び出す TwoWay Bind (INortifyPropertyChanged)
Services の選択 ASMX WCF WCF Data Services WCF RIA Services オプションが少なく、シンプル WCF 複雑な設定、組み合わせが可能 ラスト オプション WCF Data Services REST 形式、複合クライアントで有効 参照設定が URI 一箇所で済む WCF RIA Services Silverlight にて、参照設定が必要ない 様々なバックエンド データ形式の対応が可能
データの選択 Windows Azure Storage Table SQL Azure WCF Data Services ベースのプログラム REST or Entity 定義 WebRole にて再度サービスとして、ラップするシナリオの検討 WCF / WCF Data Services など SQL Azure 自前の Firewall T-SQL (TDS) WebRole にてサービスとして、ラップすることも可能
典型的な例 ASP.NET 中心の開発 ASP.NET MVC2 中心の開発 Silverlight 4 ASP.NET + DataSet + SQL Azure ASP.NET MVC2 中心の開発 jQuery + Services + DataAccess + Data Silverlight 4 Silverlight + MVVM + Services + Data
ASP.NET/Azure Architecture Map OData ASP.NET Azure Storage Code Behind Data Service Client REST LINQ to SQL SQL Azure Entity Framework ADO.NET Windows Azure Web Role
ASP.NET MVC Ajax/Azure Architecture Map jQuery WCF HTML/ JavaScript LINQ to SQL Ajax Data Services SQL Azure Entity Framework get/post Controller ADO.NET Data Service Client Azure Storage Table Models View OData Windows Azure Web Role
DEMO ASP.NET MVC2 開発デモ
Silverlight 4/Azure Architecture Map Service Client Service Silverlight 4 WCF Client WCF LINQ to SQL Code Behind SQL Azure Entity Framework Data Service Client Data Services ADO.NET RIA Service Client RIA Services Data Service Client Azure Storage Table View Model Models Models OData Windows Azure Web Role
Silverlight 4 & WCF RIA Services DEMO Silverlight 4 & WCF RIA Services 開発デモ
パターンの利用 MVC MVVM Repository Unit Of Work Observer Composite
まとめ アーキテクチャとは Windows Azure Architecture パターン 複数の観点、 最適とは 構成 アーキテクチャ マップ 適用 パターン
Fun Azure Develop Sample Code var azure = new DevelopWindowsAzure { WebRole = "ASPNET4" , Transaction = "Azure Queue Storage" , WorkerRole = "WCF Service" , UseAppFabric = true }; try { azure.DeployTrailler() .WaitForGreen(15); } catch (WindowsAzureDesignException ex) { azure.Deployments.Stop(); DropArchitecture(); } finally { DoSimpleArchDesign();
関連セッション T6-311: Visual Studio 2010 による負荷テストの実践 ~アプリケーションのボトルネックを特定しよう T6-312: Windows Communication Foundation 4 における新機能ポイント ~ REST サービスからワークフロー サービスまで~
リファレンス クラウドならマイクロソフト http://www.microsoft.com/japan/business/cloud/default.mspx マイクロソフトのクラウド OS http://www.microsoft.com/japan/Windowsazure .NET 開発コード サンプル集 Code Recipe http://msdn.microsoft.com/ja-jp/samplecode. recipe.aspx Microsoft | Virtualization http://www.microsoft.com/japan/virtualization/default.mspx Microsoft Web Platform http://www.microsoft.com/web
ご清聴ありがとうございました。 T1-501 アンケートにご協力ください。
© 2010 Microsoft Corporation. All rights reserved © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.