Azure Service Fabric 概要
-
Upload
daiyu-hatakeyama -
Category
Technology
-
view
225 -
download
1
Transcript of Azure Service Fabric 概要
![Page 1: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/1.jpg)
#azurejp#azurejp
https://www.facebook.com/dahatake/https://twitter.com/dahatake/https://github.com/dahatake/https://daiyuhatakeyama.wordpress.com/
![Page 2: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/2.jpg)
#azurejp
![Page 3: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/3.jpg)
#azurejp「マイクロサービスアーキテクチャ」• 2016/02 発行• マイクロサービスとは何か、
長所と短所、定義と概念、設計思想、アーキテクトの役割、分割、デプロイ、テスト、監視、セキュリティ
• https://www.oreilly.co.jp/books/9784873117607/
![Page 4: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/4.jpg)
#azurejp「プログラミングAzure Service Fabric 」• 近日発行予定• Azure Service Fabric の
使い方の基本と活用シナリオを徹底解説
![Page 5: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/5.jpg)
#azurejp
マイクロサービス 登場の背景
![Page 6: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/6.jpg)
#azurejpなぜマイクロサービスか ?• アプリを継続的に進化• 顧客の期待に応えるため、機能を早くデリバリ• 大規模なサービスを構築、運用• コスト削減のため、リソースを効率的な利用
Plan1 Monitor +
Learn
Release
Develop + Test2
Development Production
4
3
![Page 7: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/7.jpg)
#azurejp典型的な課題 – ユーザーのFeedback
“ フィードバックありがとうございます !
頂戴したコメントは、数年後に予定しています次のリリースに反映させていただきます。”
The OLD way
ベータ
サービスイン
ベータ
サービスイン
![Page 8: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/8.jpg)
#azurejpリリースサイクル改善の課題
迅速に 頻繁に 確実に
![Page 9: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/9.jpg)
#azurejpアジャイル 開発
Development Development Development Development
1~2週
DEV
![Page 10: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/10.jpg)
#azurejpインフラ構築・運用
Development Development Development Development
3ヶ月
インフラ引き渡し
DEVQA
OPS
![Page 11: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/11.jpg)
#azurejpDevOps の誕生
AgileInfrastructure
DevOpsAgile
Agile
インフラ自動化技術
WebOperatio
n
Agile Infrastructu
re
![Page 12: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/12.jpg)
#azurejp
全てのシステムにアジャイルを適用する
の ?
![Page 13: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/13.jpg)
#azurejp
ユーザー資産業務ワークフロー
「ライフサイクルを分けたい」
顧客
商品
受注
EC サイト /App
商品検索
商品管理
配送 / 請求
CRM5 年 ? 3 ヵ
月 ?
![Page 14: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/14.jpg)
#azurejp
Customer #1
バージョン管理自社で SaaS 提供
IaaS 上で動作
Version 1.0
Customer #2
Version 1.0
Customer #3
Version 2.0
Version 1.0
Version 2.0
![Page 15: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/15.jpg)
#azurejp
“ 分割して統治せよ”
![Page 16: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/16.jpg)
#azurejp
ThumbnailService
ThumbnailServicePhoto Share
ServicePhoto Share
ServicePhoto Share
Service
マイクロサービスアーキテクチャの利点
Photo ShareService
ThumbnailService
Photo Share ServiceThumbnail
SharedLib-v7
Photo ShareService
SharedLib-v1
Photo ShareServicenode.js
ThumbnailService
.NET
Photo ShareService
V1
ThumbnailService
V1Thumbnail
ServiceSharedLib-v7
独立してスケール 異なるテクノロジースタック
依存関係の独立独立してデプロイ可能
ThumbnailService
V2
SharedLib-v1
メンテ可能な状態を継続できる
![Page 17: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/17.jpg)
#azurejp
• 単一のデータベース• 単一テクノロジーのレイヤ
従来型のステート マイクロサービスのステート
• マイクロサービスがグラフ状に結合• マイクロサービス毎のステート• 様々なテクノロジーが使われる
stateless Service
stateless Service with separate stores
stateful Service
stateless presentation Service
![Page 18: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/18.jpg)
#azurejpCompute リソースの使い方の違い仮想マシン Container / Service Fabric
• 各 VM に 1 つのサービス インスタンス
• 均一でないワークロード• コンピューティングの密度が低い• デプロイ / 更新が遅い• スケーリング /DR ( 災害復旧 ) が
遅い
• 各 VM に多数のマイクロサービス
• コンピューティングの密度が高い
• デプロイ / 更新が速い• スケーリングが速い
![Page 19: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/19.jpg)
#azurejpいずれでも、マイクロサービス は実現可能
Service Fabric
Container Service
VM Scale Sets
マイクロサービス フレームワーク
オーケストレーションとコンポジション
柔軟なインフラ
![Page 20: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/20.jpg)
#azurejp
物理コンピューター 仮想マシン
Process
Container
More isolated More efficient
ハードウェア Not shared Shared Shared Shared
カーネル Not shared Not shared Shared* Shared
システム リソース
(ex: File System)
Not shared Not shared Not shared Shared
* Windows Hyper-V コンテナは、カーネルを共有しません
分離レベルの違い
![Page 21: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/21.jpg)
#azurejp
Service Fabric
![Page 22: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/22.jpg)
#azurejpツール と Platform の乱立
• Rolling Upgrades• Availability Guarantees• Scale Out Architecture• Resource Governance• Density• Packaging &
Deployment• Policy Enforcement• Granular Versioning• Stateful Workloads• Leader Election
• Mesos• Kubernetes• Zookeeper• Redis• Raven• Yarn• Fleet• Containers
?
![Page 23: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/23.jpg)
#azurejp分散システムの Platform• Rolling Upgrades• Availability Guarantees• Scale Out Architecture• Resource Governance• Density• Packaging & Deployment• Policy Enforcement• Granular Versioning• Stateful Workloads• Leader Election
Service Fabric
![Page 24: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/24.jpg)
#azurejpAzure Service Fabric• マイクロサービス フレームワーク• ステートフル / ステートレス / アクター• Windows Server 、 Linux• Docker コンテナー サポート (将来 )• .NET 、 Java API• Azure 、 Azure Stack 、
VMware 、 OpenStack 、 AWS…
![Page 25: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/25.jpg)
#azurejpService Fabric for Linux ( プレビュー )• 変える必要がないものは、変えない
• ランタイムの挙動や概念は同じ• 同じ Azure ポータル、 Service Fabric Explorer のエクスペリエンス
• 変える必要があるものは、変える• Linux 向けの開発エクスペリエンス• Azure CLI 、 Eclipse 、 Yoeman 、 Jenkins 、 apt-get インストール、 LTTng トレース…• Mac 、 Linux向けの開発環境• Java 、 C# (.NET Core) のサポート• コンテナー オーケストレーションのサポート
• Azure 上 のクラスター• 開発クラスター
• LinuxMac (Vagrant/VirtualBox による Linux VM)
Azureサービス
スタンドアロンクラスター
開発クラスター
Windows GA GA GALinux プレビュー - プレビュー
Mac - - プレビュー(Linux VM)
![Page 26: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/26.jpg)
#azurejpService Fabric を使っているサービス群
Azureコア インフラ
数千台のマシン
Power BI
Intune
80 万台のデバイス
AzureSQL Database
140 万のデータベース
Bing Cortana
5 億回 /秒
AzureDocumenDB
数十億トランザクション
/ 週
Skypefor Business
ハイブリッド運用
AzureEvent Hubs
200 億イベント / 日
IoT Suit
e
6 年以上のサービス稼働実績
![Page 27: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/27.jpg)
#azurejp
![Page 28: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/28.jpg)
#azurejpマイクロサービスの事例
https://azure.microsoft.com/ja-jp/solutions/microservice-applications/
Service Fabric Team Bloghttps://blogs.msdn.microsoft.com/azureservicefabric/tag/case-study/
![Page 29: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/29.jpg)
#azurejpアーキテクチャ
Your Application
Application ModelDeclarative Application Description Native and Managed APIs
Management Subsystem
Deploy, Upgrade and Monitoring
Communication Subsystem
Service discovery
Reliability Subsystem
Reliability, Availability,
Replication, Service Orchestration
Hosting & Activation
Application LifecycleTestability Subsystem
Fault inject, Test in Production
Federation SubsystemFederation a set of nodes to from a consistent scalable fabric
Transport SubsystemSecure Point-to-point communication
![Page 30: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/30.jpg)
#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 Service• Reliable Actors• Reliable Service• 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 Service
![Page 31: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/31.jpg)
#azurejp
App1 App2
Orchestration - Deployments
App Type Packages Service Fabric Cluster VMs
![Page 32: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/32.jpg)
#azurejp
App1 App2
Orchestration - Failures
App Type Packages Service Fabric Cluster VMs
#FAIL
![Page 33: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/33.jpg)
#azurejp
Purple NodesGreen Nodes
App1 App2
Orchestration - Constraints
App Type Packages Service Fabric Cluster VMs
![Page 34: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/34.jpg)
#azurejp
App1 App2
Orchestration - Capacity
App Type Packages Service Fabric Cluster VMs
![Page 35: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/35.jpg)
#azurejp
App1 App2
Orchestration - Balancing
App Type Packages Service Fabric Cluster VMs
![Page 36: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/36.jpg)
#azurejp
App1 App2
Orchestration – Scale-out Service
App Type Packages Service Fabric Cluster VMs
![Page 37: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/37.jpg)
#azurejp
App1 App2
Orchestration – Scale-out Cluster
App Type Packages Service Fabric Cluster VMs
![Page 38: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/38.jpg)
#azurejp
UD3
UD2
UD1
App1 App2
Orchestration - Upgrade
App Type Packages Service Fabric Cluster VMs
App2.1
![Page 39: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/39.jpg)
#azurejpService Fabric Orchestration – 規約• フォルトドメインとアップグレートドメイン (topology
awareness)• フォルト ドメイン -> 独立した場所、 障害時の分離 (電源、ネットワー
クなど )• アップグレードドメイン -> ローリングアップグレード時に停止時間を
なくする
• 場所の制約• プロパティと値にタグ付け
• 個別ワークロード時に選択しやすいように ex: (HasGPU == True)• Node Capacity
• 使用リソースの変更に迅速に対応
![Page 40: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/40.jpg)
#azurejpService Fabric Orchestration – 最適化• Default Metrics
• クラスター内で基本的なワークフローのもののみ
• Custom Metrics• 全ノードが効率的に使用されるための、リソース定義が可能
• Metric への重みづけ• Metric 同士で重みづけが可能 ex: “このサービスでは、メモリーはディスクよりも重要”
• トリガーベースでプロアクティブに再配置• “Service Fabric が対応する前だけ、クラスターがアンバランスになる”
• 移動コスト• 幾つかのサービスは、小さくて、移動も容易• サービスを移動せずにクラスターの問題を解決できるのであれば、そちらを選択
![Page 41: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/41.jpg)
#azurejp
Azure Service Fabric のインフラ
![Page 42: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/42.jpg)
#azurejpAzure Service Fabric のインフラ• 実体は VM スケールセット
• ロードバランサー• Public IP address• VM スケールセット (そのもの )• クラスター• 幾つかの Storage Account
• 仮想マシンの中• RDP でログインは
可能
VM 自体の管理は現時点では自分で行う必要があるOS修正プログラムは自動適用の予定あり
![Page 43: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/43.jpg)
#azurejpクラスター例
Primary: “DB”Service 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 スケールセット
![Page 44: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/44.jpg)
#azurejpCluster Resource Manager• アプリケーションの監視 /診断
![Page 45: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/45.jpg)
#azurejpYoeman 、 Eclipse ツール
![Page 46: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/46.jpg)
#azurejpService Fabric での CI/CDSource Control Build
cspkg
Test
DEV OPSOPS
PPL
PROD
Inner Dev Loop
Mocks
![Page 47: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/47.jpg)
#azurejp
Service Fabric を使ったアプリケーション開発
![Page 48: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/48.jpg)
#azurejpService Fabric Programming ModelsGuest Executables(ゲスト実行可能ファイ
ル )• 任意の EXE を持ち込
む
• 任意の言語 /プログラミング モデ
ル
• アプリとしてパッ
ケージング
• バージョニング / 更新
/正常性監視などの
機能を追加
Reliable Service( サービス )
• ステートレス / ステー
トフル
• 同時実行性
• Reliable Collection に
よる状態管理
• 完全なプラットフォー
ム統合
Reliable Actors( アクター )
• ステートレス / ステー
トフルな
アクター オブジェク
ト
• 簡素化された
プログラミング モデ
ル
• 単一スレッド モデル
• コンピューティングと
状態の
スケール アウトに最
適
• IoT / ゲームなどで利
用
Platform の一部機能は使えない :カスタムの正常性、負荷のレポート、サービス エンドポイントの登録、ステート
フル など
![Page 49: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/49.jpg)
#azurejpサポートされているプログラミング モデル
ステートレスサービス
ステートフルサービス
アクターゲスト
実行可能ファイル
コンテナー
Windowsクラスター .NET .NET .NET Windows
Windowsコンテナー
(今後 )Linux
クラスター( プレ
ビュー )
Java.NET (今後 ) Java
.NET Linux Linuxコンテナー
![Page 50: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/50.jpg)
#azurejp
Service Fabric infrastructure
Reliable Actors API
Reliable Service API
Stateless service
Statefull service Service Fabric Programming Models
![Page 51: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/51.jpg)
#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
![Page 52: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/52.jpg)
#azurejpアプリケーション型• アプリ作成のための宣言的テンプレート• 一連のサービス型を含む• パッケージング / デプロイ / バージョニングのために使わ
れるApplication Type A
Service Type 1 Service Type 2 Service Type 3
Code Config Data Code Config Data Code Config Data
![Page 53: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/53.jpg)
#azurejpService Fabric オークション アプリ
アプリケーション型 : sfAuction
サービス型 : Websiteゲスト実行可能ファイル
( ステートレス ) (Node.js)
サービス型 : Auctionサービス ( ステートフル )
(C#/.NET)
サービス型 : APIGatewayサービス ( ステートレス )
(C#/.NET)
![Page 54: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/54.jpg)
#azurejpService Fabric のプラットフォーム機能• 全てのコード / プログラミング モデル
• 高速なデプロイ 配置とアクティブ化• 信頼性 高密度• 健全性レポート 更新の調整
サービス型 : Website
ゲスト実行可能ファイル
( ステートレス ) (Node.js)
![Page 55: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/55.jpg)
#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>
![Page 56: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/56.jpg)
#azurejpService Fabric のプラットフォーム機能• 全てのコード / プログラミング モデル
• 高速なデプロイ 配置とアクティブ化• 信頼性 高密度• 健全性レポート 更新の調整
• ステートレス サービス モデル• サービス エンドポイントの検出• リソース使用量を基にした動的リソース分散• アプリケーション パターンの統合 ( アクター パターン、 Web
API など )• Visual Studio 開発 (F5 デバッグ、診断イベント、パッケージ
ング / デプロイ )
サービス型 : Website
ゲスト実行可能ファイル
( ステートレス ) (Node.js)
サービス型 : APIGateway
サービス ( ステートレス )
(C#/.NET)
![Page 57: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/57.jpg)
#azurejpService Fabric のプラットフォーム機能• 全てのコード / プログラミング モデル
• 高速なデプロイ 配置とアクティブ化• 信頼性 高密度• 健全性レポート 更新の調整
• ステートレス サービス モデル• サービス エンドポイントの検出• リソース使用量を基にした動的リソース分散• アプリケーション パターンの統合 ( アクター パターン、 Web API など )• Visual Studio 開発 (F5 デバッグ、診断イベント、パッケージング / デプロイ )
• ステートフル サービス モデル (Reliable Collection)• 信頼性が高くスケーラブルな状態• 外部ストレージに比べて低遅延
サービス型 : Website
ゲスト実行可能ファイル
( ステートレス ) (Node.js)
サービス型 : Auctionサービス ( ステート
フル )(C#/.NET)
サービス型 : APIGateway
サービス ( ステートレス )
(C#/.NET)
![Page 58: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/58.jpg)
#azurejpReliable Collections• ステートフル サービスの構築を簡単に• .NET Collections の進化形• データが複製され、複数のレプリカに永続化される• トランザクションによる複数 Colleciton のアトミックな
更新
IReliableDictionary<K,V> IReliableQueue<T>
![Page 59: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/59.jpg)
#azurejpReliable Actors ( アクター )• 仮想アクター プログラミング モデル
• ゲーム、 IoT など
• アクターとは、コンピューティングと状態の独立した単位• 多数のアクターが並列に実行
• 非同期メッセージングを使って通信• 単一スレッド実行 ( ターン ベースの同時実行性 )• 必要に応じて自動的に作成 /退避
![Page 60: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/60.jpg)
#azurejpオークション アプリの配置
Service Fabric クラスター
ロードバランサー
VMSS #1 ( ステートレス層 )
NodeType=“FrontEnd”ノード #1
WebsiteApiGatew
ay
ノード #2
WebsiteApiGatew
ay
VMSS #2 ( ステートフル層 )
NodeType=“BackEnd”ノード #3
Auction
ノード #4
Auction
![Page 61: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/61.jpg)
#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
![Page 62: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/62.jpg)
#azurejp
Queues Storage
ステートレス サービス パターン• パーティション分割されたストレージと
ステートレス サービスをスケーリング
• キューで信頼性を向上
• キャッシュで読み取り遅延を削減
• 状態 ( ステート ) の整合性のために自分でトランザクションを管理
• 別々に管理される多くの構成要素
Front End(StatelessWeb)
StatelessMiddle-tierCompute
Cache
Load Balancer
![Page 63: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/63.jpg)
#azurejp
StatefulMiddle-tierCompute
ステートフル サービス パターン設計の簡素化、遅延の削減• 状態 ( ステート ) をコンピューティング層に配置
• 低遅延の読み書き
• スケール アウトのためのサービス層のパーティション
• 組み込みトランザクション
• 少ない構成要素
• 外部データ ストア ( オプション )
Front End(StatelessWeb)
Load Balancer
Cold Data StoresFor Exhaust(Optional)
![Page 64: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/64.jpg)
#azurejpステートフル サービスのパーティション分割• スケール アウトのために、サービスをパーティション分割可能• 独自のパーティション分割スキームを選択可能• パーティションはクラスター内の複数マシンにストライピングされる• クラスター変更時にレプリカが自動的にスケール アウト / イン
Node 5Node 4Node 3 Node 6Node 2Node 1
P2
S
SS
P4SP1
SP3SS
S
![Page 65: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/65.jpg)
#azurejpハイボリューム ステートフルサービス
Hundreds of partitions
Service Fabric ClusterHundreds of gateway Service
• サービスファブリック アプリ == クラスター内で、 1 プロセスとして稼働。仮想マシンなどは意識しない• それぞれのステートフルサービスは、自分の管理すべき一部のデータを保持する
Partition 1 Partition 2 Partition ‘n’
![Page 66: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/66.jpg)
#azurejp
まとめ
![Page 67: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/67.jpg)
#azurejpMicroservice で更に柔軟性の高いインフラを手に入れる• Azure は更に高い柔軟性を持つ
• Windows / Linux 環境• Azure Stack / オンプレミス との整合性
• Azure Container Service• Docker ベースの Orchestration環境
• Azure Service Fabric• .NET / Java アプリケーションの
![Page 68: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/68.jpg)
#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
![Page 69: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/69.jpg)
#azurejp無料で短時間試せる環境も• Azure Service Fabric Party Cluster
• http://tryazureservicefabric.westus.cloudapp.azure.com/
![Page 70: Azure Service Fabric 概要](https://reader036.fdocuments.net/reader036/viewer/2022062412/587129771a28abe4448b6cd9/html5/thumbnails/70.jpg)
#azurejp
© 2016 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.