「Mesosってなに」からデモもあって初心者にとってはとてもわかりやすいMeetupで、非常に勉強になりました。資料だけでなく動画もイベントページで公開とのこと。すばらしい!
Opening、会場説明
Mesos User Groupsは世界で25都市が登録。Mesos Conなどが開催されている。
Mesos User Group Tokyoは、2ヶ月に1回位勉強会を実施予定。
Mesosは、2009年の論文からスタートし、2016年頃にコンテナ技術の発展とともに盛り上がり始めた。今、最も注目されている技術の1つ。
Mesosってなに
質問「Mesos使ったことある人?」 => 半分くらい
Apache Mesosの概要
仮想化環境のシステム管理では、クラスタのリソースを効率的に管理するのが難しい。今までは、クラスタは組めても、クラスタ個別の最適化まで。
データセンターのリソース全てを管理するのがMesos。Lunuxカーネルのリソーススケジュールと同じ原理でデータセンター全体を管理する。
Apache Mesosのメリット
これまではクラスタ個別の管理のため、リソースの有効活用に限界があったが、Mesosを使うと、データセンター全体でリソース配分ができ、データセンター全体で最適なリソース配分ができる。
Apache Mesosの生い立ち
2009年の論文がスタート。
2010年にはTwitterが使い始める。
2011年にMesosという名称になり、データセンターのリソース最適化というコンセプトになる。
2013年にMesosphereという会社が立ち上がる。
2016年にコンテナオーケストレーションが盛り上がり、その1つとしてMesosも盛り上がりはじめる。
Apache Mesosの主な特徴
http://mesos.apache.org/
- LINEAR SCALABILITY
- HIGH AVAILABILITY
- CONTAINERS
- PLUGGABLE ISOLATION
- TWO LEVEL SCHEDULING
- APIS
- WEB UI
- CROSS PLATFORM
Mesosの導入企業
airbnb, NETFLIX, UBER, Twitter, yelpなどモダンなサービスの多くでは既に採用されている。
Apache Mesosのアーキテクチャー
基本はこの3つ。
- Mesos Masters
マスターはスレーブのタスク調整と管理を行う。スレーブ、フレームワークを管理し、リソースの割り当てと最適配置を行う。冗長化構成が基本で、ZooKeeperを用いて冗長化を実現している。 - Mesos Slaves
スレーブはどれだけタスクを処理できるかをマスタに報告し、マスタからの要求に応じてタスクを実行する。タスクの1つ1つをコンテナ化して実行するため、コンテナオーケストレーションの技術と言われることがある。 - Framework
ユーザーが利用するインターフェイス。SchedulerとExecutorで構成される。SchedulerはMesosマスターへのJobの登録を担当し、オファーを処理。Executorはタスクをs実行するスレーブ上のプログラム、コマンドなど。DevOps tooling, Long Running Services, Mechine Learning, Big Data Processing, Batch Scheduling, Data Storageなどの分野で多くのツールがMesosに対応しており、Mesosのフレームワークとして用いることができる。
重要なフレームワーク
- Marathon
長期実行アプリを起動するよう設計されたフレームワークの1つ。Mesosを使うならMarathonも使うというくらい定番。コンテナオーケストレーションには必須。
- Chronos
バッチアプリを起動するように設計されたフレームワークの1つ。Airbnbによってcronの代わりに開発されたフレームワーク。
Mesosphere DCOS
Mesosをカーネルとするならば、MesosphereはデータセンターOS。Mesosの上にMesos SDK, Marathon, Chronosが乗っている。MEsosphere Enterprise DCOSは、Enterprise製品としてのMesosのディストリビューション。
Mesos単体ではカーネルレベルなので活用が難しい。MesosphereにはOSS版もある。
MesosとDCOSで実現できるあんなことこんなこと
Mesosのデモ。
MesosはThoughtWorks Tech Radar Vol.16でも紹介されている。
AWSからDC/OSをインストール
https://dcos.io/install から。
入力項目はほとんどない。お金がかかるので注意。
クラスタ環境へのアクセス方法いろいろ
ブラウザからのアクセスが簡単。慣れてくるとCLIが便利。
サービスの起動方法いろいろ
- App JSON
JSONでサービスを定義してコマンド1発で起動できる。 - Universe
GUIでパッケージを選択して簡単に起動できる。
コマンド1発でAzure上にDC/OS環境を作る方法
https://www.slideshare.net/ToruMakabe/1azuredcos
Azure上にDC/OS環境を作るデモ。
先程のプレゼンでAWSは15分だったけど、Azureはコマンド1発でいける。10分以内でできる。 => 今回は7分41秒で成功!
Azure Container ServiceはIaaS+。Managed PaaSではない。インフラとDC/OSの環境構築を楽に早く作る仕組み。DC/OS、Kubermetes、Docker Swarmを選択可能。
- Marathon UI を使用した Azure DC/OS クラスターの管理 | Microsoft Docs
- Docker コンテナー クラスターのデプロイ - Azure CLI | Microsoft Docs
- AzureではLog Analyticsのコンテナパックでコンテナの監視が可能
Mesos・DCOS Deepdive(English)
データセンターは、ハード、OS、アプリという単純な構造から変化している。マイクロサービスによって柔軟で、効率的で、頑強で、個別にスケールできるより複雑な構造になっている。アプリの言語の種類もバージョンも違う。全てがコンテナの上で動く。
データ処理は、バッチ、マイクロバッチ、イベントプロセッシングと変化している。イベントプロセッシングはマイクロ秒のレベルの高速処理。
Apache MesosはTwitterが採用し、今ではApacheのトッププロジェクトで、多くの先端企業が採用している。
DC/OSはモダン分散アプリケーションを可能にする。コンテナ上のマイクロサービスとビッグデータ分析を実現する。
ユースケースの1つ。esriはScalaでイベントソーシング、Kafkaでメッセージブローカー、Spark、Elasticsearch、JavaScriptの地図アプリというスタックで処理をしている。=> デモ
設定変更、バイナリの変更、クラスターのメンテナンス(バックアップ、リストア、再起動)などを管理することができる。
多くのコンテナで動くサービスにおける、モニタリング、ログ分析、アップグレード、障害対応、トラブルシューティングなどの課題に対処できる。
DC/OSの中のクラスターは他のクラスターからアクセス可能な仮想IPを持つ。DNSが仮想IPを指し示すことでServieに名前でアクセスできる 。
LT: おぷすた開発者がDC/OS on OpenSUSEでMesosに入門してみた的ななにか
Meoss, DC/OSをOpenSUSE(Linux)上で動かす。OpenSUSE, VirtualBox, Vagrant, DC/OSとインストール。 いろいろ大変だけど、なんとか動くよ。
LT: RancherでMesosクラスタをデプロイしてみる的ななにか
Rancherを使ってMesosを簡単に立ち上げるデモ。Rancherはコンテナ環境を管理するためのOSS。RancherでGUIでコンテナを立ち上げて、監視もできる。
Rancher ♡ Mesos
LT: サービスカタログと夏フェスにまつわるなにか
https://www.slideshare.net/cyberblackvoom/ranchermesosmarathon?next_slideshow=1
初心者が、Mesosを学ぶための情報紹介。
- Mesosってなに?のリンク集。
- RancherとMesos。Rancherにはオーケストレーション環境を簡単に構築できる環境テンプレートがある。Mesosも。本家のカタログもコミュニティのカタログもある。
- Rancher, Mesos, Marathonをつくる手順。