Cloud Foundry is an open platform as a service (PaaS) that handles infrastructure management and allows developers to focus on building applications. It supports multiple languages and frameworks. Cloud Foundry provides automatic provisioning of services, automatic configuration of connection settings, and automatic scaling of applications. Developers can deploy applications to Cloud Foundry hosted providers or run their own local instance for testing deployments. Cloud Foundry aims to make deployment and management of cloud applications simple by abstracting away underlying infrastructure.
2. The story so far...
Development and deployment
of Java applications
NOT CONFIDENTIAL -- TELL EVERYONE 2
3. Where do I host my application?
Shared Dedicated Own
• Cheapest • Delegate infra. • Full control
management
• Better performing
than shared
• Control of resources
• ...but not as cheap as • Not cheap • Not cheap
LAMP • You’re responsible for
• Reliability server management
• Poor performance • Capital cost +
depreciation
NOT CONFIDENTIAL -- TELL EVERYONE 3
4. Where do I host my application?
...and scaling?
NOT CONFIDENTIAL -- TELL EVERYONE 4
5. In the enterprise
Dev Ops
• Time to set up • Manual management of
environment clustering...
• Provisioning delays • ...and load balancing
• Manage all datastores,
message brokers, etc.
• Dedicated hardware
expensive + overhead
NOT CONFIDENTIAL -- TELL EVERYONE 5
7. The promise of PaaS
App 1 App 2 App 3
Platform
Servlet Container Database Other services
Infrastructure
CPU Memory OS
• Zero config
• Automatic provisioning
NOT CONFIDENTIAL -- TELL EVERYONE 7
8. Introducing...
• It’s a PaaS
• It’s open source
• It’s provider agnostic
• Has a local micro cloud
NOT CONFIDENTIAL -- TELL EVERYONE 8
10. Choice of services
.js
Ap
pli
ca
tio
n
Data Services
Se
rv
ice
In t
Msg Services
er
fa
ce
Other Services
NOT CONFIDENTIAL -- TELL EVERYONE 10
11. Choice of clouds
.js
Ap
pli
ce
ca
fa
er
tio
nt
Private
n
Data Services
I
Clouds
Se
er
…
rv
id
ov
ice
Public
Pr
In t
Msg Services Clouds
d
ou
er
fa
Cl
.COM
Micro
ce
Clouds
Other Services
NOT CONFIDENTIAL -- TELL EVERYONE 11
14. Java Developer Perspective
• Program to standard APIs
– JDBC, Hibernate, MongoDB, etc.
• Either
– Pull connection settings from VCAP_SERVICES
• Or
– from http://maven.springframework.org/milestone:
<dependency>
<groupId>org.cloudfoundry</groupId>
<artifactId>cloudfoundry-runtime</artifactId>
<version>0.7.0</version>
</dependency>
NOT CONFIDENTIAL -- TELL EVERYONE 14
15. Java Developer Perspective
• Deploy application to cloud using
– vmc command line tool (install via RubyGems);
– Eclipse/STS Cloud Foundry plugin;
– Spring Roo Cloud Foundry add-on; or
– Grails Cloud Foundry plugin
• Create and bind services
• Restart application
• and...erm...that’s it
NOT CONFIDENTIAL -- TELL EVERYONE 15
16. The Spring advantage
• Auto-staging and reconfiguration
– Connection settings automatically configured at runtime
– No need to read VCAP_SERVICES
• Spring 3.1
– “cloud” profile enabled
– PropertySource injected
• Easier APIs
– Spring Data
– Spring AMQP
NOT CONFIDENTIAL -- TELL EVERYONE 16
17. MicroCloud
• Run a Cloud Foundry instance locally
– Not yet available for download
– ...but you can build your own
https://github.com/cloudfoundry/vcap
• Test cloud deployment
PaaS
NOT CONFIDENTIAL -- TELL EVERYONE 17
18. CloudFoundry.com
• VMware CloudFoundry provider
– In open beta
– You can sign up at http://www.cloudfoundry.com/signup
• Expect other providers
– Cloud Foundry is an open PaaS
NOT CONFIDENTIAL -- TELL EVERYONE 18
19. A sample cloud deployment
Create WAR
vmc target api.cloudfoundry.com
vmc push myApp
Then
vmc login
Bind services
Point browser at
http://myApp.cloudfoundry.com/
NOT CONFIDENTIAL -- TELL EVERYONE 19
20. Quick peek under the hood
browser
vmc client STS plugin (user app access)
Router
Cloud Controller user apps user apps Health Manager
Services: core, ecosystem, etc. DEA: execution environment
Infrastructure
NOT CONFIDENTIAL -- TELL EVERYONE 20
23. Summary
• Cloud Foundry is an open PaaS
– Infrastructure no longer your problem
– Move your apps between CF providers
• Multiple language & framework support
• Service model
• CloudFoundry.com is a hosting provider
– Currently in extended beta
– RightScale announced beta CF template for AWS
– You can still sign up!
• Restrictions
– No persistent file system
– Only HTTP(S) outbound traffic
NOT CONFIDENTIAL -- TELL EVERYONE 23
24. More info
• Cloud Foundry links:
– CloudFoundry.org & CloudFoundry.com
– https://github.com/cloudfoundry
– https://github.com/SpringSource/cloudfoundry-samples
• General Information:
– http://youtube.com/SpringSourceDev
– http://blog.springsource.com/category/springsource/vmware-
springsource/cloud-foundry/
– Spring Data: http://springsource.org/spring-data/
– Spring: http://springframework.org/
NOT CONFIDENTIAL -- TELL EVERYONE 24