Top Banner
オープンソースのマイクロサービス / コンテナー プラットフォーム「 Azure Service Fabric 」の 使いどころ ( AD35
71

Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

May 28, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

オープンソースのマイクロサービス/コンテナー

プラットフォーム「Azure Service Fabric」の

使いどころ (

AD35

Page 2: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

https://twitter.com/satonaoki

https://satonaoki.wordpress.com

http://aka.ms/weeklyazure

スピーカー

Page 3: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

「プログラミングAzure Service Fabric」

http://www.nikkeibp.co.jp/atclpubmkt/book/17/P98850/

Page 4: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

https://www.microsoft.com/ja-jp/events/decode/2018/sessions.aspx#AD35

セッション概要

Page 5: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

アプリケーションのモダナイゼーション

Page 6: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

モダナイゼーションされたアプリ

Page 7: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 8: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 9: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

モダナイゼーションされたアプリ

Page 10: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 11: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 12: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Azure Container

Instances

Azure BatchAzure Service FabricAzure Kubernetes

Service (AKS)

Azure App Service

Page 13: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

DC/OS Pivotal OpenShift Docker Enterprise

Page 14: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

デモ: Visual Studio 2017を使った既存アプリケーションのService Fabric向けコンテナー化

Page 15: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 16: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 17: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 18: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 19: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 20: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 21: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

モダナイゼーションされたアプリ

Page 22: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

モダナイゼーションされたアプリ

Page 23: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 24: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 25: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

MongoDB

Table API

Page 26: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Azure Service Fabric

Page 27: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

プログラミング

モデル

DevOps

ツール

オーケスト

レーション

ライフサイクル

管理

正常性

監視

常時稼働

可用性

自動

スケール

Azureオンプレミス インフラあらゆるクラウド開発マシン

実行可能ファイルReliable Services (.NET, Java)

Reliable Actors (.NET, Java)ASP.NET Core

コンテナー

Page 28: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

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

Page 29: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

独自のインフラを持ち込む

Service Fabric

スタンドアロン

オンプレミスあらゆる

クラウド

開発マシン

専有の Azure クラスター

Azure

Service Fabric

Page 30: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Azure Service

Fabric クラスター

Azure へ

アップロード

Windows/Linux 向けの

スタンドアロン クラスター

パッケージが生成され、

オンプレミスにデプロイされる

Service Fabric

スタンドアロン クラスター

オンプレミスあらゆる

クラウド

クラスター構成

オンプレミス、Azure

両方のクラスターを

ポータルで管理

Page 31: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

「どのようにして、既定で

自分のアプリケーションで

簡単で有益な診断を

構成するか?」

「どのようにして、リクエストを

特定のサービスにルーティング

するためのアプリケーション

ゲートウェイを構築するか?」「どのようにして、

CI/CD パイプラインで、

運用環境のダウンタイムなしに、

単一のマイクロサービスを

アップデートするか?」「どのようにして、ネットワーク

障害とマイクロサービス間の

リトライの複雑さに対処するか?」

「どのようにして、使用量を

基にした、より粒度の

細かいレベルでの

課金を可能にするか?」

「どのようにして、自分の

クラスターを簡単に

スケール イン/アウトするか?」

「どのようにして、ピーク時

向けに、自分のクラスターの

自動スケールを設定するか?」

「いくつの VMSS

ノード型を持つべきか?」 「どの VM サイズを

使うべきか?」

「どのようにして、自分の VM と

アプリケーション証明書を

管理するか? どのようにして、

自動ロールオーバーを行うか?」

Page 32: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

独自のインフラを持ち込む

Service Fabric

スタンドアロン

オンプレミスあらゆる

クラウド

開発マシン

専有の Azure クラスター

Azure

Service Fabric Azure

Service Fabric Meshフル マネージドの

マイクロサービス プラットフォーム

Service Fabric

Page 33: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

サーバーレス

インフラ

ライフサイクル

管理従量課金

オンデマンドで

スケール

インテリジェントな

トラフィック

ルーティング

マイクロサービス/

コンテナーの

オーケストレーション

セキュリティ、

コンプライアンス

正常性

監視

</>

.NET

</>

マイクロサービス

開発

Page 34: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

デモ: Service Fabric Mesh“Hello World”

https://www.youtube.com/watch?v=0ab2wIGMbpY&t=1

0m2s

Page 35: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 36: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Service Fabric

</>

.NET

</>

IISCOM

ASP.NET

Core

Go

C++

NGINX

Page 37: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

</>

NGINX

IIS

COM

Service Fabric

Page 38: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Service Fabric

.NET

ASP.NET

Core

GoC++

Page 39: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

アプリケーション/サービス マニフェスト• Service Fabric プラットフォームの低レベルの制御

• ランタイム ライフサイクルに密結合された .NET/Java フレームワーク

• いくつかの異なるプログラミング モデル

• プロセス、コンテナーもサポート

Service Fabric リソース• 疎結合の個別にデプロイ可能なリソース

• ランタイム ライフサイクルから分離

• あらゆる言語、フレームワーク、任意のアプリ向けの共通モデル

• すべてがコンテナー内で実行される

• Service Fabric で、Docker Compose ワークロードを実行

• 限定的な Service Fabric 統合

• Docker Compose で記述された既存アプリケーションの可搬性

• すべてがコンテナー内で実行される

Docker Compose単純さ

可搬性

制御

統合

オン

プレミス

あらゆる

クラウド

ローカル Azure

オンプレミス

あらゆるクラウド

ローカル Azure

オンプレミス

あらゆるクラウド

ローカル MeshAzure

Page 40: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Service Fabric リソース

Page 41: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

アプリケーション/サービス

ネットワーク

ボリューム

ルーティング ルール

自動スケール ルール

シークレット

Page 42: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

アプリケーション/サービス

ネットワーク

ボリューム

ルーティング ルール

自動スケール ルール

シークレット

Page 43: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

アプリケーション/サービス

ネットワーク

ボリューム

ルーティング ルール

自動スケール ルール

シークレット

Page 44: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

コンテナー

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

Page 45: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

デモ: Visual Studio 2017 でのService Fabric リソース

https://www.youtube.com/watch?v=0ab2wIGMbpY&t=2

2m35s

Page 46: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 47: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

シークレット

シークレット

Page 48: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Service Fabric

ボリューム ディスクAzure File Storage

レプリケーションされるローカル ディスク ネットワーク ストレージ

サービス

ボリューム

http://aka.ms/sf-filesvolumedriver

Page 49: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

デモ:ボリューム

https://www.youtube.com/watch?v=0ab2wIGMbpY&t=3

2m20s

Page 50: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 51: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

コンテナー

サービス

.NET

Service Fabric

Azure Application Insights

Azure Monitor

ボリューム標準出力/エラー

Application Insights SDK

プラットフォーム イベント、メトリック

Page 52: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Reliable Collections

Page 53: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

レプリケーションされる

トランザクション型ストア

データ構造 C++ STL API

C# Java Go その他

レプリケーション、リーダー選出、

オーケストレーション、クラスタリング、

フェデレーションなどService Fabric ランタイム

Reliable Collections ライブラリ

言語固有のデータ構造 API

Page 54: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

サービス パッケージ

Reliable Collections ランタイム

ステートフル ライフサイクルReliable Collections API

ユーザーのアプリ コード

Service Fabric ランタイム

Page 55: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Reliable

Collections

サービス パッケージ

ユーザーの

アプリ

Local machine

Reliable

Collections

サービス パッケージ

SF ノード

Reliable

Collections

サービス パッケージ

SF ノードSF ノード

Page 56: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

デモ: Reliable Collections

https://www.youtube.com/watch?v=0ab2wIGMbpY&t=3

9m20s

Page 57: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 58: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

インテリジェントなトラフィック ルーティング

Page 59: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

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");

Page 60: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 61: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 62: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

サービス パッケージ

サービス 1

サービス パッケージ

サービス 3

サービス パッケージ

サービス 2

ルーティング ルール リソース

ネットワーク

Envoy プロキシ Envoy プロキシEnvoy プロキシEnvoy プロキシ

Page 63: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

Service Fabric

Service

ASP.NET

Core

Service

Service

Secrets

Volumes

開発マシン あらゆるクラウド オンプレミス Azure クラスター Mesh

Page 64: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

デモ: スケーリング & アップグレード

https://www.youtube.com/watch?v=0ab2wIGMbpY&t=4

9m15s

Page 65: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 66: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

https://www.youtube.com/watch?v=t3Vo37V9oU8&t=45m

Page 67: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

https://www.youtube.com/watch?v=t3Vo37V9oU8&t=51m39m

Page 68: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

デモ: HA IoT(IoT Edge + Service Fabric)

https://www.youtube.com/watch?v=t3Vo37V9oU8&t=53

m50m

Page 69: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、
Page 70: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

http://aka.ms/sfmeshpreview

Page 71: Azure Service Fabric」のデータ構造C++ STL API C# Java Go その他 レプリケーション、リーダー選出、 オーケストレーション、クラスタリング、

© 2018 Microsoft Corporation. All rights reserved.

本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。