O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
1
Mesos + Marathon
Shuji	Yamada	
@uzyexeJan	22,	2016
「10分でわかる marathon-lb」
https://www.flickr.com/photos/archetypefotograf...
https://www.flickr.com/photos/xmodulo/24195478656/
What is marathon-lb?
• HAProxy ベースで Marathon 連携可能な ロードバランサーツール。
• Marat...
https://www.flickr.com/photos/wakalani/90366591/
marathon-lbの特徴的機能
3
• Stateless design: no direct dependency on any third...
https://www.flickr.com/photos/livenature/13918665173/
HAProxy Description
• version 1.7 : 開発版。
• version 1.6 : 最新安定版。state...
https://www.flickr.com/photos/kk/23390123/
Reverse Proxy vs. Load Balancer
• リバースプロキシのことをロードバランサーと呼ぶこともある。
• リバースプロキシには下記の...
https://www.flickr.com/photos/xmodulo/23925971320/
Reverse Proxy の一般的なメリット
• 柔軟性と拡張性 - バックエンドサーバの並列展開が容易
• セキュリティ - ACL設定の...
https://www.flickr.com/photos/davegray/5429335705/
Marathon とのインターフェイス間通信
7
• Polling - 一定間隔毎にポーリング
• EventBus - Publish/S...
8
design
https://www.flickr.com/photos/mcclanahoochie/5517670903/
marathon-lb のシンプルな起動方法 in docker
• Polling で Marathon Apps の情報を問い...
https://www.flickr.com/photos/mrsmagic/5870198525/
HAProxy configuration - App labels
10
• service.mesosphere.com というVHOSTと...
ここでデモ
11
https://www.flickr.com/photos/littlestuffme/10597619904/
HAProxy configuration - Overridable templates
HAPROXY_{n}_FRONTEND...
https://www.flickr.com/photos/ekilby/5614304885/
評価指標
• CPS (Connection per Seconds)
• Simple json Rest API
• SSL Support
...
https://www.flickr.com/photos/nadili/2563472441/
その他の Marathon 連携可能なロードバランサー候補
• hapoxy-consul
• Hipache
• Bamboo
• moxy
•...
https://www.flickr.com/photos/nadili/2563472441/
その他の Marathon 連携可能なロードバランサー候補
• hapoxy-consul - consul を挟む分だけ煩雑
• Hipache...
https://www.flickr.com/photos/staffanscherz/6161284551/
困ったこと
• 負荷が高まると EventBus でも SSE でもイベント通知が遅延する。
• 概ね2∼4分。ダメになると延々と通...
https://www.flickr.com/photos/playingwithpsp/2280744328/
困ったこと
• 思ったほどスケールできない・・・
• イベント通知部分の安定性が・・・
• Polling で 2000 アプリ分...
https://www.flickr.com/photos/stevehopson/403037117/
忘れてるとハマりそうなこと
• HAProxy 1.6 以前のバージョンでは、プロセスの起動時に名前解決して
取得したIPアドレスをキャッ...
https://www.flickr.com/photos/jazbeck/6213634972/
DNS Base vs. Event Base
• DNS ベースのアーキテクチャには下記のような懸念点が存在する。
• SRVクエリを使用しな...
https://www.flickr.com/photos/axelhartmann/16308797077/
よかったこと
• Docker イメージが用意されている。(mesosphere/marathon-lb)
• 中身は HAProx...
https://www.flickr.com/photos/mdpettitt/8671901426/
Any Questions?
21
Próximos SlideShares
Carregando em…5
×

10分でわかる marathon-lb

さくらガレージ勉強会用資料 @uzyexe

  • Seja o primeiro a comentar

10分でわかる marathon-lb

  1. 1. 1 Mesos + Marathon Shuji Yamada @uzyexeJan 22, 2016 「10分でわかる marathon-lb」 https://www.flickr.com/photos/archetypefotografie/3629857292/
  2. 2. https://www.flickr.com/photos/xmodulo/24195478656/ What is marathon-lb? • HAProxy ベースで Marathon 連携可能な ロードバランサーツール。 • Marathon apps の定義を元に、HAProxy 設定を動的に変更管理する。 • HAProxy は、SSL サポート、HTTP 圧縮、ヘルスチェック、プロキシ など豊富な機能を備えているTCP or HTTPベースのロードバランサー。 2
  3. 3. https://www.flickr.com/photos/wakalani/90366591/ marathon-lbの特徴的機能 3 • Stateless design: no direct dependency on any third-party state store • Real-time LB updates, via Marathon's Event Bus • Support for Marathon's Health Checks • Multi-cert SSL Support • Per-service HAProxy Templates • Automated Docker Image Builds (mesosphere/marathon-lb) • Global HAProxy Templates which can be supplied at launch
  4. 4. https://www.flickr.com/photos/livenature/13918665173/ HAProxy Description • version 1.7 : 開発版。 • version 1.6 : 最新安定版。state keeping, Dynamic name resolution, Lua • version 1.5 : SSL, IPv6, keep-alive, DDoS protection, etc... • version 1.4 : SSLを利用しない人向け。 • version 1.3 : 諸事情によりアップデートできない人向け。 4
  5. 5. https://www.flickr.com/photos/kk/23390123/ Reverse Proxy vs. Load Balancer • リバースプロキシのことをロードバランサーと呼ぶこともある。 • リバースプロキシには下記のような機能が備わっている。 • Web アクセラレーション • SSL termination • セキュリティ 5
  6. 6. https://www.flickr.com/photos/xmodulo/23925971320/ Reverse Proxy の一般的なメリット • 柔軟性と拡張性 - バックエンドサーバの並列展開が容易 • セキュリティ - ACL設定の集中管理が容易 • compression - 圧縮による応答高速化 • SSL termination - SSL暗号化/復号化の終端(バックエンドの負荷軽減) • Caching - キャッシュによる応答高速化 6
  7. 7. https://www.flickr.com/photos/davegray/5429335705/ Marathon とのインターフェイス間通信 7 • Polling - 一定間隔毎にポーリング • EventBus - Publish/Subscribe によるリアルタイムイベント購読 • Server Sent Events (SSE) : EventStream によるリアルタイムイベント通知
  8. 8. 8 design
  9. 9. https://www.flickr.com/photos/mcclanahoochie/5517670903/ marathon-lb のシンプルな起動方法 in docker • Polling で Marathon Apps の情報を問い合わせる marathon-lb コンテナ docker run --name="marathon-lb" --net="host" mesosphere/marathon-lb:${MARATHON_LB_VERSION} poll --marathon http://${MARATHON_HOST}:${MARATHON_PORT} --haproxy-config ${HAPROXY_CONFIG} --group ${LB_GROUP_NAME} 9
  10. 10. https://www.flickr.com/photos/mrsmagic/5870198525/ HAProxy configuration - App labels 10 • service.mesosphere.com というVHOSTと収容GROUPを指定する場合 { "id": "http-service", "labels": { "HAPROXY_GROUP": "external", "HAPROXY_0_VHOST": "service.mesosphere.com" } }
  11. 11. ここでデモ 11
  12. 12. https://www.flickr.com/photos/littlestuffme/10597619904/ HAProxy configuration - Overridable templates HAPROXY_{n}_FRONTEND_HEAD HAPROXY_{n}_BACKEND_REDIRECT_HTTP_TO_HTTPS HAPROXY_{n}_BACKEND_HEAD HAPROXY_{n}_HTTP_FRONTEND_ACL HAPROXY_{n}_HTTPS_FRONTEND_ACL HAPROXY_{n}_HTTP_FRONTEND_APPID_ACL 12 HAPROXY_{n}_BACKEND_HTTP_OPTIONS HAPROXY_{n}_BACKEND_TCP_HEALTHCHECK_OPTIONS HAPROXY_{n}_BACKEND_HTTP_HEALTHCHECK_OPTIONS HAPROXY_{n}_BACKEND_STICKY_OPTIONS HAPROXY_{n}_FRONTEND_BACKEND_GLUE HAPROXY_{n}_BACKEND_SERVER_TCP_HEALTHCHECK_OPTIONS HAPROXY_{n}_BACKEND_SERVER_HTTP_HEALTHCHECK_OPTIONS HAPROXY_{n}_BACKEND_SERVER_OPTIONS
  13. 13. https://www.flickr.com/photos/ekilby/5614304885/ 評価指標 • CPS (Connection per Seconds) • Simple json Rest API • SSL Support • WebSocket Support • Zero-DownTime (Hot-reload) • Event Driven 13 • Helth Check • Docker image • Least connections load balancing • Custom Configuration • Dynamic name resolution
  14. 14. https://www.flickr.com/photos/nadili/2563472441/ その他の Marathon 連携可能なロードバランサー候補 • hapoxy-consul • Hipache • Bamboo • moxy • Træf k • Vamp Router • Vulcand 14
  15. 15. https://www.flickr.com/photos/nadili/2563472441/ その他の Marathon 連携可能なロードバランサー候補 • hapoxy-consul - consul を挟む分だけ煩雑 • Hipache - 2015/02 で開発停止? • Bamboo - marathon-lb より優れているポイントがない • moxy - 枯れてないので除外 • Træf k - 枯れてないので除外 • Vamp Router - marathon-lb より優れているポイントがない • Vulcand - etcd 向け 15
  16. 16. https://www.flickr.com/photos/staffanscherz/6161284551/ 困ったこと • 負荷が高まると EventBus でも SSE でもイベント通知が遅延する。 • 概ね2∼4分。ダメになると延々と通知が来ない・・・ • Polling が一番安定的・・・ 16
  17. 17. https://www.flickr.com/photos/playingwithpsp/2280744328/ 困ったこと • 思ったほどスケールできない・・・ • イベント通知部分の安定性が・・・ • Polling で 2000 アプリ分くらいまでしか収容できない。 17
  18. 18. https://www.flickr.com/photos/stevehopson/403037117/ 忘れてるとハマりそうなこと • HAProxy 1.6 以前のバージョンでは、プロセスの起動時に名前解決して 取得したIPアドレスをキャッシュし続ける仕様だった。 • バックエンドサーバをドメイン名で書いた場合でも、ドメイン名の Aレ コードの内容が変更されても HAProxy は追跡しない仕様だった。 • HAProxy 1.6 では、resolvers を設定ファイル内で指定している場合、 HAProxyを再起動することなくリアルタイムで動的に名前解決が可能。 18
  19. 19. https://www.flickr.com/photos/jazbeck/6213634972/ DNS Base vs. Event Base • DNS ベースのアーキテクチャには下記のような懸念点が存在する。 • SRVクエリを使用しない限り、DNS は サービスポートを識別できない。 • ほとんどのアプリケーションは SRV レコードに対応していない。 • DNS レコードはTTLを持っているとキャッシュされる。 • DNS レコードはエンドポイントに対するステータスを持ちません。 • 一部のアプリケーションやライブラリは複数のAレコードを正しく処理しない。 19
  20. 20. https://www.flickr.com/photos/axelhartmann/16308797077/ よかったこと • Docker イメージが用意されている。(mesosphere/marathon-lb) • 中身は HAProxy なので枯れている。軽快で機能も豊富。 • app label での定義はわかりやすくて導入が簡単。 • consul や zookeeper を叩くAPIを書かなくてもいい。 • DCOSでも採用されいて Marathon 標準的な扱いなので心配が少ない。 20
  21. 21. https://www.flickr.com/photos/mdpettitt/8671901426/ Any Questions? 21

    Seja o primeiro a comentar

    Entre para ver os comentários

  • nakaharatm

    May. 29, 2016
  • dhyk

    May. 30, 2016
  • KanSakamoto

    Aug. 4, 2016

さくらガレージ勉強会用資料 @uzyexe

Vistos

Vistos totais

2.345

No Slideshare

0

De incorporações

0

Número de incorporações

53

Ações

Baixados

8

Compartilhados

0

Comentários

0

Curtir

3

×