Upload
mitsutoshi-kiuchi
View
1.442
Download
2
Embed Size (px)
Citation preview
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Apache Mesos/Hashicorp Consulで構築するマイクロサービスインフラ
2015/10/27クリエーションライン株式会社
木内 満歳
1
2015/10/27(火 ) クラウド研究会第一回「クラウド OS とマイクロサービス」
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
アジェンダ
• 自己紹介• Apache Mesos/Mesoshere DCOS紹介• Hashicorp Consulのご紹介
2
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
自己紹介
3
木内 満歳(きうち みつとし)
クリエーションライン株式会社 シニアコンサルタント
Slideshare: http://www.slideshare.net/mkiuchi4
gihyo.jp記事
“ Mesosphere DCOSでつくる”クラウドアプリケーション
http://gihyo.jp/admin/serial/01/dcos
Apache Sparkも取り組んでおります
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Apache Mesos/Mesosphere DCOSのご紹介
4
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Docker実行環境概観
5
Docker Subscription
&DockerSwarm
利用者 ホスト数
数十人~ 数十台~
数人~十数人 数台~十数台
一人~数人 2~5台
デプロイ規模に応じた環境の差異
本日取り上げる部分
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Apache Mesos/Mesosphere DCOS
6
世代型クラスタリソースマネージャカリフォルニア大学バークレー校
AMPLabにて開発 (機械学習における世界トップの研究所 )オープンソースで公開。米 Apache財団の全面バックアップ (Top Level Project)開発メンバーは Mesosphere社を設立。商用製品 DCOSをリリース
比類ないスケーラビリティ10,000ノードまでの拡張性を前提に設計ジョブの自動再起動、繰り返し実行日時指定実行、実行回数制限をサポート
ジョブの監視、異常終了時の自動再実行ジョブに必要なマシンリソースと有休資源内のリソースマッチング
Dockerコンテナのネイティブサポートジョブに応じて動的に実行環境を切り替え可能
導入事例Twitter(ショートメッセージング )Airbnb(宿泊施設マッチング )Apple(Siriバックエンド )
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Apache Mesosと他のクラスタマネージャとの比較
7
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Mesosフレームワーク /アプリケーションスタック
8
Mes
os
Slav
eZo
okee
per
HW/VM HW/VM HW/VM HW/VMOS OS OS OS
Mesos Master
Mesos DNS
Marathon Chronos
AppApp
AppApp
AppApp
AppApp
リソース管理
サービスディスカバリージョブスケジューラー
想定されるアプリケーションRuby on Rails / STORM /Hadoop / Docker / SparkPlay
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
拡張可能なフレームワーク
9
Zook
eepe
r
Mesos Master
Mesos DNS
Marathon Chronos 自作フレームワーク
自作フレームワーク
サービスの種類を拡張可能
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Mesos is cluster of clusters
10
Mesos Master
Mesos Slaves
Marathon Chronos Hadoop Spark Torque
Mesos Slave
Mesos Slave Mesos Slave
Mesos Slave
Mesos Slave
Mesos Slave
Ma Ha
ChSp
Tr Sp
TrCh
HaHa
Ma Sp
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Mesos is cluster of clusters
11
Mesos Master
Mesos Slaves
Marathon Chronos Hadoop Spark Torque
Mesos Slave
Mesos Slave Mesos Slave
Mesos Slave
Mesos Slave
Mesos Slave
Ma Ha
ChSp
Tr Sp
TrCh
HaHa
Ma Sp
実質的にクラスタを1台のコンピュータとみなしている(各 Slave ” ”は 分散コンピュータ のメモリ領域のよ
うな扱い
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Mesos loves Docker
12
Dockerとの統合をサポート(Mesosジョブを Dockerコンテナ上で実行
可能 )プライベートリポジトリにも対応
• 実行環境 (ライブラリの相違など )をコンテナに閉じ込めて、ジョブ (サービス )毎に切り替え
• 簡易的な IaaS機能• Immutable Infrastructure
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
ソリューション :Docker(コンテナ )による実行環境のフレキシブルな混在
13
Mesos Master
Mesos Slaves
Docker Repository
Marathon Chronos Hadoop Spark Torque
ジョブ (クラスタ )の稼働タイミングを管理
CentOS
Ha Sp
Tr Cos
Cos
Cos
Sp
Tr
Ha
Sp
Tr
Ha
ジョブの投入(いつ )
イメージのオンデマンド展開(なにを )
ジョブ (クラスタ )の実行環境を管理
Mesos Slaves+Docker Mesos Slaves+Docker Mesos Slaves+Docker
Mesos Slaves+Docker Mesos Slaves+DockerMesos Slaves+Docker
実行基盤 (HW+OS+Mesos Slave+Docker) “ ” だけ 管理
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
コンテナ化の利点
14
Mesos Master
Mesos Slaves
Docker Repository
Marathon Chronos Hadoop Spark Torque CentOS
Ha Sp
Tr Cos
Cos
Cos
Sp
Tr
Ha
Sp
Tr
Ha
Mesos Slaves+Docker Mesos Slaves+Docker Mesos Slaves+Docker
Mesos Slaves+Docker Mesos Slaves+DockerMesos Slaves+Docker
インフラチームはリソースの稼働状況だけ管理
アプリケーションチームはコンテナの内容だけ管理
データセンターチームは実行基盤の配備だけ管理
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Mesos/DCOS導入ユーザ
15
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
事例 : Apple Siri(J.A.R.V.I.S)
16
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
事例:Microsoft Azure Container Services
17
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Hashicorp Consulで実現するService Discovery
18
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Service Discoveryの必要性
19
Mesos Master
Mesos Slaves
Marathon Chronos Hadoop Spark Torque
Mesos Slave
Mesos Slave Mesos Slave
Mesos Slave
Mesos Slave
Mesos Slave
Ma Ma
MaMa
Ma
MaMa
Ma Ma
MaMa
Ma
”元画像を与えるとサムネイルを返すサービス(を実行しているインスタンス )” はどれになるか?
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Service Discovery(Microservice)に求められる要件
20
• Buyer側が自分の意志で Sellerを変更できる– [ある種別のサービス ]を提供している Sellerを探すことができる機能
ServiceBuyer
ServiceSeller
ServiceSeller
ServiceSeller
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Service Discoveryの必要性
21
第1段階 第2段階 第3段階
Excel管理表
● 手動で更新● 情報の漏れ抜け● 最新の把握が困難
DNS-SD(Bonjour)
● No Metadata Server(Multicast)
● マルチキャスト● DC跨ぎに対応できず
Consul
● No Metadata Server(Gossip Cluster)
● DC跨ぎ対応
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Hashicorp Consul
•サービスディスカバリ、状態監視ツール
•特長– Dockerを含む環境非依存のサービス探索ツール– 各ノード・サービス探索 (自動・手動 )– ノード・サービスの障害・リカバリの探索– カスタムイベント通知– Raft Consensus/Gossip Protcolによる高可用構成– マルチデータセンタ対応– WebUI
22
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
Consulによる Service Discoveryの動作例
23
”(1)2つのサービスが同一の imageConvert”サービスを 提供していることがわかる
”(2) myservice2”サービスを提供しているホスト、 ポート番号がわかる
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ
まとめ
• Apache Mesos/Mesosphere DCOSを活用することで
– Dockerを使ったマイクロサービスを簡便にデプロイすることができます
– また複数のサービスで環境を共用することでハードウェア資源の管理が容易になります
• Hashicorp Consulを活用することで
– マイクロサービスインフラの中で、必要なサービスを探し出すことができます
24
Copyright 2015 CREATIONLINE, INC. All Rights Reservedⓒ