1. Azure Service Fabric と
Cloud Design Pattern
Takekazu Omi
takekazu.omi@kyrt.in
2016/4/16 R.1.0
2. 自己紹介
近江 武一
JAZUG Azure Storage 担当(自称)
Microsoft MVP for Azure
http://www.slideshare.net/takekazuomi
kyrt inc 2
kyrt.in
github.com/takekazuom
i
white paper
監訳
2016/4/16
17. Microservices 論点 by James Lewis
1.Componentization via Services
別プロセスで動作するサービスによっ
てアプリケーションのコンポーネント化
2.Organized around Business
Capabilities
ビジネス機能ごとにサービスを構築(コ
ンウェイの法則)
3.Products not Projects
プロジェクトではなくプロダクトにフォー
カス
4.Smart endpoints and dumb pipes
スマートなエンドポイントとダムバイプ
5.Decentralized Governance
分散統治
6.Decentralized Data Management
分散データ管理
7.Infrastructure Automation
インフラ自動化
8.Design for failure
失敗を前提とした設計
9.Evolutionary Design
進化する設計
kyrt inc 172016/4/16
コンウェイの法則
「システムを設計する組織は、その構造をそっくりまねた構造の設
計を生み出してしまう」
(原文: "Organizations which design systems are constrained to
produce designs which are copies of the communication
structures of these organizations.")
30. VMs and VM Scale Sets
Azure Public CloudAzure-Consistent Private Cloud
VM Extensions
SCALR, RightScale,
Mesos, Swarm
Service Fabric
(VMs and Containers)
BatchApp Service
Media
Web
Apps
Mobile
Apps
Apprenda, CloudFoundry
Jelastic, 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
31. Azureの次世代 PaaS
Resource Manager Template
⇨宣言的なリソース管理
VM Scale Set
⇨Container サポート
Service Fabric
⇨Open - Windows/Linux, C#/Java サポート
kyrt inc 312016/4/16
ONS 2015: Wednesday Keynote - Mark Russinovich https://youtu.be/RffHFIhg5Sc
BUILD 2015: 3-618 The Next Generation of Azure Compute Platform with Mark Russinovich
32. Service Fabric
⇨PaaS V2, Reliable Service, Process
base
VM Scale Set
⇨Next Gen Worker Role, elastic autoscale
で迅速に同一のVMを作成
IaaS+(Managed IaaS)
⇨VM Extension, Backup, Monitoring
IaaS
⇨Windows, Linux, custom Image
2016/4/16 kyrt inc 32
38. Service Fabric Programming Models
Reliable Actors APIReliable Services API
Azure Private Clouds
Applications composed of microservices
High
Availability
Hyper-Scale
Hybrid
Operations
High Density Rolling
Upgrades
Stateful services
Low Latency
Fast startup &
shutdown
Container
Orchestration &
lifecycle management
Replication &
Failover
Simple
programming
models
Load balancing
Self-healingData Partitioning
Automated
Rollback
Health
Monitoring
Placement
Constraints
Service Fabric
参照:https://channel9.msdn.com/Events/Build/2015/3-618
39. Service Fabric API
APIは2つ
1. RELIABLE ACTORS API
コンカレンシー、ステートの保存などをライブラリ側
で実装
2. RELIABLE SERVICES API
やること多いけど、ASP.NETなどを動かすには便
利
kyrt inc 392016/4/16
60. 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/buildingdeployingapplicatio
nsmesos
2016/4/16 kyrt inc 60
61. VMs and VM Scale Sets
Azure Public CloudAzure-Consistent Private Cloud
VM Extensions
SCALR, RightScale,
Mesos, Swarm
Service Fabric
(VMs and Containers)
BatchApp Service
Media
Web
Apps
Mobile
Apps
Apprenda, CloudFoundry
Jelastic, 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
68. 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.
2016/4/16 kyrt inc 68
73. Service Fabric documentation
http://azure.microsoft.com/en-
us/documentation/services/service-fabric/
BUILD 2015, The Next Generation of Azure
Compute Platform with Mark Russinovich
https://channel9.msdn.com/Events/Build/2015/3-618
Microsoft Azure Service Fabric Architecture
https://channel9.msdn.com/Events/Build/2015/2-640
Deep Dive into Microsoft Azure Service Fabric
Reliable Actors
https://channel9.msdn.com/Events/Build/2015/2-66
2016/4/16 kyrt inc 73
74. Service Fabric documentation
http://azure.microsoft.com/en-
us/documentation/services/service-fabric/
BUILD 2015, The Next Generation of Azure
Compute Platform with Mark Russinovich
https://channel9.msdn.com/Events/Build/2015/3-618
Microsoft Azure Service Fabric Architecture
https://channel9.msdn.com/Events/Build/2015/2-640
Deep Dive into Microsoft Azure Service Fabric
Reliable Actors
https://channel9.msdn.com/Events/Build/2015/2-66
2016/4/16 kyrt inc 74
75. Service Fabric documentation
http://azure.microsoft.com/en-
us/documentation/services/service-fabric/
BUILD 2015, The Next Generation of Azure
Compute Platform with Mark Russinovich
https://channel9.msdn.com/Events/Build/2015/3-618
Microsoft Azure Service Fabric Architecture
https://channel9.msdn.com/Events/Build/2015/2-640
Deep Dive into Microsoft Azure Service Fabric
Reliable Actors
https://channel9.msdn.com/Events/Build/2015/2-66
2016/4/16 kyrt inc 75
76. Building MicroServices with Service Fabric
https://channel9.msdn.com/events/Build/2016/T69
3
Service Fabric Deploying and Managing
Applications with Service Fabric
https://channel9.msdn.com/Events/Build/2016/
P431
Azure Service Fabric for Developers
https://channel9.msdn.com/Events/Build/2016/
B874
kyrt inc 762016/4/16
77. 大規模分散システムの現在 – 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/
2016/4/16 kyrt inc 77
Spark Appliation は、(driver program と呼ばれる)あなたのメインプログラムでSparkContextオブジェクトによって協調クラスタ上のプロセスのように独立したセットを実行します。
SparkContext == process
cluster 上で、SparkContext が、
main program は、driver program と呼ばれる
具体的には、クラスタ上で実行するために、SparkContextはアプリケーション間でリソースを割り当てるクラスタマネージャのいくつかの種類(スパーク自身のスタンドアロンクラスタマネージャまたはMesosのいずれか/糸)、に接続することができます。
接続すると、スパークは、アプリケーションの計算とストアデータを実行するプロセスですクラスタ内のノード上で実行プログラムを取得します。
次に、それは執行に(SparkContextに渡されたJARファイルまたはPythonのファイルで定義された)アプリケーション・コードを送信します。
最後に、SparkContextは執行を実行するためのタスクを送信