3. Developer Advocate @ Cloud Foundry
social web enthusiast
maker, educator, LEGO fan
OSS supporter / contributor
Eclipse Committer (Paho / MQTT)
excited by “what’s next”, Internet of Things, etc.
@andypiper
apiper@vmware.com
a few things about me
4. Capabilities
The Basics
How it Works (Architecture)
Micro Cloud Foundry
CONFIDENTIAL
9. Main Risk: Lock In Welcome to the hotel California
Such a lovely place
Such a lovely face
Plenty of room at the hotel California
Any time of year, you can find it here
Last thing I remember, I was
Running for the door
I had to find the passage back
To the place I was before
’relax,’ said the night man,
We are programmed to receive.
You can checkout any time you like,
But you can never leave!
-the Eagles
CONFIDENTIAL
12. Cloud Foundry: Clouds
AppFog.com
• community lead for PHP
• PaaS for PHP
Joyent
• community lead for Node.js
ActiveState
• community lead for Python, Perl
• Providers of Stackato private PaaS
CONFIDENTIAL
15. Cloud Foundry: Services
Services are one of the extensibility planes in Cloud Foundry
• there are more services being contributed by the community daily!
MySQL, Redis, MongoDB, RabbitMQ, PostgreSQL
Services may be shared across applications
Cloud Foundry abstracts the provisioning aspect of services
through a uniform API hosted in the Cloud Controller
It’s very easy to take an app and add a service to the app in a
uniform way
CONFIDENTIAL
16. Cloud Foundry: Services
Take Advantage of Services
• they cost nothing to setup
• they deliver value
They Encourage Better Architectures
• Need a fast read-write cache? Redis is ready to go!
• Need to store long-tail documents? Give MongoDB a try
• Need to decouple what applications do from when they do it?
Use messaging and RabbitMQ
CONFIDENTIAL
17. Demo: logging in,
asking questions, &
deploying from the CLI
CONFIDENTIAL
18. Demo: Using the tunnel to talk to your services
CONFIDENTIAL
20. Cloud Foundry - Architecture
Message Bus
Web Message Bus
Web Message Bus
(NATS)
(NATS)
(NATS)
100s of DEAs
Load
Load
App Load
Balancers
App Balancers
Balancers
App
DEAs
DEAs
DEAs
Cloud Routers
Routers
Cloud Routers
Cloud
Controllers
DB Controllers
Controllers
DB
DB
Web
Health
Health
Health
Service API
Services
Services
Services Manager
Manager
Manager
Client, e.g.
VMC
CONFIDENTIAL
21. Application deployment flow
find DEA
for app
vmc push I’m
create Cloud
VMC available DEA start
app Controller DEA Application
deploy
Framework droplet
detection
Framework
specific staging
plugin
update
routes
Creates
Droplet
Router
Router
CONFIDENTIAL
22. About the staging plugin
Framework specific
Creates a zip file = black box
• Contains everything necessary for DEA to run the application
• Two scripts: start.sh, stop.sh
CONFIDENTIAL
24. Self Healing Infrastructure
If an application instance crashes
• DEA detects unexpected exit => DEA broadcasts message
• Routers remove instance from routing
• Health manager notifies Cloud Controller
• Cloud Controller re-launches instance
If an DEA VM crashes
• Application instances become unavailable
• Health Manager notices the missing instances and notifies the
Cloud Controller
• Cloud Controller requests application instances to be started
• Existing DEA will reply and start the applications
CONFIDENTIAL
26. What is in Micro Cloud Foundry?
App Instances Services
Open source Platform as a Service project
A cloud packaged as a VMware Virtual Machine
Use as a developer sandbox
• Use the services from Junit integration tests
• Deploy your application for functional testing
• Remote debugging from STS
CONFIDENTIAL
27. Pre-requisites for using Micro Cloud Foundry
Minimum 1 GB Minimum 8 GB Internet Connectivity
RAM Disk (w/DHCP is ideal)
VMC STS
Command line GUI
CONFIDENTIAL
39. Installing vmc on Mac OSX
Use Ruby Version Manager http://beginrescueend.com/
$ curl -L https://get.rvm.io | bash -s stable --ruby
$ rvm install 1.9.2
$ rvm use 1.9.2
You need:
$ gem install vmc
Command Line Tools for OSX or
XCode 4.1
CONFIDENTIAL