オープンソースのマイクロサービス / コンテナー プラットフォーム「 Azure Service Fabric 」の 使いどころ ( AD35
オープンソースのマイクロサービス/コンテナー
プラットフォーム「Azure Service Fabric」の
使いどころ (
AD35
https://twitter.com/satonaoki
https://satonaoki.wordpress.com
http://aka.ms/weeklyazure
スピーカー
「プログラミングAzure Service Fabric」
http://www.nikkeibp.co.jp/atclpubmkt/book/17/P98850/
https://www.microsoft.com/ja-jp/events/decode/2018/sessions.aspx#AD35
セッション概要
アプリケーションのモダナイゼーション
モダナイゼーションされたアプリ
モダナイゼーションされたアプリ
Azure Container
Instances
Azure BatchAzure Service FabricAzure Kubernetes
Service (AKS)
Azure App Service
DC/OS Pivotal OpenShift Docker Enterprise
デモ: Visual Studio 2017を使った既存アプリケーションのService Fabric向けコンテナー化
モダナイゼーションされたアプリ
モダナイゼーションされたアプリ
MongoDB
Table API
Azure Service Fabric
プログラミング
モデル
DevOps
ツール
オーケスト
レーション
ライフサイクル
管理
正常性
監視
常時稼働
可用性
自動
スケール
Azureオンプレミス インフラあらゆるクラウド開発マシン
実行可能ファイルReliable Services (.NET, Java)
Reliable Actors (.NET, Java)ASP.NET Core
コンテナー
Power BI
Dynamics
Intune
Cortana Skype
Cosmos DB
IoT Hub
Event Hub
SQL Database
Azure
Monitor
Core Azure
Services
Archive
Storage
Visual Studio
Team Services
Stream Analytics
Azure Database
for PostgreSQL
Azure Database
for MySQL
Azure
Container
Registry
Event Grid
独自のインフラを持ち込む
Service Fabric
スタンドアロン
オンプレミスあらゆる
クラウド
開発マシン
専有の Azure クラスター
Azure
Service Fabric
Azure Service
Fabric クラスター
Azure へ
アップロード
Windows/Linux 向けの
スタンドアロン クラスター
パッケージが生成され、
オンプレミスにデプロイされる
Service Fabric
スタンドアロン クラスター
オンプレミスあらゆる
クラウド
クラスター構成
オンプレミス、Azure
両方のクラスターを
ポータルで管理
「どのようにして、既定で
自分のアプリケーションで
簡単で有益な診断を
構成するか?」
「どのようにして、リクエストを
特定のサービスにルーティング
するためのアプリケーション
ゲートウェイを構築するか?」「どのようにして、
CI/CD パイプラインで、
運用環境のダウンタイムなしに、
単一のマイクロサービスを
アップデートするか?」「どのようにして、ネットワーク
障害とマイクロサービス間の
リトライの複雑さに対処するか?」
「どのようにして、使用量を
基にした、より粒度の
細かいレベルでの
課金を可能にするか?」
「どのようにして、自分の
クラスターを簡単に
スケール イン/アウトするか?」
「どのようにして、ピーク時
向けに、自分のクラスターの
自動スケールを設定するか?」
「いくつの VMSS
ノード型を持つべきか?」 「どの VM サイズを
使うべきか?」
「どのようにして、自分の VM と
アプリケーション証明書を
管理するか? どのようにして、
自動ロールオーバーを行うか?」
独自のインフラを持ち込む
Service Fabric
スタンドアロン
オンプレミスあらゆる
クラウド
開発マシン
専有の Azure クラスター
Azure
Service Fabric Azure
Service Fabric Meshフル マネージドの
マイクロサービス プラットフォーム
Service Fabric
サーバーレス
インフラ
ライフサイクル
管理従量課金
オンデマンドで
スケール
インテリジェントな
トラフィック
ルーティング
マイクロサービス/
コンテナーの
オーケストレーション
セキュリティ、
コンプライアンス
正常性
監視
</>
.NET
</>
マイクロサービス
開発
デモ: Service Fabric Mesh“Hello World”
https://www.youtube.com/watch?v=0ab2wIGMbpY&t=1
0m2s
Service Fabric
</>
.NET
</>
IISCOM
ASP.NET
Core
Go
C++
NGINX
</>
NGINX
IIS
COM
Service Fabric
Service Fabric
.NET
ASP.NET
Core
GoC++
アプリケーション/サービス マニフェスト• Service Fabric プラットフォームの低レベルの制御
• ランタイム ライフサイクルに密結合された .NET/Java フレームワーク
• いくつかの異なるプログラミング モデル
• プロセス、コンテナーもサポート
Service Fabric リソース• 疎結合の個別にデプロイ可能なリソース
• ランタイム ライフサイクルから分離
• あらゆる言語、フレームワーク、任意のアプリ向けの共通モデル
• すべてがコンテナー内で実行される
• Service Fabric で、Docker Compose ワークロードを実行
• 限定的な Service Fabric 統合
• Docker Compose で記述された既存アプリケーションの可搬性
• すべてがコンテナー内で実行される
Docker Compose単純さ
可搬性
制御
統合
オン
プレミス
あらゆる
クラウド
ローカル Azure
オンプレミス
あらゆるクラウド
ローカル Azure
オンプレミス
あらゆるクラウド
ローカル MeshAzure
Service Fabric リソース
アプリケーション/サービス
ネットワーク
ボリューム
ルーティング ルール
自動スケール ルール
シークレット
アプリケーション/サービス
ネットワーク
ボリューム
ルーティング ルール
自動スケール ルール
シークレット
アプリケーション/サービス
ネットワーク
ボリューム
ルーティング ルール
自動スケール ルール
シークレット
コンテナー
Service Fabric ライブラリ• Reliable Collections
• ASP.NET Core 向けの
ローカル HA ストレージ
• Service Fabric API クライアント
.NET Core
Java
Node.js
Python
Ruby
Go
C++
Tomcat/IIS/nginx
SomeOldCOMThing.exe
Ada95
Scheme
デモ: Visual Studio 2017 でのService Fabric リソース
https://www.youtube.com/watch?v=0ab2wIGMbpY&t=2
2m35s
シークレット
シークレット
Service Fabric
ボリューム ディスクAzure File Storage
レプリケーションされるローカル ディスク ネットワーク ストレージ
サービス
ボリューム
http://aka.ms/sf-filesvolumedriver
デモ:ボリューム
https://www.youtube.com/watch?v=0ab2wIGMbpY&t=3
2m20s
コンテナー
サービス
.NET
Service Fabric
Azure Application Insights
Azure Monitor
ボリューム標準出力/エラー
Application Insights SDK
プラットフォーム イベント、メトリック
Reliable Collections
レプリケーションされる
トランザクション型ストア
データ構造 C++ STL API
C# Java Go その他
レプリケーション、リーダー選出、
オーケストレーション、クラスタリング、
フェデレーションなどService Fabric ランタイム
Reliable Collections ライブラリ
言語固有のデータ構造 API
サービス パッケージ
Reliable Collections ランタイム
ステートフル ライフサイクルReliable Collections API
ユーザーのアプリ コード
Service Fabric ランタイム
Reliable
Collections
サービス パッケージ
ユーザーの
アプリ
Local machine
Reliable
Collections
サービス パッケージ
SF ノード
Reliable
Collections
サービス パッケージ
SF ノードSF ノード
デモ: Reliable Collections
https://www.youtube.com/watch?v=0ab2wIGMbpY&t=3
9m20s
インテリジェントなトラフィック ルーティング
ASP.NET
Core
serviceB.myapp
serviceA.myapp
serviceC.myapp
http.get('http://serviceB.myapp/users/12345’, (response) => { … });
await httpClient.GetAsync("http://serviceB.myapp/users/12345");
サービス パッケージ
サービス 1
サービス パッケージ
サービス 3
サービス パッケージ
サービス 2
ルーティング ルール リソース
ネットワーク
Envoy プロキシ Envoy プロキシEnvoy プロキシEnvoy プロキシ
Service Fabric
Service
ASP.NET
Core
Service
Service
Secrets
Volumes
開発マシン あらゆるクラウド オンプレミス Azure クラスター Mesh
デモ: スケーリング & アップグレード
https://www.youtube.com/watch?v=0ab2wIGMbpY&t=4
9m15s
https://www.youtube.com/watch?v=t3Vo37V9oU8&t=45m
https://www.youtube.com/watch?v=t3Vo37V9oU8&t=51m39m
デモ: HA IoT(IoT Edge + Service Fabric)
https://www.youtube.com/watch?v=t3Vo37V9oU8&t=53
m50m
http://aka.ms/sfmeshpreview
© 2018 Microsoft Corporation. All rights reserved.
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。