第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: 今回はちゃんと          ...
自己紹介• 川口 克則 @hamakn• NTTコム所属• Web/スマートフォンアプリの開発  主にRails• Cloud Foundryを検証中(2011年10月~) – 最近は、アカウント払出/管理アプリを作ったり、   vcapノード...
復習:NATSとは?1. NATSは、   EventMachineを使い、   Rubyで実装された、   軽量なPub/Sub メッセージングシステム2. Cloud FoundryはNATSを使っている   疎結合で自律的なシステムをNA...
NATSとCloud Foundry この実装がNATS           Cloud Foundry The building of the Open PaaS OSCON2011              http://www.slide...
NATSとCloud Foundry(2)   青い  矢印が NATSのメッセージ       Cloud Foundry The building of the Open PaaS OSCON2011               http:...
例             subject: dea.discover             mem:256 disk:2048 fds:256 runtime:ruby             このアプリを実行できるDEAいる?  Clou...
NATSメッセージの確認• NATSの入っているサーバで $ nats-sub ‘>’ –s nats://nats_address:nats_port/ Listening on [>] [#1] Received on [router.st...
ケーススタディ
1. アプリのデプロイ時           ccと           service           ccとhm           とdea
1-1. Cloud Controllerと                Serviceのやり取り# Publisher Subscriber Subject                Context1 cc        service...
NATSとCloud Foundry(2)   1.1のやり取り            Cloud Foundry The building of the Open PaaS OSCON2011               http://www...
1-2. CC, HM, deaのやり取り           (前半: Stagingまで)# Publisher Subscriber Subject        Context1 cc        hm         droplet...
NATSとCloud Foundry(2)   1.2のやり取り            Cloud Foundry The building of the Open PaaS OSCON2011               http://www...
1-3. CC, HM, deaのやり取り         (後半: アプリ実行開始まで)# Publisher Subscriber Subject            Context1 cc        hm         healt...
NATSとCloud Foundry(2)   1.3のやり取り            Cloud Foundry The building of the Open PaaS OSCON2011               http://www...
まとめ• NATSがvcapでどう使われているかを  具体例とともに見てみました – この仕組みによって、CloudFoundryは   疎結合で自律的なシステムになっています。• コードを追う際は、 – 全メッセージをsubscribeする ...
Upcoming SlideShare
Loading in …5
×

NATS on VCAP

2,661 views

Published on

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

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,661
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
30
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

NATS on VCAP

  1. 1. 第2回 Cloud Foundry 輪読会VCAPの中のNATSVCAPの Katsunori Kawaguchi @hamakn 2011-11-17
  2. 2. VCAPの各コンポーネント間の メッセージングに、NATSがどう利用されているかをサンプルを見ながら共有します。
  3. 3. アジェンダ1. 復習:NATSとは?2. NATSとCF各コンポーネント3. ケーススタディ 1. アプリのデプロイ時 2. アプリの削除時 3. DEAの障害発生時4. まとめ TODO: 今回はちゃんと 20分で終わらせます…
  4. 4. 自己紹介• 川口 克則 @hamakn• NTTコム所属• Web/スマートフォンアプリの開発 主にRails• Cloud Foundryを検証中(2011年10月~) – 最近は、アカウント払出/管理アプリを作ったり、 vcapノードの追加/管理ツールを作ったり。
  5. 5. 復習:NATSとは?1. NATSは、 EventMachineを使い、 Rubyで実装された、 軽量なPub/Sub メッセージングシステム2. Cloud FoundryはNATSを使っている 疎結合で自律的なシステムをNATSで実現。 ※詳細は前回の資料 http://www.slideshare.net/hamakn/reading-nats などを参照してください。
  6. 6. NATSとCloud Foundry この実装がNATS Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
  7. 7. NATSとCloud Foundry(2) 青い 矢印が NATSのメッセージ Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
  8. 8. 例 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
  9. 9. NATSメッセージの確認• NATSの入っているサーバで $ nats-sub ‘>’ –s nats://nats_address:nats_port/ Listening on [>] [#1] Received on [router.start] : … – ‘>’ で全てのpublishされたメッセージをListen• vcap自体のログと合わせて見ると 動きが把握しやすい• ソースを追う時は、 NATS/publish/subscribe などでgrepするといい
  10. 10. ケーススタディ
  11. 11. 1. アプリのデプロイ時 ccと service ccとhm とdea
  12. 12. 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結果の返答
  13. 13. NATSとCloud Foundry(2) 1.1のやり取り Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
  14. 14. 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のアプリの実行開始要求
  15. 15. NATSとCloud Foundry(2) 1.2のやり取り Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
  16. 16. 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要求
  17. 17. NATSとCloud Foundry(2) 1.3のやり取り Cloud Foundry The building of the Open PaaS OSCON2011 http://www.slideshare.net/derekcollison/oscon-2011
  18. 18. まとめ• NATSがvcapでどう使われているかを 具体例とともに見てみました – この仕組みによって、CloudFoundryは 疎結合で自律的なシステムになっています。• コードを追う際は、 – 全メッセージをsubscribeする NATSクライアントが便利 – git grep NATS/publish/subscribe が便利

×