Upload
daiyu-hatakeyama
View
82
Download
8
Embed Size (px)
Citation preview
#azurejp#azurejp
https://www.facebook.com/dahatake/https://twitter.com/dahatake/https://github.com/dahatake/https://daiyuhatakeyama.wordpress.com/
#azurejp
#azurejpAzure アプリケーションプラットフォーム
Build on the OS (IaaS)
開発プラットフォーム (PaaS) 上に構築
Cloud ServicesService Fabric
App Service Functionsモノリシックな
3 階層ステートレス アプリ
クラウドネイティブ、マイクロサービスベースの
アプリ
Web, Mobile, API, Logic Apps
サーバーレス、イベント駆動の関数
StorageVirtual Machines and Containers
Networking
CloudFoundry, OpenShift, Apprenda,
Jetlastic, など
Web とモバイル マイクロサービス サーバーレスコンピューティング
既存のフレームワーク
サードパーティフレームワーク
他の PaaS
#azurejp
RyuJIT, SIMDRuntime Compilers
.NET Compiler Platform (“Roslyn”)C#/F#/VB Languages
.NET Core 1.0 Libraries
.NET Framework 4.6 Libraries
LibrariesCommon
.NET Framework 4.6
.NET Core 1.0
Fully-featured and integrated .NET libraries and runtime for Windows
Modular and optimized .NET libraries and runtimes
ASP.NET Core 1.0 UniversalWindows AppsWPF Windows
FormsASP.NET
4.6
CoreCLR .NET Native
#azurejp#azurejp
#azurejp
・ Apache Mesos もしくは Docker Swarm 環境を展開 - マスタノード、エージェント VM の自動デプロイ - VM スケールセット設定・ Docker 関連の各種ツールと API をサポート - Marathon, Chronos を含むツール
Azure Container Service
#azurejp
Orchestrator
Azure Container Service• Mesos/Swarm のエコシステム + Azure のスケーラビ
リティ
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
Azure 仮想マシン スケールセット
Cont
aine
r
Cont
aine
r
Cont
aine
r
Cont
aine
r
仮想マシンリソースの確保 仮想ネットワークの構成 可用性セット / スケールセット
の構成 ロードバランサの構成 Mesos/Swarm 環境の構築
#azurejpAzure Container Service の特徴
#azurejp
Visual Studio 2015 Tools for Docker (Preview) Docker ファイルのスキャッフォールド
Dockerfile, docker-compose.yml,DockerTask.ps1
Linux Docker のみ。Windows Container は今後 Version 0.40.0 (2016/9/16 現在 )
Visual Studio Code Dockerfile and Docker Compose File support Dockerfile, yml のインテリセンス http://aka.ms/DockerToolsForVSCode
Docker Tools for Visual Studio Team Services Docker Build Linux Agent Build Release Management http://aka.ms/DockerToolsForVSTS
#azurejp#azurejp
#azurejpAzure Service Fabric• マイクロサービス フレームワーク• ステートフル / ステートレス / アクター• Windows Server 、 Linux• Docker コンテナー サポート ( 将来 )• .NET 、 Java API• Azure 、 Azure Stack 、
VMware 、 OpenStack 、 AWS…
#azurejpService Fabric を使っているサービス群
Azureコア インフラ
数千台のマシン
Power BI
Intune
80 万台のデバイス
AzureSQL Database
140 万のデータベース
Bing Cortana
5 億回 / 秒
AzureDocumenDB
数十億トランザクション
/ 週
Skypefor Business
ハイブリッド運用
AzureEvent Hubs
200 億イベント / 日
IoT Suit
e
6 年以上のサービス稼働実績
#azurejp
Azure Consistent Private Cloud Azure Public Cloud
VMs and VM Scale Sets
VM Extensions
Mesosphere/Swarm
Marathon/Chronos/Swarm
Cluster ManagementFederation and Reliability:• Failover manager• Cluster manager• Naming
• Image store service• Leader Election
Container/Service schedulingHosting• Container activation and MonitoringBalancing and Scheduling• Resource Balancing & Placement
ZooKeaper
Application Programming Models• Stateful/Stateless services• Reliable Actors• Reliable Services• Health Monitoring
Communication Subsystem • Service/Service Communication• Sessions/Streams
•He
alth
man
agem
ent a
nd
diag
nost
ics•
Test
abilit
y fra
mew
ork
Service Fabric と Azure Container Services
#azurejpAzure Service Fabric のインフラ• 実体は VM スケールセット
• ロードバランサー• Public IP address• VM スケールセット ( そのもの )• クラスター• 幾つかの Storage Account
• 仮想マシンの中• RDP でログインは
可能
VM 自体の管理は現時点では自分で行う必要があるOS 修正プログラムは自動適用の予定あり
#azurejpクラスター例
Primary: “DB”Services Fabric Core System “Front”
耐久性レベルインフラによる VM 再起動な
どを制御する特権レベル
Gold: “DS3” / 2 時間 @1 更新ドメイン
Bronze: “D2_V2” / 特権無し
信頼性レベルレプリカの数
Platinum: ノード数 9 以上
レプリカセット 9
Bronze: ノード数 5
レプリカセット 3
P
S S
S S
S
SS
S
P
S S
ノードタイプVM スケールセット
#azurejp
Programming Model
#azurejpService Fabric Programming ModelsGuest Executables( ゲスト実行可能ファイ
ル )• 任意の EXE を持ち込
む
• 任意の言語 /プログラミング モデ
ル
• アプリとしてパッ
ケージング
• バージョニング / 更新
/正常性監視などの
機能を追加
Reliable Services( サービス )
• ステートレス / ステー
トフル
• 同時実行性
• Reliable Collection に
よる状態管理
• 完全なプラットフォー
ム統合
Reliable Actors( アクター )
• ステートレス / ステー
トフルな
アクター オブジェク
ト
• 簡素化された
プログラミング モデ
ル
• 単一スレッド モデル
• コンピューティングと
状態の
スケール アウトに最
適
• IoT / ゲームなどで利
用
Platform の一部機能は使えない :カスタムの正常性、負荷のレポート、サービス エンドポイントの登録、ステート
フル など
#azurejpサービス型• サービス型は、コード / 構成 / データ パッケージで構成さ
れる• コード パッケージは、エントリ ポイント (DLL/EXE) を定義• 構成パッケージは、サービス固有の構成情報を定義• データ パッケージは、静的リソース ( 画像など ) を定義
• パッケージは、独立してバージョニング可能<ServiceManifest Name="QueueService" Version="1.0"> <ServiceTypes> <StatefulServiceType ServiceTypeName=“QueueServiceType” HasPersistedState="true" /> </ServiceTypes> <CodePackage Name="Code" Version="1.0"> <EntryPoint> <ExeHost> <Program>ServiceHost.exe</Program> </ExeHost> </EntryPoint> </CodePackage> <ConfigPackage Name="Config" Version="1.0" /> <DataPackage Name="Data" Version="1.0" /></ServiceManifest>
Service Type 1
Code Config Data
#azurejpアプリケーション型• アプリ作成のための宣言的テンプレート• 一連のサービス型を含む• パッケージング / デプロイ / バージョニングのために使わ
れるApplication Type A
Service Type 1 Service Type 2 Service Type 3
Code Config Data Code Config Data Code Config Data
#azurejpService Fabric オークション アプリ
アプリケーション型 : sfAuction
サービス型 : Websiteゲスト実行可能ファイル
( ステートレス ) (Node.js)
サービス型 : Auctionサービス ( ステートフル )
(C#/.NET)
サービス型 : APIGatewayサービス ( ステートレス )
(C#/.NET)
#azurejpService Fabric のプラットフォーム機能• 全てのコード / プログラミング モデル
• 高速なデプロイ 配置とアクティブ化• 信頼性 高密度• 健全性レポート 更新の調整
サービス型 : Website
ゲスト実行可能ファイル
( ステートレス ) (Node.js)
#azurejpWeb ゲスト実行ファイル / Docker コンテナー
• ServiceManifest.xml<ServiceManifest Name="Pkg-Svc.Website" Version="1.0.0" …> <ServiceTypes> <StatelessServiceType ServiceTypeName="Svc.WebsiteType" UseImplicitHost="true"/> </ServiceTypes> <CodePackage Name="Code" Version="1.0.0"> <EntryPoint> <ExeHost> <Program>node.exe</Program> <Arguments>Server.js</Arguments> </ExeHost> </EntryPoint> </CodePackage></ServiceManifest>
<ContainerHost> <ImageName>myNodeImage:latest</ImageName> <Commands></Commands></ContainerHost>
#azurejpService Fabric のプラットフォーム機能• 全てのコード / プログラミング モデル
• 高速なデプロイ 配置とアクティブ化• 信頼性 高密度• 健全性レポート 更新の調整
• ステートレス サービス モデル• サービス エンドポイントの検出• リソース使用量を基にした動的リソース分散• アプリケーション パターンの統合 ( アクター パターン、 Web
API など )• Visual Studio 開発 (F5 デバッグ、診断イベント、パッケージ
ング / デプロイ )
サービス型 : Website
ゲスト実行可能ファイル
( ステートレス ) (Node.js)
サービス型 : APIGateway
サービス ( ステートレス )
(C#/.NET)
#azurejpService Fabric のプラットフォーム機能• 全てのコード / プログラミング モデル
• 高速なデプロイ 配置とアクティブ化• 信頼性 高密度• 健全性レポート 更新の調整
• ステートレス サービス モデル• サービス エンドポイントの検出• リソース使用量を基にした動的リソース分散• アプリケーション パターンの統合 ( アクター パターン、 Web API など )• Visual Studio 開発 (F5 デバッグ、診断イベント、パッケージング / デプロイ )
• ステートフル サービス モデル (Reliable Collection)• 信頼性が高くスケーラブルな状態• 外部ストレージに比べて低遅延
サービス型 : Website
ゲスト実行可能ファイル
( ステートレス ) (Node.js)
サービス型 : Auctionサービス ( ステート
フル )(C#/.NET)
サービス型 : APIGateway
サービス ( ステートレス )
(C#/.NET)
#azurejpReliable Collections• ステートフル サービスの構築を簡単に• .NET Collections の進化形• データが複製され、複数のレプリカに永続化される• トランザクションによる複数 Colleciton のアトミックな
更新
IReliableDictionary<K,V> IReliableQueue<T>
#azurejpReliable Actors ( アクター )• 仮想アクター プログラミング モデル
• ゲーム、 IoT など
• アクターとは、コンピューティングと状態の独立した単位• 多数のアクターが並列に実行
• 非同期メッセージングを使って通信• 単一スレッド実行 ( ターン ベースの同時実行性 )• 必要に応じて自動的に作成 /退避
#azurejpオークション アプリの配置
Service Fabric クラスター
ロードバランサー
VMSS #1 ( ステートレス層 )
NodeType=“FrontEnd”ノード #1
WebsiteApiGatew
ay
ノード #2
WebsiteApiGatew
ay
VMSS #2 ( ステートフル層 )
NodeType=“BackEnd”ノード #3
Auction
ノード #4
Auction
#azurejp
Auction ( パーティション #1)
ステートフルなオークション サービス
Users Dictionary
Email UserInfoU1 ItemId[]U2 ItemId[]Active Items
ListItemIdU1/“A”U2/“X”
U1’s Items Dictionary
ItemId ItemInfoU1/“A” 2016-2-1,
Bid[]U1/“B
”2016-2-5, Bid[]
U2’s Items Dictionary
ItemId ItemInfoU2/“X
”2016-3-3,
Bid[]U2/”Y
”2016-4-9,
Bid[]
APIGatewayCreateUserAsync
#azurejp
StatefulMiddle-tierCompute
ステートフルサービスのパターンシンプルな設計、遅延最小化
Front End(Stateless Web)
データ処理と最終保存のための、データストア
• アプリケーションの状態を Compute 層でも保持
• 低遅延での読み書き
• スケールアウトのためのパーティション
• トランザクション制御は組み込み
• 移動を最小化
Load Balancer
Store Store
#azurejpハイボリューム ステートフルサービス
Hundreds of partitions
Service Fabric ClusterHundreds of gateway services
• サービスファブリック アプリ == クラスター内で、 1 プロセスとして稼働。仮想マシンなどは意識しない• それぞれのステートフルサービスは、自分の管理すべき一部のデータを保持する
Partition 1 Partition 2 Partition ‘n’
#azurejp#azurejp
#azurejpAzure Service Fabric を動かす• Service Fabric developer SDK のダウンロード
• http://aka.ms/ServiceFabricSDK
• Service Fabric Course (Microsoft Virtual Academy)• http://bit.do/ServiceFabric
• サンプルと FREE clusters• http://aka.ms/ServiceFabricSamples and
http://aka.ms/tryservicefabric • Service Fabric on Linux へのサインアップ
• http://aka.ms/SFlinuxpreview • フィードバックにご協力ください• http://aka.ms/ServiceFabricForum or internally winfabtalk alias
#azurejp
さあ、始めましょう !azure.com
#azurejp
インフラエンジニア、アーキテクト、 IT 戦略立案に関わる皆様を対象にクラウドを活用したビジネスのデジタルトランスフォーメーションに必要な
マイクロソフトの最新技術情報と実践的ノウハウをご紹介します
2016 年 11 月 1 日 (火 ) – 11 月 2 日 (水 ) ヒルトン東京お台場
http://microsoft-events.jp/mstechsummit/
#azurejp
YouMicrosoft© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista 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.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。