Cloud Foundryリポジトリの歩き方     車谷駿介
#whoami• 普段はNTTで研究開発に従事 – Cloud FoundryひいてはPaaS – (勝手に)分散処理する技術 – スマートフォン向けのシンクライアント技術• 元を辿るとa11y畑だった,ような.
本日のお題• リポジトリ多すぎ – 32個(cfcrjp06) -> 52個(cfcrjp09): +20!• CF(PaaS)のざっくりとした概要を解説 – 註:主要部以外を省略していることがあります – 註:2012年9月3日時点の情報です...
cloudfoundry/*• 52 Public Repositories (2012-09-03)
Cloud Foundry..?                    Application                     Application                      Application          ...
Cloud Foundry.?                        Application                         Application                          Applicatio...
Cloud Foundry?• VCAP – Open Platform as a Service – いわゆるCloud Foundry• VMC – VCAPが外向けに用意しているAPI(HTTP)• BOSH – リリースエンジニアリング...
cloudfoundry/*• VCAP/VMC/BOSH + 雑多なライブラリ等
どんな機能を,何というコンポーネントが実現しているか……VCAP入門
VCAP....?                        Application                         Application                          Application     ...
VCAP...?Cloud Foundry                                         Application                                        Applicati...
VCAP..?Cloud Foundry                                                       Application                                    ...
VCAP.?  Health Manager              NATS Server           NATS: Messaging Bus                                 Application ...
VCAP?  Health Manager              NATS Server           NATS: Messaging Bus                                 Application  ...
ノード間の通信  Health Manager              NATS Server           NATS: Messaging Bus                                 Application...
ノード間の通信• 軽量メッセージングバス「NATS」を使用• http://github.com/derekcolison/nats• テキストベース                         PUB foo bar 11rn      ...
ルーティング  Health Manager              NATS Server           NATS: Messaging Bus                                 Application ...
ルーティング• 外からの通信はRouter(nginx)を介する                     Cloud Foundry       Cloud Controller     ApplicationApplication      ...
アプリケーションのデプロイ  Health Manager              NATS Server           NATS: Messaging Bus                                 Appli...
アプリケーションのデプロイ• Stagerでパッケージング(vcap-staging) – インストーラ,起動スクリプトなど                 Cloud Foundry                          Blob...
アプリケーションの動作環境• Runtime  – Java 6/7, Scala, Ruby 1.8/1.9, PHP 5,    Node.js 0.4/0.6/0.8, etc.• Framework  – Spring, Groovy,...
アプリケーションの隔離  Health Manager              NATS Server           NATS: Messaging Bus                                 Applica...
アプリケーションの隔離• DEAによって管理される• wardenコンテナで隔離される予定                   Cloud Foundry                       DEA    Wardenコンテナ     ...
サービスの活用  Health Manager              NATS Server           NATS: Messaging Bus                                 Application...
サービスの活用• DBやキュー等の付加機能を用意できる• アプリケーションはサービスへ直接アクセス          Cloud Foundry       Service Node             DEA      Wardenコンテ...
サービスの割り当て• Service Gatewayがプロビジョニング – Service Nodeに対する認証情報を払い出し                  Cloud Foundry              Service Node  ...
サービスのバックアップ等• Service Workerが幾つかの処理をになう – シリアライズやスナップショット作成                   Cloud Foundry               Service Node    ...
アプリケーションの死活監視  Health Manager              NATS Server           NATS: Messaging Bus                                 Appli...
アプリケーションの死活監視• Cloud Controllerが期待する状態を把握• Health Managerが実態を把握・修正要求• DEAはアプリケーションの実状態を監視                   Cloud Foundry ...
VCAP!Health Manager: 死活監視         NATS: Messaging          NATS: Messaging Bus                                Application ...
VCAP!!                               wardenhealth_manager[_next]          nats                                            ...
落ちRepo拾い (1)• vcap本体 – vcap:     言うまでもがなのリポジトリ – acm:      認可コンポーネント   • 使われる気配無し• 試験ツール – vcap-tests:         ユニットテスト – v...
落ちRepo拾い (2)• その他 – caldecott:         TCP over HTTPを実現     • 外とService間を接続する際等に利用 –   common:          いわゆるcommon –   mem...
落ちRepo拾い (3)• リリースエンジニアリングのツールチェーン – bosh• BOSH向け環境構築セット –   bat-release:     BOSH Acceptance Tests –   bosh-release:    B...
落ちRepo拾い (4)• ドキュメント類  – cf-docs:   docs.cloudfoundry.com  – oss-docs• Micro Cloud Foundry関係  – micro: “This repository is...
落ちRepo拾い (5)• その他 –   eventmachine:   同名のGemのフォーク –   gerrit_test:    レビューシステムの練習用 –   gonats:         go言語のNATSクライアント –  ...
Upcoming SlideShare
Loading in …5
×

Cloud Foundryリポジトリの歩き方

1,995 views
1,911 views

Published on

2012年9月13日に実施された,第9回CloudFoundry輪読会の発表資料です.イベントについては http://atnd.org/events/31797 を参照ください.

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

No Downloads
Views
Total views
1,995
On SlideShare
0
From Embeds
0
Number of Embeds
281
Actions
Shares
0
Downloads
32
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Cloud Foundryリポジトリの歩き方

  1. 1. Cloud Foundryリポジトリの歩き方 車谷駿介
  2. 2. #whoami• 普段はNTTで研究開発に従事 – Cloud FoundryひいてはPaaS – (勝手に)分散処理する技術 – スマートフォン向けのシンクライアント技術• 元を辿るとa11y畑だった,ような.
  3. 3. 本日のお題• リポジトリ多すぎ – 32個(cfcrjp06) -> 52個(cfcrjp09): +20!• CF(PaaS)のざっくりとした概要を解説 – 註:主要部以外を省略していることがあります – 註:2012年9月3日時点の情報です• リポジトリとのざっくりとした対応付け
  4. 4. cloudfoundry/*• 52 Public Repositories (2012-09-03)
  5. 5. Cloud Foundry..? Application Application Application Application 初期設定,運用等は Application Application Cloud Foundryに委譲 Cloud Foundry IaaS等の上に APIを介して 構築する方法も, アプリケーションをデプロイ 実際には必要アプリケーション開発者 アプリケーション利用者
  6. 6. Cloud Foundry.? Application Application Application Application Application ApplicationVCAP:Vmware’s Cloud Application Platform Cloud Foundry BOSH: Cloud Foundry BOSH VMC: The VMware Cloud CLI アプリケーション開発者 アプリケーション利用者
  7. 7. Cloud Foundry?• VCAP – Open Platform as a Service – いわゆるCloud Foundry• VMC – VCAPが外向けに用意しているAPI(HTTP)• BOSH – リリースエンジニアリングのツールチェーン
  8. 8. cloudfoundry/*• VCAP/VMC/BOSH + 雑多なライブラリ等
  9. 9. どんな機能を,何というコンポーネントが実現しているか……VCAP入門
  10. 10. VCAP....? Application Application Application Application Application ApplicationVCAP:Vmware’s Cloud Application Platform Cloud Foundry アプリケーション開発者 アプリケーション利用者
  11. 11. VCAP...?Cloud Foundry Application Application Application DEA: Application Application Application DEA: Application Application Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent UAA HTTPSRouter アプリケーション利用者
  12. 12. VCAP..?Cloud Foundry Application Application Application DEA: Application Application Application DEA: Application Application Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud Controller HTTPSRouter VMC アプリケーション開発者
  13. 13. VCAP.? Health Manager NATS Server NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud ControllerRouter アプリケーション開発者
  14. 14. VCAP? Health Manager NATS Server NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud Controller HTTPSRouter アプリケーション開発者 アプリケーション利用者
  15. 15. ノード間の通信 Health Manager NATS Server NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud Controller HTTPSRouter アプリケーション開発者 アプリケーション利用者
  16. 16. ノード間の通信• 軽量メッセージングバス「NATS」を使用• http://github.com/derekcolison/nats• テキストベース PUB foo bar 11rn Hello Worldrn SUB bar 22rn ...
  17. 17. ルーティング Health Manager NATS Server NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud Controller HTTPSRouter アプリケーション開発者 アプリケーション利用者
  18. 18. ルーティング• 外からの通信はRouter(nginx)を介する Cloud Foundry Cloud Controller ApplicationApplication Application Application Application Application Router: nginx + Lua拡張アプリケーション開発者 アプリケーション利用者
  19. 19. アプリケーションのデプロイ Health Manager NATS Server NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud Controller HTTPSRouter アプリケーション開発者 アプリケーション利用者
  20. 20. アプリケーションのデプロイ• Stagerでパッケージング(vcap-staging) – インストーラ,起動スクリプトなど Cloud Foundry Blobstore: キャッシュ 必要に応じて ライブラリ等を自動取得 Gems, npm等 Stager: パッケージング DEA: 起動 UAA: 認証 Cloud Controller Router
  21. 21. アプリケーションの動作環境• Runtime – Java 6/7, Scala, Ruby 1.8/1.9, PHP 5, Node.js 0.4/0.6/0.8, etc.• Framework – Spring, Groovy, Play!, Ruby on Rails, etc.• Services – 言語実行形以外の依存要素 – MySQL, filesystem, Redis, ElasticSearch, etc.
  22. 22. アプリケーションの隔離 Health Manager NATS Server NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud Controller HTTPSRouter アプリケーション開発者 アプリケーション利用者
  23. 23. アプリケーションの隔離• DEAによって管理される• wardenコンテナで隔離される予定 Cloud Foundry DEA Wardenコンテナ Wardenコンテナ Application 各コンテナにNWを用意してNAT (+ iptables etc.) Router
  24. 24. サービスの活用 Health Manager NATS Server NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud Controller HTTPSRouter アプリケーション開発者 アプリケーション利用者
  25. 25. サービスの活用• DBやキュー等の付加機能を用意できる• アプリケーションはサービスへ直接アクセス Cloud Foundry Service Node DEA Wardenコンテナ Wardenコンテナ Service Application Cloud Controller
  26. 26. サービスの割り当て• Service Gatewayがプロビジョニング – Service Nodeに対する認証情報を払い出し Cloud Foundry Service Node DEA Wardenコンテナ Wardenコンテナ Service Application Service Gateway Cloud Controller
  27. 27. サービスのバックアップ等• Service Workerが幾つかの処理をになう – シリアライズやスナップショット作成 Cloud Foundry Service Node DEA Wardenコンテナ Wardenコンテナ Service Service Application Worker Service Gateway Cloud Controller
  28. 28. アプリケーションの死活監視 Health Manager NATS Server NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP Service UAA Service Cloud Controller HTTPSRouter アプリケーション開発者 アプリケーション利用者
  29. 29. アプリケーションの死活監視• Cloud Controllerが期待する状態を把握• Health Managerが実態を把握・修正要求• DEAはアプリケーションの実状態を監視 Cloud Foundry Cloud Controller DEA Wardenコンテナ Application Health Manager
  30. 30. VCAP!Health Manager: 死活監視 NATS: Messaging NATS: Messaging Bus Application Application Application DEA: Application Application Application DEA: Application Application Stager Blobstore Application Droplet Execution Agent DEA: Droplet Execution Agent Droplet Execution Agent TCP UAA: Cloud Controller: Service 認証 オーケストレータ HTTPSRouter: ユーザとのI/F
  31. 31. VCAP!! wardenhealth_manager[_next] nats Application Application Application Application Application Application Application Application † Application dea[_ng] vcap- cloud_controller services uaa [_ng] (-base)router ‡ † stager(-client), vcap-staging, vcap(-java, node, ruby) ‡ vmc-lib, vmc-glue, vmc-plugins || vmc || vcap-java-client
  32. 32. 落ちRepo拾い (1)• vcap本体 – vcap: 言うまでもがなのリポジトリ – acm: 認可コンポーネント • 使われる気配無し• 試験ツール – vcap-tests: ユニットテスト – vcap-test-assets: テスト用アプリ群 – vcap-yeti: BVTツール
  33. 33. 落ちRepo拾い (2)• その他 – caldecott: TCP over HTTPを実現 • 外とService間を接続する際等に利用 – common: いわゆるcommon – membrane: オブジェクトの妥当性検証 – package_cache: gemsや処理系等をキャッシュ – steno: loggerもどき – vcap-common: いわゆるcommon(vcap特化) • vcap-concurrency: 並列実行のサポート – vcap-tools: ツールチェーン
  34. 34. 落ちRepo拾い (3)• リリースエンジニアリングのツールチェーン – bosh• BOSH向け環境構築セット – bat-release: BOSH Acceptance Tests – bosh-release: BOSH – bosh-sample-release – cf-release: Cloud Foundry (VCAP) – oss-release – vcap-services-sample-release
  35. 35. 落ちRepo拾い (4)• ドキュメント類 – cf-docs: docs.cloudfoundry.com – oss-docs• Micro Cloud Foundry関係 – micro: “This repository is currently broken” – micro-deployments: “Nothing to see here”
  36. 36. 落ちRepo拾い (5)• その他 – eventmachine: 同名のGemのフォーク – gerrit_test: レビューシステムの練習用 – gonats: go言語のNATSクライアント – gonit: go言語の監視ツール(monit) • gosigar: go言語のsigar API実装 – oss-tools: 雑多なツール類 • Pull Req.自動応答や,JenkinsのJob同期スクリプト – vblob: S3互換I/Fを提供するサービス

×