Cloud Computing
Cloud Computing
Derek Collison
What is PaaS?
aPaaS
aPaaS
What is OpenPaaS?
OpenPaaS
Multi-Language Multi-Framework Multi-Services Multi-Cloud, Multi-IaaS Hybrid - Public or Private or Both OpenSource
9
OpenPaaS
Multi-Language
Multi-Services
AWS
10
Ap pli
Int e
Data Services
rfa
vFabric Postgres
Private Clouds
dP
ro
Msg Services
vid
vFabric RabbitMQTM
Other Services
11
Cl
ou
er
Micro Clouds
ce
Public Clouds
12
What was our Goal? Raise the unit of currency to be the application and its associated services, not the infrastructure
13
What was our Goal? Best of breed delivery platform for all modern applications and frameworks
14
15
16
17
High Level
Clients (VMC, STS, Browser)
CF Kernel
Orchestrator
IaaS
Hardware - CPU/Memory/Disk/Network
18
Basic Premises
Fail Fast Self Healing Horizontally Scalable Components Distributed State No Single Point of Failure Should be as simple as possible
19
Basic Patterns
Basic Design
Kernel Components
All dynamically discoverable Launch and scale in any order Can come and go as needed Monitor via HTTP and JSON Location independent
22
Kernel Components
Logical View
VMC client STS plugin Browser (user app access)
Routers
CloudControllers
App
App HealthManager
Services
DEA Pool
Messaging
24
25
Architecture
Messaging
26
Messaging
The Nervous System
27
Messaging
VMC client STS plugin Browser (user app access)
Routers
CloudControllers
App
App HealthManager
Services
DEA Pool
Messaging
28
Messaging
Addressing and Discovery Command and Control Central communication system Dial tone, fire and forget Protects *itself* at all costs Idempotent semantics
29
Router
30
Router
Traffic Cop
31
Router
VMC client STS plugin Browser (user app access)
Routers
CloudControllers
App
App HealthManager
Services
DEA Pool
Messaging
32
Router
Handles all HTTP traffic Maintains distributed routing state Routes URLs to applications Distributes load among instances Realtime distributed updates to
routing tables from DEAs
33
CloudController
34
CloudController
The King
35
CloudController
VMC client STS plugin Browser (user app access)
Routers
CloudControllers
App
App HealthManager
Services
DEA Pool
Messaging
36
CloudController
Handles all state transitions Deals with users, apps, and services Packages and Stages applications Binds Services to Applications Presents external REST API
37
HealthManager
38
HealthManager
Court Jester
39
HealthManager
VMC client STS plugin Browser (user app access)
Routers
CloudControllers
App
App HealthManager
Services
DEA Pool
Messaging
40
HealthManager
Monitors the state of the world Initial value with realtime delta
DEA
42
DEA
Droplet Execution Agent
43
DEA
VMC client STS plugin Browser (user app access)
Routers
CloudControllers
App
App HealthManager
Services
DEA Pool
Messaging
44
DEA
45
46
Pushing an App
Client (VMC/STS) pushes meta-data to CC Client optionally pushes resource
signatures (diff analysis, sys wide)
Client pushes app resources to CC CC puts app together CC stages app asynchronously CC binds and stages services Droplet ready
47
48
Architecture
Running an App
49
CC asks DEAs for help First DEA back wins! Simple CC sends start request to selected DEA DEA pushes the green button DEA waits and monitors pid and ephemeral port for app to bind When app is healthy, sends register message Register message is seen by HM and Routers Routers bind URL to host:port
DEAs answer?
Crashes?
If your app stops and we did not tell
it to, that is a crash
Routers disconnect route instantly HM will signal CC CC will issue run sequence again
52
something is wrong
53
Architecture
Access to my App?
All routers understand where all
instances of your application are running
55
Services
VMC client STS plugin Browser (user app access)
Routers
CloudControllers
App
App HealthManager
Services
DEA Pool
Messaging
56
Services
Service Advertisement Service Provisioning Gateway fronts multi-backends Service Nodes scale independent App and service talk directly API to register into system Closure for additional value
57
Provisioning
VMC/STS
1 2
Routers
CloudControllers
6 5
Services Gateway
3 4
Application
Messaging
58
Access (Direct)
Browser (user app access)
Routers
CloudControllers
Services Gateway
Application
Messaging
59
Services
VMware Dev Tools
Cloud Foundry consume
apps
consume bind
Data Director
service broker
SQLFire
vSphere
60
Learn more:
www.cloudfoundry.org blog.cloudfoundry.com support.cloudfoundry.com
61
Thank You
62
Questions?
[email protected] [email protected] twitter: derekcollison
63