41
第 3 第 JAZUG Tokyo Night Azure Service Fabric / Cluster 第第第 Takekazu Omi [email protected] 2016/7/20 R.1.0

Azure Service Fabric Cluster の作成

Embed Size (px)

Citation preview

Page 1: Azure  Service Fabric Cluster の作成

第 3 回 JAZUG Tokyo NightAzure Service Fabric / Cluster の作成

Takekazu Omi [email protected]

2016/7/20 R.1.0

Page 2: Azure  Service Fabric Cluster の作成

2kyrt inc2016/7/20

Page 3: Azure  Service Fabric Cluster の作成

自己紹介近江 武一JAZUG Azure Storage 担当(自称)Microsoft MVP for Azure http://www.slideshare.net/takekazuomi

kyrt inc 3

kyrt.in

github.com/takekazuomi

white paper

監訳

2016/7/20

Page 4: Azure  Service Fabric Cluster の作成

4

はじめに 第 1 回 5/18 Reliable Collection

⇨ http://www.slideshare.net/takekazuomi/azure-fabric-service-reliable-collection⇨ https://channel9.msdn.com/Blogs/MVP-Azure/01-Tokyo-Jazug-Night

第 2 回 6/16 Actor⇨ http://www.slideshare.net/takekazuomi/azure-fabric-service-actor

第 3 回 7/20 Cluster の作成 第 4 回 ? Cluster の管理運用 (予定) Global Azure Bootcamp で話した Service Fabric の概要の動画

⇨ https://youtu.be/bVWHPjcjeoc?t=38m 過去に、話した時の資料

⇨ http://www.slideshare.net/takekazuomi/presentations

kyrt inc2016/7/20

Page 5: Azure  Service Fabric Cluster の作成

5

復習2016/7/20 kyrt inc

Page 6: Azure  Service Fabric Cluster の作成

6

Framework for Microservice

2016/7/20https://azure.microsoft.com/ja-jp/documentation/articles/service-fabric-overview/

kyrt inc

Page 7: Azure  Service Fabric Cluster の作成

7

過去2回で、 Azure Service Fabric の特徴的な機能を2つの話をしました1. Reliable Collection2. Actor

kyrt inc2016/7/20

Page 8: Azure  Service Fabric Cluster の作成

8

Reliable Collection の 特徴高可用で低レイテンシーな永続化機構 Replicated :状態の変更がレプリケートされ高可用 Persisted: データがディスクに永続化されるため、大規模な障害に強い ( 例 : データセンターの電源障害 ) Transactional : 複数の Reliable Collection 跨ったトランザクションが可能 Low latency: read はローカル、 write は最小 Network I/O

kyrt inc2016/7/20

Page 9: Azure  Service Fabric Cluster の作成

9

Actor

Concurrency (並行性)処理の実装モデルスレッドや排他処理を直接コーディングしない内部状態は、 State Manager で保存されるpersistence layer の基本的な仕組みは

Reliable Collection と同じkyrt inc2016/7/20

Page 10: Azure  Service Fabric Cluster の作成

10

Actor の3つの特徴Scalable by Default数百以上の sever にスケールLow Latency状態の柔軟な保存、 Persisted

state 、 Volatile state 、 No persisted stateSimplified Concurrency

turn base concurrency

kyrt inc2016/7/20

Page 11: Azure  Service Fabric Cluster の作成

11

Service Fabric プログラミングモデル

kyrt inc2016/7/20

reliable service reliable actor guest executable

stateless service stateful service

Page 12: Azure  Service Fabric Cluster の作成

12kyrt inc2016/7/20

Page 13: Azure  Service Fabric Cluster の作成

13

概要Service Fabric では、複数のインスタンスでクラスタを構成クラスタに複数のアプリケーションを展開クラスタへのアプリケーション配置ルールは、アプリケーション単位で設定可能オンプレにも配置可能。今回は、 Azure 上での Cluster 配置の話だけ

kyrt inc2016/7/20

Page 14: Azure  Service Fabric Cluster の作成

14

Cluster: System View

2016/7/20

Failovermanager

Clustermanager

Naming

Image store

System Services

kyrt inc

Page 15: Azure  Service Fabric Cluster の作成

VMs and VM Scale Sets

Azure Public CloudAzure-Consistent Private Cloud

VM Extensions

SCALR, RightScale, Mesos, Swarm

Service Fabric (VMs and Containers)

BatchApp Service

MediaWeb Apps

MobileApps

Apprenda, CloudFoundryJelastic, Marathon

Infrastructure

IaaS and IaaS+

General Compute

PaaS

Vertical compute PaaS

Open Choice at Every Layer

Cluster Orchestration

参照: https://channel9.msdn.com/Events/Build/2015/3-618

Page 16: Azure  Service Fabric Cluster の作成

16

Service Fabric Cluster の作成portal 編

2016/7/20 kyrt inc

Page 17: Azure  Service Fabric Cluster の作成

17

概要portal の Service Fabric の作成各設定の意味

kyrt inc2016/7/20

Page 18: Azure  Service Fabric Cluster の作成

18

Service Fabric Cluster -> Create Service Fabric cluster

1. Basicsここはあまり問題ない2. Cluster configuration見慣れない設定がいろいろある3. Security

KeyVault の事前準備が必要kyrt inc2016/7/20

Page 19: Azure  Service Fabric Cluster の作成

19

Cluster configuration

kyrt inc2016/7/20

1. Node type count

2. Durability tier

設定項目1. Node type count 2. Durability tier耐久性レベル3. Reliability tier信頼性レベルendpoints

3. Reliability tier

Page 20: Azure  Service Fabric Cluster の作成

20

cluster planning

3 つの考慮事項1. node type の数2. node type の特性 サイズ、プライマリ / 非プライマリ、インターネット接続、 VM 数など3. Cluster の信頼性と耐久性

kyrt inc2016/7/20

Page 21: Azure  Service Fabric Cluster の作成

21

node types とはnode type は 1 つの VM scale set に対応

⇨ 個別にスケール アップ / ダウン可⇨ 個別に LB を持ち異なったポートを開くことができる⇨ 個別に異なる VM Size を持つことができる

Cluster には、必ず1つの node type がある⇨ primary node type  (最低 5 台、テスト環境で 3 台)⇨ システム サービスは、 primary node type に配置

node type は、 Cloud Services の Role に類似⇨VM のサイズ、 VM の数、プロパティが定義

kyrt inc2016/7/20

Page 22: Azure  Service Fabric Cluster の作成

22

node type の数下記の条件などを元に検討 アプリケーションに複数のサービスで構成されている

⇨ 例えば、インターネットに公開されたフロントエンドサービスと、直接は公開されないバックエンド サービスとが存在した場合、これらを2つの node type に分けることを検討 アプリケーションにインフラストラクチャー ニーズの異なる複数のサービスが存在する場合

⇨ 大容量の RAM が必要、高い CPU 処理能力が必要など⇨ 例えば、フロントエンド サービスは Web アプリで、バックエンド サービスがバッチ処理の場合など、フロントエンド サービスは小さ目の VM (D2 など ) で実行し、インターネットに対してポートを開放⇨ バックエンド サービスは計算負荷が高く、メモリーも必要なため、より大きな VM (D4 、

D6 、 D15 など ) で実行し、ポートは開かない Compute Partition Guidance 参照

⇨ https://msdn.microsoft.com/en-us/library/dn589773.aspx

kyrt inc2016/7/20

Page 23: Azure  Service Fabric Cluster の作成

23

node type の特性node type = vmss最小 VM サイズは、選択した durability tier で決定最低 VM 数は、選択した reliability tier で決

primary は、デフォルト5( silver )non-primary node type では、最低1

システム サービス は primary node type に置かれる= Cluster の信頼性と耐久性kyrt inc2016/7/20

Page 24: Azure  Service Fabric Cluster の作成

24

durability characteristics

Service Fabric がこの特権を使って、システム サービスやステートフル サービスのクォーラム要件に影響を及ぼすような、 VM レベルのインフラストラクチャ要求 (VM の再起動、 VM の再イメージング、 VM の移行など ) を一時停止させる※今遅延要求出来るのは、 Gold(G5, DS15) のみ  Gold - 1 つの UD につき 2 時間 Silver - 1 つの UD につき 30 分 Bronze - 特権なし kyrt inc2016/7/20

Page 25: Azure  Service Fabric Cluster の作成

kyrt inc 25

reliability characteristics

システム サービスのレプリカ数を設定Platinum - 9Gold - 7Silver – 5 (default)Bronze – 3 (dev only)

2016/7/20

Page 26: Azure  Service Fabric Cluster の作成

26

Security

2016/7/20 kyrt inc

Page 27: Azure  Service Fabric Cluster の作成

27

Security Source key vault

Key Vault のリソース ID Certificate URL証明書がアップロードされた Key

Vault の場所の URL Certificate thumbprint上記証明書のサムプリント Configure advanced settings で下記3つを個別設定

1. Secondary2. Admin client3. Read-only client

kyrt inc2016/7/20

Page 28: Azure  Service Fabric Cluster の作成

28

KeyVault の準備

KeyVaultは、Azure PowerShell or cliで作成Invoke-AddCertToKeyVaultは、ServiceFabricRPHelpers.psm1(GitHub)内のコマンド結果は、Service Fabric ClusterのSecurityで使用

kyrt inc2016/7/20

$ git clone [email protected]:ChackDan/Service-Fabric.git$ Import-Module .\Service-Fabric\Scripts\ServiceFabricRPHelpers\ServiceFabricRPHelpers.psm1$ Login-AzureRmAccount$ Register-AzureRmResourceProvider –ProviderNamespace “Microsoft.KeyVault“$ New-AzureRmResourceGroup –ResourceGroupName $rgn –Location $loc$ New-AzureRmKeyVault –VaultName $kvn –ResourceGroupName $rgn –Location $loc$ Set-AzureRmKeyVaultAccessPolicy –VaultName $kvn –ResourceGroupName $rgn –EnabledForDeployment$ Invoke-AddCertToKeyVault -SubscriptionId $sub ` -ResourceGroupName $rgn -Location $loc -VaultName $kvn ` -CertificateName $certn -Password $pas -CreateSelfSignedCertificate -DnsName $dns -OutputPath $pwd\.

Name : CertificateThumbprintValue : <省略 >Name : SourceVaultValue : <省略 >Name : CertificateURLValue : <省略 >

Page 29: Azure  Service Fabric Cluster の作成

29

Cluster security 3つのシナリオ Node-to-node security (ノード間)クラスター内の VM とコンピューターの間の通信をセキュリティで保護

⇨ クラスターを作成時、プライマリ証明書とセカンダリ証明書(オプション)を指定 Client-to-node security (クライアント、ノード間)クライアントの認証を行い、クラスター内のクライアントと個々のノードの間の通信をセキュリティで保護

⇨ 管理クライアント証明書や読み取り専用クライアント証明書がある⇨ Node-to-node security と別の証明書が必要⇨ 管理エンドポイントへのアクセスは AAD利用可

ロールベースのアクセス制御 (RBAC)⇨ クラスターに接続するクライアント用に、管理者用とユーザー用のアクセス制御⇨ 個別の証明書を指定

kyrt inc2016/7/20

Page 30: Azure  Service Fabric Cluster の作成

kyrt inc 30

Role-based access control 管理者用とユーザー用の 2 つの異なるアクセス コントロールの種類をサポート 管理者は、管理機能へのフル アクセス権 ユーザーは、管理機能 ( クエリ機能など) 、アプリケーションとサービスのリソルバへの RO アクセス権のみがある。( default) ユーザーのグループごとに特定のクラスター操作へのアクセス制限可 クラスターの作成時に、 2 つのクライアント ロール ( 管理者とクライアント ) 毎に個別の証明書を設定

2016/7/20

Page 31: Azure  Service Fabric Cluster の作成

31

RBAC operation list (default)アプリケーションおよびサービスの操作CreateService サービスの作成CreateServiceFromTemplate テンプレートからのサービスの作成UpdateService サービスの更新DeleteService サービスの削除ProvisionApplicationType アプリケーションの種類のプロビジョニングCreateApplication アプリケーションの作成DeleteApplication アプリケーションの削除UpgradeApplication アプリケーションのアップグレードの開始または中断UnprovisionApplicationType アプリケーションの種類のプロビジョニング解除MoveNextUpgradeDomain 明示的なアップグレード ドメインでのアプリケーションのアップグレードの再開ReportUpgradeHealth 現在のアップグレードの進行状況でのアプリケーションのアップグレードの再開ReportHealth 正常性のレポートPredeployPackageToNode デプロイメント前の APICodePackageControl コード パッケージの再開RecoverPartition パーティションの復旧RecoverPartitions 複数のパーティションの復旧RecoverServicePartitions サービス パーティションの復旧RecoverSystemPartitions システム サービス パーティションの復旧

kyrt inc2016/7/20

Page 32: Azure  Service Fabric Cluster の作成

32

RBAC operation list (default)クラスターの操作ProvisionFabric MSI やクラスター マニフェストのプロビジョニングUpgradeFabric クラスターのアップグレードの開始UnprovisionFabric MSI やクラスター マニフェストのプロビジョニング解除MoveNextFabricUpgradeDomain 明示的な更新ドメインを使用したクラスターのアップグレードの再開ReportFabricUpgradeHealth 現在のアップグレードの進行状況でのクラスターのアップグレードの再開StartInfrastructureTask インフラストラクチャのタスクの開始FinishInfrastructureTask インフラストラクチャのタスクの終了InvokeInfrastructureCommand インフラストラクチャのタスクの管理コマンドActivateNode ノードのアクティブ化DeactivateNode ノードの非アクティブ化DeactivateNodesBatch 複数のノードの非アクティブ化RemoveNodeDeactivations 複数のノードでの非アクティブ化の取り消しGetNodeDeactivationStatus 非アクティブ化の状態の確認NodeStateRemoved 削除済みノード状態のレポートReportFault 障害のレポートFileContent イメージ ストア クライアント ファイルの転送 ( クラスターの外部へ )FileDownload イメージ ストア クライアント ファイルのダウンロードの開始 ( クラスターの外部へ )InternalList イメージ ストア クライアント ファイルの一覧操作 ( 内部 )Delete イメージ ストア クライアントの削除操作Upload イメージ ストア クライアントのアップロード操作

kyrt inc2016/7/20

Page 33: Azure  Service Fabric Cluster の作成

33

RBAC operation list (default)NodeControl ノードの開始、停止、および再開MoveReplicaControl ノードから別のノードへのレプリカの移動その他の操作Ping クライアントの pingQuery 許可されるすべてのクエリNameExists 名前付け URI の存在確認ユーザー、管理共通EnumerateSubnames 名前付け URI の列挙EnumerateProperties 名前付けプロパティの列挙PropertyReadBatch 名前付けプロパティの読み取り操作GetServiceDescription 長いポーリングのサービス通知と読み取りサービスの説明ResolveService クレーム ベースのサービス解決ResolveNameOwner 名前付け URI の所有者の解決ResolvePartition システム サービスの解決ServiceNotifications イベント ベースのサービスの通知GetUpgradeStatus アプリケーションのアップグレード状態のポーリングGetFabricUpgradeStatus クラスターのアップグレード状態のポーリングInvokeInfrastructureQuery インフラストラクチャ タスクのクエリList イメージ ストア クライアント ファイルのリスト操作ResetPartitionLoad フェールオーバー ユニットの負荷の再設定ToggleVerboseServicePlacementHealthReporting 詳細なサービス配置正常性レポートの切り替え

kyrt inc2016/7/20

Page 34: Azure  Service Fabric Cluster の作成

34

作成された Cluster の確認2016/7/20 kyrt inc

Page 35: Azure  Service Fabric Cluster の作成

35

作成された Cluster の構成

kyrt inc2016/7/20

load balancer

VMNIC

vmss

Virtual Network

public IP

VMNIC

VMNIC

Backend address pools

Page 36: Azure  Service Fabric Cluster の作成

kyrt inc 36

作成されたリソースの解説1. Service Fabric cluster2. 仮想ネットワーク3. vmss(primary) が1つ

storage を 5 つ持った4. LB が1つ

public ip 付きService Fabric 管理ポートの load balancing ruleRDP の inbound NAT rule

2016/7/20

Page 37: Azure  Service Fabric Cluster の作成

37

ARM template

kyrt inc2016/7/20

Page 38: Azure  Service Fabric Cluster の作成

38

おまけ2016/7/20 kyrt inc

Page 39: Azure  Service Fabric Cluster の作成

39

最低価格構成 Azure 上での最低価格構成は A0 3台 テスト環境での利用を推薦 4800円 /月( =1600*3)

1. Node type count = 12. Durability tier = bronze

Virtual machine size = A0

3. Reliability tier = bronzeVM scale set capacity = 3

kyrt inc2016/7/20

1. Node type count

2. Durability tier

3. Reliability tier

Page 40: Azure  Service Fabric Cluster の作成

40

Q&A

kyrt inc2016/7/20

Page 41: Azure  Service Fabric Cluster の作成

41

終kyrt inc2016/7/20