Contenu connexe Similaire à Cloud Foundryリポジトリの歩き方 (20) Cloud Foundryリポジトリの歩き方3. 本日のお題
• リポジトリ多すぎ
– 32個(cfcrjp06) -> 52個(cfcrjp09): +20!
• CF(PaaS)のざっくりとした概要を解説
– 註:主要部以外を省略していることがあります
– 註:2012年9月3日時点の情報です
• リポジトリとのざっくりとした対応付け
5. Cloud Foundry..?
Application
Application
Application
Application
初期設定,運用等は Application
Application
Cloud Foundryに委譲
Cloud Foundry
IaaS等の上に
APIを介して 構築する方法も,
アプリケーションをデプロイ 実際には必要
アプリケーション開発者 アプリケーション利用者
6. Cloud Foundry.?
Application
Application
Application
Application
Application
Application
VCAP:
Vmware’s Cloud Application Platform
Cloud Foundry
BOSH:
Cloud Foundry BOSH
VMC:
The VMware Cloud CLI
アプリケーション開発者 アプリケーション利用者
7. Cloud Foundry?
• VCAP
– Open Platform as a Service
– いわゆるCloud Foundry
• VMC
– VCAPが外向けに用意しているAPI(HTTP)
• BOSH
– リリースエンジニアリングのツールチェーン
10. VCAP....?
Application
Application
Application
Application
Application
Application
VCAP:
Vmware’s Cloud Application Platform
Cloud Foundry
アプリケーション開発者 アプリケーション利用者
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
HTTPS
Router
アプリケーション利用者
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
HTTPS
Router
VMC
アプリケーション開発者
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 Controller
Router
アプリケーション開発者
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
HTTPS
Router
アプリケーション開発者 アプリケーション利用者
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
HTTPS
Router
アプリケーション開発者 アプリケーション利用者
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
HTTPS
Router
アプリケーション開発者 アプリケーション利用者
18. ルーティング
• 外からの通信はRouter(nginx)を介する
Cloud Foundry
Cloud Controller ApplicationApplication
Application
Application
Application
Application
Router: nginx + Lua拡張
アプリケーション開発者 アプリケーション利用者
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
HTTPS
Router
アプリケーション開発者 アプリケーション利用者
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. アプリケーションの隔離
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
HTTPS
Router
アプリケーション開発者 アプリケーション利用者
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
HTTPS
Router
アプリケーション開発者 アプリケーション利用者
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
HTTPS
Router
アプリケーション開発者 アプリケーション利用者
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 認証
オーケストレータ HTTPS
Router: ユーザとのI/F
31. VCAP!! warden
health_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. 落ちRepo拾い (1)
• vcap本体
– vcap: 言うまでもがなのリポジトリ
– acm: 認可コンポーネント
• 使われる気配無し
• 試験ツール
– vcap-tests: ユニットテスト
– vcap-test-assets: テスト用アプリ群
– vcap-yeti: BVTツール
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. 落ち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. 落ち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. 落ち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を提供するサービス