• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
NATS on VCAP
 

NATS on VCAP

on

  • 2,296 views

2011-11-17

2011-11-17
第2回Cloud Foundry輪読会
#cfcrjp

Statistics

Views

Total Views
2,296
Views on SlideShare
2,293
Embed Views
3

Actions

Likes
2
Downloads
24
Comments
0

1 Embed 3

http://a0.twimg.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    NATS on VCAP NATS on VCAP Presentation Transcript

    • 第2回 Cloud Foundry 輪読会VCAPの中のNATSVCAPの Katsunori Kawaguchi @hamakn 2011-11-17
    • VCAPの各コンポーネント間の メッセージングに、NATSがどう利用されているかをサンプルを見ながら共有します。
    • アジェンダ1. 復習:NATSとは?2. NATSとCF各コンポーネント3. ケーススタディ 1. アプリのデプロイ時 2. アプリの削除時 3. DEAの障害発生時4. まとめ TODO: 今回はちゃんと 20分で終わらせます…
    • 自己紹介• 川口 克則 @hamakn• NTTコム所属• Web/スマートフォンアプリの開発 主にRails• Cloud Foundryを検証中(2011年10月~) – 最近は、アカウント払出/管理アプリを作ったり、 vcapノードの追加/管理ツールを作ったり。
    • 復習:NATSとは?1. NATSは、 EventMachineを使い、 Rubyで実装された、 軽量なPub/Sub メッセージングシステム2. Cloud FoundryはNATSを使っている 疎結合で自律的なシステムをNATSで実現。 ※詳細は前回の資料 http://www.slideshare.net/hamakn/reading-nats などを参照してください。
    • NATSとCloud Foundry この実装がNATS Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
    • NATSとCloud Foundry(2) 青い 矢印が NATSのメッセージ Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
    • 例 subject: dea.discover mem:256 disk:2048 fds:256 runtime:ruby このアプリを実行できるDEAいる? Cloud reply:Controller できるよー DEA subject: router.register url:test.cloudfoundry.com host:172.16.0.10 port:10000 というアプリを登録よろしく > router DEA
    • NATSメッセージの確認• NATSの入っているサーバで $ nats-sub ‘>’ –s nats://nats_address:nats_port/ Listening on [>] [#1] Received on [router.start] : … – ‘>’ で全てのpublishされたメッセージをListen• vcap自体のログと合わせて見ると 動きが把握しやすい• ソースを追う時は、 NATS/publish/subscribe などでgrepするといい
    • ケーススタディ
    • 1. アプリのデプロイ時 ccと service ccとhm とdea
    • 1-1. Cloud Controllerと Serviceのやり取り# Publisher Subscriber Subject Context1 cc service *aaS.discover serviceの存在確認2 service cc reply to #1 service idと残容量の返答3 cc service *aaS.provision.service_id #2のserviceへの provision要求4 service cc reply to #3 DB, user, passwdなどの 返答5 cc service *aaS.bind.service_id #4のserviceへの bind要求6 service cc reply to #5 bind結果の返答
    • NATSとCloud Foundry(2) 1.1のやり取り Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
    • 1-2. CC, HM, deaのやり取り (前半: Stagingまで)# Publisher Subscriber Subject Context1 cc hm droplet.updated dropletのupdateの通知2 cc dea dea.discover memoryやruntimeの条件に合う deaの返答要求3 dea cc reply to #2 #2に対して、 受け入れ可能な返答4 cc dea dea.dea_id.start dea_idのアプリの実行開始要求
    • NATSとCloud Foundry(2) 1.2のやり取り Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
    • 1-3. CC, HM, deaのやり取り (後半: アプリ実行開始まで)# Publisher Subscriber Subject Context1 cc hm healthmanager.health アプリのhealth状況の問い合 わせ(instance数)2 hm cc reply to #13 cc hm healthmanager.status アプリのstatus状況の問い合 わせ(flapping, crushed)4 hm cc reply to #35 hm dea dea.heartbeat heartbeat1~5を繰り返す6 dea router router.register アプリのhost:portへの regist要求
    • NATSとCloud Foundry(2) 1.3のやり取り Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
    • まとめ• NATSがvcapでどう使われているかを 具体例とともに見てみました – この仕組みによって、CloudFoundryは 疎結合で自律的なシステムになっています。• コードを追う際は、 – 全メッセージをsubscribeする NATSクライアントが便利 – git grep NATS/publish/subscribe が便利