44
オオオオ Service Fabric kyrt / Takekazu Omi [email protected] 2015/9/5 R.1.1

Service Fabric での高密度配置

Embed Size (px)

Citation preview

Page 1: Service Fabric での高密度配置

オトナの Service Fabric

kyrt / Takekazu Omi [email protected]

2015/9/5 R.1.1

Page 2: Service Fabric での高密度配置

22015/9/5 kyrt inc.

Page 3: Service Fabric での高密度配置

32015/9/5 kyrt inc.

Page 4: Service Fabric での高密度配置

4

自己紹介

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

kyrt.in

github.com/takekazuomiwhite

paper

監訳

2015/9/5 kyrt inc.

Page 5: Service Fabric での高密度配置

5

Azure Service Fabric とはVery Short Introductions

2015/9/5 kyrt inc.

Page 6: Service Fabric での高密度配置

6

Service Fabric 概要

分散型システム プラットフォーム

1. スケーラブル2. 信頼性が高く3. 管理しやすい

‘ エンタープライズ クラスの Tier-1 クラウド スケール サービスを構築、管理のための次世代のミドルウェア プラットフォーム’

2015/9/5

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

kyrt inc.

Page 7: Service Fabric での高密度配置

7

Battle-hardened for over 5 yearsAzure Core Infrastructure thousands of machinesAzure Document DB billions transactions/weekIntune 800k devicesSkype for Business Hybrid OpsEvent Hubs 20bn events/dayAzure SQL Database 1.4 million databasesBing Cortana 500m evals/secPowerBI

2015/9/5

出典 : BUILD 2015 2-640 Microsoft Azure Service Fabric Architecture

kyrt inc.

Page 8: Service Fabric での高密度配置

8

Applications composed of microservices

2015/9/5https://azure.microsoft.com/ja-jp/documentation/articles/service-fabric-overview/kyrt inc.

Page 9: Service Fabric での高密度配置

9

クラウド アプリケーションの重要な課題プロビジョニングデプロイ監視アップグレード削除

2015/9/5

Service Fabric プラットフォーム

kyrt inc.

Page 10: Service Fabric での高密度配置

10

2015/4/20 Azure Service Fabric を発表 Service Fabric は、高度な制御プラットフォーム 開発者や ISV は、拡張性とカスタマイズ性の高いクラウド サービスを構

築可 ミッションクリティカルなクラウド サービスを提供してきたマイクロソ

フトの経験を基礎として開発 5 年以上にわたって実際に運用 基盤となるテクノロジは、Azure のコア インフラストラクチャに使用

(実証済) Skype for Business、 Intune、Event Hubs、DocumentDB、Azure

SQL Database 、Bing Cortana などの基盤で利用 毎秒 5 億回を超える評価に対応可能な拡張性を持つ

2015/9/5

http://blogs.msdn.com/b/windowsazurej/archive/2015/04/23/announcing-azure-service-fabric-reducing-complexity-in-a-hyper-scale-world.aspx

kyrt inc.

Page 11: Service Fabric での高密度配置

11

今日は、 Service Fabric の取り組んでいる課題のうち、プロビジョニングとデプロイのあたりで問題になることを中心に話します

2015/9/5 kyrt inc.

Page 12: Service Fabric での高密度配置

12

ソフトウェアの世界では大きなのは好まれず小さいのが好まれる。分割は吉

⇨1000 行の関数1つより、複数の関数に分かれていた方がいい

⇨Multics より、 Unix⇨monolithic kernel より、 micro kernel⇨密結合より疎結合( SOA)

2015/9/5 kyrt inc.

Page 13: Service Fabric での高密度配置

13kyrt inc.2015/9/5

Page 14: Service Fabric での高密度配置

14

高密度なアプリケーションのデプロイリソースの有効利用

2015/9/5 kyrt inc.

Page 15: Service Fabric での高密度配置

15

Cloud Service (PaaSv1)モダンなクラウドアプリケーションでは、高可用、スケーラブルを実現するために、「 Immutable InfrastructureとDisposable Components」という戦略を取ります。Azure だと、 Web/Worker Role で実装される Cloud Service がそれです。この戦略では、各 Node は状態を持たず、 Node 障害の場合に容易に代替 Node を割り当てて対応でき、処理能力が足りない場合は Node を追加することでスケールすることができます。

PaaSv1 では、全ての Role は仮想マシンの専有配置です。 (Node=Instance)そのため、 OS の設定やランタイムのインストールなど細かいことを自由にできるという大きなメリットがありますが「もう少し配置に自由度が欲しいよね」というのが今回の話しです。

2015/9/5 kyrt inc.

Page 16: Service Fabric での高密度配置

16

例: Availability可用性を保った構成とするためには、最低2つの

Node に配置する必要がありますその結果、 Role の粒度を小さくすると Node(= イン

スタンス ) の数が増えますCDP: Compute Partitioning Guidance で言

う、 logical decomposition と、 physical partition の考慮事項が複雑に⇨ https://msdn.microsoft.com/en-us/library/dn589773.aspx

2015/9/5 kyrt inc.

Page 17: Service Fabric での高密度配置

17

Static Partitioning 問題

このように Role の分割が静的に行われているのを、Static Partitioning (静的分割?)と言います。

Static Partitioning は、 Role を増やせば、増すほど扱いづらくなります。ワークロードを事前に予測することが難しい場合もあり、リソースの利用効率という観点からはムダが生じやすい仕組みです。

A: 複数の Role を Node に入れてしまえばいいのでは?

2015/9/5 kyrt inc.

Page 18: Service Fabric での高密度配置

18

Major subsystems of Service Fabric

2015/9/5出典: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-architecture/ kyrt inc.

Page 19: Service Fabric での高密度配置

19

Cluster: federationA set of independent machines; physical or virtual

Clusters can scale to1000s of machines

2015/9/5

Node

Node

Node

Node

Node

Node

128 bit DTH

kyrt inc.

Page 20: Service Fabric での高密度配置

20

Federation subsystem 分散システム内で複数のノードを扱うためにシステムの一貫したビューを提

供 Transport subsystem を使って、ノードをステッチ(繋ぎあわせて) 他のsubsystemが利用する分散システムのプリミティブな機能を提供 ー 障

害検出、 leader election、 consistent routing 128ビット token space の Distributed Hash Tables (DTH) を構築、リン

グトポロジを使用 リング内の各ノードに、 token space のサブセットの所有権を割り当て 故障検出のために、 layerはheart beatingベースのリースと調停を利用 フェデレーション ·サブシステムは、 intricate join and departure

protocols によって、トークンが単一の所有者に帰属することを保証し、これによって leader election と consistent routing の保証

2015/9/5 kyrt inc.

Page 21: Service Fabric での高密度配置

21

Reliability subsystem reliability subsystemは、 replicator, failover manager,  resource balancer の機構を元

に、Service Fabric の高可用なサービスを提供 Replicator

⇨ primary service replica の状態の変更が自動的に secondary replica に複製され、 replica set 内の primary と secondary のレプリカの間の一貫性が保たれることを保証する。Replicator は、replica-set 内の replica 間の quorum management を担当している。

⇨ failover unit が、replicate 操作のリストを取得するには、 reconfiguration agent (RA) が replica-set の構成 (複製に必要なそれぞれのreplicaの操作)を提供

⇨ Service Fabric では、Fabric Replicator と呼ばれるデフォルトの replicator が提供 Failover Manager

⇨ クラスターにノードが追加、削除されたときに、存在するノードに負荷が自動的に再配布されることを保証する。クラスター内のノードに障害が発生した時、クラスターは可用性が失われないように自動的にサービスのレプリカを再構成する

Resource Balancer⇨ Resource Balancer は、クラスタ内の failure domain 全体にサービスのレプリカを配置し、すべての

failover units が正常に動作していることを保証します。Resource Balancer はまた、クラスタノードの下にある共有プール全体で最適で均一な負荷分散を実現する

2015/9/5 kyrt inc.

Page 22: Service Fabric での高密度配置

22

Hosting subsystemManagement subsystem の cluster

manaer が、 Hosting subsystem ( 各ノードの ) に対して、特定の Node でmanage される service を通知。

その Node 上の Application の life cycle を管理。 reliability と health components と通信し、 replica の配置と健全性を確認

2015/9/5 kyrt inc.

Page 23: Service Fabric での高密度配置

23

Cluster: System View

2015/9/5

Failovermanager

Clustermanager

Naming

Image store

System Services

kyrt inc.

Page 24: Service Fabric での高密度配置

24kyrt inc.2015/9/5

Page 25: Service Fabric での高密度配置

25

他を見てみるApache Mesos, Hadoop YARN, Spark

2015/9/5 kyrt inc.

Page 26: Service Fabric での高密度配置

26

Apache Mesos

2015/9/5 kyrt inc.

Page 27: Service Fabric での高密度配置

27

Apache Mesos Apache Mesos は、 twitter 社などで使われている Cluster

Manager です。Service Fabric と似た位置に属するOSSのプロダクトです。BUILD 2015/3-612では、Cluster Orchestration で並んでました。今回の資料では、Cluster Managerと呼んでます。

ちょっと脱線して、 「Mesos 使うとStatic Partitioning から開放されるぜ」という話しが面白かったので紹介。

Building and Deploying Application to Apache Mesos⇨ 「Static Partition IS BAD、 Operating System ===

Datacenter 、Mesos => data center のkernelだ」というようなことが書いてあります。

⇨ http://www.slideshare.net/charmalloc/buildingdeployingapplicationsmesos

2015/9/5 kyrt inc.

Page 28: Service Fabric での高密度配置

VMs and VM Scale SetsAzure Public CloudAzure-Consistent Private Cloud

VM Extensions

SCALR, RightScale, Mesos, Swarm

Service Fabric (VMs and Containers)

BatchApp Service

MediaWeb Apps

Mobile

Apps

Apprenda, CloudFoundryJelastic, Marathon

Infrastructure

IaaS and IaaS+

General Compute

PaaS

Vertical compute

PaaS

Open Choice at Every Layer

Cluster Orchestratio

n

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

Page 29: Service Fabric での高密度配置

29

Mesos Overview Mesos は、 master daemon と、各

cluster node 上で実行される slave daemon 、およびこれらの slave 上で task を実行する Mesos の application(framework とも呼ばれます)で構成

cluster node は、 containerizer  で動作し、 linux の control cgroups や namespaces で分離されたもので、 Docker で分離されたものが用意。(Mesos containerizer , Docker containerizer)

slave のリソース状況に合わせて、 複数のアプリケーションを node に配置することができ、高密度配置が可能

http://mesos.apache.org/documentation/latest/mesos-architecture/

2015/9/5 kyrt inc.

Page 30: Service Fabric での高密度配置

30

Hadoop YARNHadoop 生まれの Resource Manager for Cluser

2015/9/5 kyrt inc.

Page 31: Service Fabric での高密度配置

31

YARN - Yet-Another-Resource-Negotiator

2015/9/5 kyrt inc.

Page 32: Service Fabric での高密度配置

32

YARN (2) 大規模なClusterでは、 Job Tracker がボトルネックになる 任意の分散処理フレームワークやアプリケーションの作成を容易にす

る新しいフレームワーク (MR専用ではない、Sparkでも利用可) YARNは、汎用的な分散アプリケーションの開発や、そのようなアプ

リケーションからの(メモリやCPUといった)リソース要求のハンドリング、スケジューリングを行い、実行を監督するためのデーモンとAPIを提供

YARN の紹介⇨ http://www.ibm.com/developerworks/jp/analytics/library/bd-yarn-intro/

MR2とYARNの手短な解説⇨ http://www.cloudera.co.jp/blog/mr2-and-yarn-briefly-explained.html

2015/9/5 kyrt inc.

Page 33: Service Fabric での高密度配置

332015/9/5 kyrt inc.

Page 34: Service Fabric での高密度配置

34

Apache SparkCluster Manager 上で動く OSS

2015/9/5 kyrt inc.

Page 35: Service Fabric での高密度配置

35

Spark + Mesos 、 YARN の利用Spark は、 MesosでもYARNでも動く(Cluster Manager と呼ばれる) Standalone

⇨ a simple cluster manager included with Spark that makes it easy to set up a cluster.

Apache Mesos⇨ 汎用の cluster manager、 Hadoop MapReduce and service applications.

Hadoop YARN⇨ the resource manager in Hadoop 2.

Amazon EC2 ⇨ In addition, Spark’s EC2 launch scripts make it easy to launch a

standalone cluster on Amazon EC2.

2015/9/5 kyrt inc.

Page 36: Service Fabric での高密度配置

36

Apache Spark OverviewSpark には、アプリケーションを cluster 上で動かすために、Cluster Manger というコンポーネントがある

2015/9/5http://spark.apache.org/docs/latest/cluster-overview.htmlkyrt inc.

Page 37: Service Fabric での高密度配置

37

Cluster MangerCluster から必要な計算リソースを割当

⇨CPU(core) 、 memory クラスター上で実行されるタスクの調整

⇨タスクの開始指示、タスクの実行のモニター、失敗したタスクの再開

同一 Cluster 上での複数のアプリケーション動作

2015/9/5 kyrt inc.

Page 38: Service Fabric での高密度配置

38

Service Fabric は、分割されたサービスの開発、クラスターへの配置、運用をサポートするプラットフォームです。Service Fabric の利用で、分割による開発、運用コストの増加を抑えて、利益を享受できることができ、それによって、 Monolithic( 一枚岩 ) と、 Micro (分割)のどちらを選択するかのバランスが変わります。

2015/9/5 kyrt inc.

Page 39: Service Fabric での高密度配置

392015/9/5

終kyrt inc.

Page 40: Service Fabric での高密度配置

40

参考資料

2015/9/5 kyrt inc.

Page 41: Service Fabric での高密度配置

41

Service Fabric Explorer Cluster の状況が見える

Node を再起動すると Primary が変わる

Stateful は3Node 構成

LSN見ている⇨ Queue で LOG 配布っぽい

2015/9/5 kyrt inc.

Page 42: Service Fabric での高密度配置

42

Regional Network Manager Microservices

2015/9/5ONS 2015: Wednesday Keynote - Mark Russinovich https://youtu.be/RffHFIhg5Sckyrt inc.

Page 43: Service Fabric での高密度配置

43

Service Fabric documentationhttp://azure.microsoft.com/en-us/documentation/services/service-fabric/

BUILD 2015, The Next Generation of Azure Compute Platform with Mark Russinovichhttps://channel9.msdn.com/Events/Build/2015/3-618

Microsoft Azure Service Fabric Architecturehttps://channel9.msdn.com/Events/Build/2015/2-640

Deep Dive into Microsoft Azure Service Fabric Reliable Actorshttps://channel9.msdn.com/Events/Build/2015/2-66

2015/9/5 kyrt inc.

Page 44: Service Fabric での高密度配置

44

大規模分散システムの現在 – Twitter, 丸山不二夫⇨ http://www.slideshare.net/maruyama097

Evolution of The Twitter Stack, Chris Aniszczyk⇨ http://

www.slideshare.net/caniszczyk/twitter-opensourcestacklinuxcon2013 GoogleがBorgの詳細を公開 ,  Abel Avram

⇨ http://www.infoq.com/jp/news/2015/04/google-borg mesos, omega, borg: a survey,  Andrew Wang

⇨ http://www.umbrant.com/blog/2015/mesos_omega_borg_survey.html YARN の紹介

⇨ http://www.ibm.com/developerworks/jp/analytics/library/bd-yarn-intro/

2015/9/5 kyrt inc.