Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)

2,402 views

Published on

2016年8月4日に開催された「Mesos勉強会」において、技術本部 山田 修司が「Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について」と題し、講演した際の資料です。

■イベント詳細
http://connpass.com/event/36415/

Published in: Technology

Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)

  1. 1. さくらのDockerホスティングサービス Arukas での Mesos+Marathonの活用について Mesos / Marathon Aug 4, 2016 Shuji Yamada (山田 修司) @uzyexe
  2. 2. アジェンダ • Arukas のご紹介(5分) • Mesos / Marathon の活用事例(15分) • まとめ(5分)
  3. 3. SHUJI YAMADA • さくらインターネット9年目 • エンジニア • 学生時代には の缶詰などを製造 • データセンター運用スタッフ • バックボーンネットワーク運用 • さくらのクラウド運用 • Docker ホスティング Arukas 担当 <- 今ココ (山田 修司) @uzyexe
  4. 4. What’s Arukas?
  5. 5. (C) Copyright 1996-2016 SAKURA Internet Inc.
  6. 6. 6 Run Dockerized Applications 450,000+ Dockerized Applications
  7. 7. 7 1500 Users 1700 Users 1950+ Users 900 Users 2016/04 2015/05 2016/06 Today Users Growth
  8. 8. • Infrastructure as Code • Continuous Integration (CI/CD) • Secure Signing/Trust • +++ • Trusted Registries • Access Control • Policies • +++ • Container Management • Deploy and Scaling • Metrics/Monitoring/Logging • +++ Ship RunBuild What’s Container as a Service
  9. 9. Development Test Production Version Control CI/CD Deploy Dockerfile Docker Image CloudOn-Premise Registry
  10. 10. Development Test Production Version Control CI/CD Deploy Dockerfile Docker Image Registry
  11. 11. User Control Panel Client Compose Container Hosting Onpremises Infrastructure Orchestrator or or Volume Netwroking Logging Monitoring Integrations Registry Cloud API
  12. 12. 複数コンテナを管理 Dockerコンテナを直感的に操作できるWEBコントロールパネルを使っ て、複数台のコンテナでも簡単に管理することができます。 12
  13. 13. 機動的なスケール 簡単・高速なスケールイン・スケールアウト機能によって、
 必要なリソースに応じて、オンデマンドで必要なリソースを提供します。 13
  14. 14. 高品質な国産サービス コンテナ用に独自設計されたインフラと高品質なネットワーク回線を利用 して、Dockerコンテナをすぐに利用開始することができます。 14
  15. 15. LATEST RELEASES 最新リリース internationalization (i18n) Arukasのコントロールパネルが国際化に対応しました。 Webブラウザの言語設定が英語の場合、説明や項目などが英語表示されます。 API対応 パブリックAPIを公開しました。ユーザーは、それぞれのオペレーションに応じたプ ログラマブルなAPI制御を実現することができるようになりました。 CLI対応 コマンドライン操作に対応するGolang製バイナリをリリースしました。コマンドラ インからの迅速な操作や、Golangモジュールとしての再利用が可能になりました。 Terraform for Arukas i18n API Support CLI Support システム構成管理ツールTerraformに対応するArukasのサードパーティプラグインが 有志によってリリースされました。Infrastructre as Codeが実現できます。 その他
  16. 16. Infrastructure Operating System Orchestrator/Container Scheduler Container Bins/Libs App 1 Container Bins/Libs App 2 Container Bins/Libs App 3 APACHE Zookeeper
  17. 17. Docker on Mesos with Marathon
  18. 18. Mesos • クラスタリソース管理フレームワーク。 • 2009年にカリフォルニア大学バークレー校で開発。 • Twitter、Airbnb、Apple、NETFLIX などで採用。 • Apache のトップレベルプロジェクトの一つ。 • コンテナの実行をサポート。 (Docker、AppC) • Mesosphere、Microsoft が開発協力。
  19. 19. Mesos の構成要素 • Mesos Master • Mesos Slave • Framework
  20. 20. Mesos Master • Mesos Slave の管理 • Mesos Frameworks の管理 • リソースの割当と最適配置
  21. 21. Mesos Slave • Mesos Master に従事 • Master から受信したコマンドを実行 • CPU と RAM 情報を Master に通知 • Executor を実行する
  22. 22. Framework • Scheduler + Executor • Hadoop, Marathon, Chronos, etc... • Scheduler として Master に Task の起動を指示 • Executor として Slave 上の Task を管理
  23. 23. Mesos Slave Marathon Executor Mesos Master (leader) TaskTask Mesos Slave Chronos Executor TaskTask Mesos Slave Marathon Executor Chronos Executor TaskTask TaskTask Marathon Scheduler Chronos Scheduler Zookeeper quorum Mesos Master (standby) Mesos Master (standby)
  24. 24. Framework Scheduler Executor Task Task Status Launch Status Resource Offer Launch Task Task Status Mesos
  25. 25. Mesos Key Point 100% AuroraHadoop Marathon 100% FREE FREE Hadoop Aurora Marathon
  26. 26. Mesos Key Point FREE 1 2 3 4 5 6 7 8 9
  27. 27. Mesos Key Point FREE 1 2 3 4 5 6 7 8 9
  28. 28. Marathon • Mesos Frameworks の一つ • ハードウェア/ソフトウェア障害を自動処理 • Task (Application) の常時稼働を保証 • ヘルスチェック(TCP, HTTP, Command) • スケジューリング機能
  29. 29. Marathon の機能 • Docker Support • ストレージボリューム対応 (local disk, EBS) • スケールイン、スケールアウト • Web UI • Event Subscription • REST API
  30. 30. What’s use Mesos with Marathon for..
  31. 31. Mesos+Marathon • 大規模なアプリケーション環境向け構成 • リソースの最適配置 • コンテナで各種アプリの稼働に対応 • JSON API によるプログラマブルな管理が可能 • 非ベンダーロックイン • マルチテナント対応 ※ Advanced ACL groups は DC/OS only...
  32. 32. Mesos Slave Marathon Executor Mesos Master (leader) TaskTask Mesos Slave Marathon Executor TaskTask Zookeeper quorum Mesos Master (standby) Mesos Master (standby) Mesos Slave Marathon Executor TaskTask ... Marathon Scheduler Marathon Scheduler Marathon Scheduler
  33. 33. Mesos Slave Docker Containerizer Mesos Master (leader) TaskContainer Mesos Slave Docker Containerizer TaskContainer Zookeeper quorum Mesos Master (standby) Mesos Master (standby) Mesos Slave Docker Containerizer TaskContainer ... Marathon Scheduler Marathon Scheduler Marathon Scheduler
  34. 34. Marathon JSON API Request Container libcontainer exec driver
 (native) Mesos Master rootfs (overlayfs...) other drivers... docker daemon docker.sock network driver graph driver Mesos/Marathon Docker Engine Registries
 (DockerHub) Mesos Slave
  35. 35. Mesos/Marathon vs. Kubernetes?
  36. 36. Use Kubernetes for... • 簡単セットアップ • シングルテナント向け • 簡潔な構成向け • Kubernetes 本体の機能に強く依存 • Container Only
  37. 37. Use Mesos/Marathon for... • Framework の追加に対応 • プログラマブルな機能追加に対応 • ヘビー級に汚れる見込みの環境向け
 (独自の機能拡張が可能)
  38. 38. Scalable, Resource-sharing, Fault-tolerant, Reliable
  39. 39. service discovery & load balancing tool marathon-lb
  40. 40. Delete Domain Mesos Slave Marathon Executor Mesos Master (leader) Zookeeper quorum Marathon Scheduler marathon-lb HAProxy configure Arukas API TaskTask Edit Domain Add Domain DNS Service (Route53, DNSimple...) User Access Request JSON API polling and Auto-generate configure HTTPS JSON API
  41. 41. marathon-lb VHOST AppAppAppAppApp App or DB or PaaS or etc... Load Balancing Scale-Out Instances: 5 VHOST: https://*.example.com (Endpoint)
  42. 42. Blue-Green Deployment Version 2 Version 1 Endpoint (marathon-lb) Apps Update Version 2 Version 1 Apps Endpoint (marathon-lb)
  43. 43. Mesos with Marathon Monitoring
  44. 44. 注意点 • Zookeeper と Mesos Master は、5ノード以上で のクラスタリングがおすすめ。 • Mesos Slave ノードの iowait などに注意。 • クラスタ崩壊したときの復旧対策は必要。
  45. 45. 悩みどころ • 各種アップデート作業 • アップデート後に動かなくなりやすい。 • 原因は様々・・・。 • 現状はアップデート職人芸の世界。
  46. 46. 悩みどころ • リソース制御が完璧とはいえない。 • Mesos は具体的な使用中リソースを認識しない。
 (ざっくり決め打ちでリソースを予約することになる。) • 各種リソースのオーバーコミット率はざっくり検討するしかない • CPU使用率も cgroups でざっくり制限するしかない。 • Volume quota は zfs や btrfs なら Docker がサポート。
  47. 47. 用途に応じた選択を • Mesos + Mesos Framework • Kubernetes • Docker Swarm • OpenStack • OpenStack on Kubernetes • OpenStack on Kubernetes on OpenStack...
  48. 48. まとめ • 信頼性の高いクラスタ管理フレームワーク。 • どこでも動かせる。 • コンテナでも動く。 • まずは動かしてみよう。
  49. 49. でも、面倒なんでしょう?
  50. 50. https://github.com/uzyexe/mesos-marathon-demo mesos/marathon 一発起動 Docker Compose で、
  51. 51. Thank you!

×