Upload
takekazu-omi
View
1.581
Download
0
Embed Size (px)
Citation preview
22015/9/5 kyrt inc.
32015/9/5 kyrt inc.
4
自己紹介
近江 武一JAZUG Azure Storage 担当(自称)Microsoft MVP for Azure http://www.slideshare.net/takekazuomi
kyrt.in
github.com/takekazuomiwhite
paper
監訳
2015/9/5 kyrt inc.
5
Azure Service Fabric とはVery Short Introductions
2015/9/5 kyrt inc.
6
Service Fabric 概要
分散型システム プラットフォーム
1. スケーラブル2. 信頼性が高く3. 管理しやすい
‘ エンタープライズ クラスの Tier-1 クラウド スケール サービスを構築、管理のための次世代のミドルウェア プラットフォーム’
2015/9/5
https://azure.microsoft.com/ja-jp/documentation/articles/service-fabric-overview/
kyrt inc.
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.
8
Applications composed of microservices
2015/9/5https://azure.microsoft.com/ja-jp/documentation/articles/service-fabric-overview/kyrt inc.
9
クラウド アプリケーションの重要な課題プロビジョニングデプロイ監視アップグレード削除
2015/9/5
Service Fabric プラットフォーム
kyrt inc.
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.
11
今日は、 Service Fabric の取り組んでいる課題のうち、プロビジョニングとデプロイのあたりで問題になることを中心に話します
2015/9/5 kyrt inc.
12
ソフトウェアの世界では大きなのは好まれず小さいのが好まれる。分割は吉
⇨1000 行の関数1つより、複数の関数に分かれていた方がいい
⇨Multics より、 Unix⇨monolithic kernel より、 micro kernel⇨密結合より疎結合( SOA)
2015/9/5 kyrt inc.
13kyrt inc.2015/9/5
14
高密度なアプリケーションのデプロイリソースの有効利用
2015/9/5 kyrt inc.
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.
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.
17
Static Partitioning 問題
このように Role の分割が静的に行われているのを、Static Partitioning (静的分割?)と言います。
Static Partitioning は、 Role を増やせば、増すほど扱いづらくなります。ワークロードを事前に予測することが難しい場合もあり、リソースの利用効率という観点からはムダが生じやすい仕組みです。
A: 複数の Role を Node に入れてしまえばいいのでは?
2015/9/5 kyrt inc.
18
Major subsystems of Service Fabric
2015/9/5出典: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-architecture/ kyrt inc.
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.
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.
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.
22
Hosting subsystemManagement subsystem の cluster
manaer が、 Hosting subsystem ( 各ノードの ) に対して、特定の Node でmanage される service を通知。
その Node 上の Application の life cycle を管理。 reliability と health components と通信し、 replica の配置と健全性を確認
2015/9/5 kyrt inc.
23
Cluster: System View
2015/9/5
Failovermanager
Clustermanager
Naming
Image store
System Services
kyrt inc.
24kyrt inc.2015/9/5
25
他を見てみるApache Mesos, Hadoop YARN, Spark
2015/9/5 kyrt inc.
26
Apache Mesos
2015/9/5 kyrt inc.
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.
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
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.
30
Hadoop YARNHadoop 生まれの Resource Manager for Cluser
2015/9/5 kyrt inc.
31
YARN - Yet-Another-Resource-Negotiator
2015/9/5 kyrt inc.
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.
332015/9/5 kyrt inc.
34
Apache SparkCluster Manager 上で動く OSS
2015/9/5 kyrt inc.
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.
36
Apache Spark OverviewSpark には、アプリケーションを cluster 上で動かすために、Cluster Manger というコンポーネントがある
2015/9/5http://spark.apache.org/docs/latest/cluster-overview.htmlkyrt inc.
37
Cluster MangerCluster から必要な計算リソースを割当
⇨CPU(core) 、 memory クラスター上で実行されるタスクの調整
⇨タスクの開始指示、タスクの実行のモニター、失敗したタスクの再開
同一 Cluster 上での複数のアプリケーション動作
2015/9/5 kyrt inc.
38
Service Fabric は、分割されたサービスの開発、クラスターへの配置、運用をサポートするプラットフォームです。Service Fabric の利用で、分割による開発、運用コストの増加を抑えて、利益を享受できることができ、それによって、 Monolithic( 一枚岩 ) と、 Micro (分割)のどちらを選択するかのバランスが変わります。
2015/9/5 kyrt inc.
392015/9/5
終kyrt inc.
40
参考資料
2015/9/5 kyrt inc.
41
Service Fabric Explorer Cluster の状況が見える
Node を再起動すると Primary が変わる
Stateful は3Node 構成
LSN見ている⇨ Queue で LOG 配布っぽい
2015/9/5 kyrt inc.
42
Regional Network Manager Microservices
2015/9/5ONS 2015: Wednesday Keynote - Mark Russinovich https://youtu.be/RffHFIhg5Sckyrt inc.
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.
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.