Cloud Foundry was created by VMware to simplify application deployment. It was later open sourced and the Cloud Foundry Foundation was formed by Pivotal, EMC, IBM, Rackspace and VMware. Cloud Foundry supports various programming languages, frameworks and databases. It provides tools for deploying, managing and scaling applications on private and public clouds. While installation can be complex, deployment of applications is straightforward for developers.
Review: Cloud Foundry brings power and polish to PaaS
1. GET TECHNOLOGY RIGHTยฎ
JULY 16, 2014
Copyright ยฉ 2014 by InfoWorld Media Group, Inc., a subsidiary of IDG Communications Inc. Posted from InfoWorld, 501 Second Street, San Francisco, CA 94107.
#C30336 Managed by The YGS Group, 800.290.5460. For more information visit www.theYGSgroup.com/content.
Cloud Foundry was created by VMware to
streamline deployment for application developers,
application operators, and cloud operators. Then
in April 2011, Cloud Foundry was announced as
open source under the Apache 2.0 license, with the
pitch to developers that they could code in the lan-
guage and Web framework of their choice without
worrying about the IT environment.
In February 2014, VMware spin-off Piv-
otal announced the formation of the Cloud
Foundry Foundation, with Pivotal, EMC, IBM,
Rackspace, and VMware as Platinum spon-
sors. The foundation has since expanded to 33
members and 42 contributing companies. One
differentiator for Cloud Foundry is support
for Pivotal HD Hadoop MapReduce, HAWQ
SQL for Hadoop, and GemFire XD analytics.
Another is the availability of the Pivotal Mobile
Services Suite, thanks to last yearโs acquisition
of Xtreme Labs. Pivotalโs big data services and
mobile services are both now integrated with
Pivotal CF, the companyโs enterprise version
of Cloud Foundry.
Several Cloud Foundry Foundation mem-
bers have released their own distributions
of Cloud Foundry, including ActiveState
with its Stackato product. The free Stackato
Micro Cloud comes packaged for VirtualBox,
VMware Fusion/Player, VMware vSphere, and
KVM. While the Micro Cloud Foundry VM has
not yet been updated to Cloud Foundry v2, you
can install Cloud Foundry open source locally
using either bosh-lite or cf_nise_installer.
Bosh-lite supports VMware Fusion/Player,
VirtualBox, and Amazon Web Services, while
cf_nise_installer only supports VirtualBox.
I asked Pivotal about the lack of a Micro
Cloud Foundry v2 VM and got this response
from Jamie OโMeara, Pivotal CF community
engineer:
Our focus is on delivering an enter-
prise PaaS experience for Cloud Foundry,
which includes installation into a num-
ber of cloud providers like vSphere/vCHS,
OpenStack, AWS, and Google Compute
Engine. As part of the experience, we
found developers willing to build and use
their local tools or to push to private and
public instances of Cloud Foundry.
Bosh-lite is a tool that offers support
for a portion of CF v2 and is used to per-
form specific tasks such as building BOSH
deployable services like a database. It
is not a replacement for Micro Cloud
Foundry, which is still on our roadmap.
Stackatoโs Micro is based on CF v2 with
some proprietary additions.
Pivotal itself has two Cloud Foundry PaaS
offerings: the online Pivotal Web Services,
and the enterprise-oriented Pivotal CF. These
are complemented by Pivotal HD and related
cloud service offerings, as well as other spe-
cialized data offerings such as the Pivotal
Greenplum RDBMS, Pivotal GemFire, and Piv-
otal SQLFire. In addition, Pivotalโs acquisition
last year of Xtreme Labs has given it a suite of
mobile services that integrates with its PaaS
and its big data services.
As mentioned in the statement by Jamie
OโMeara, Pivotal CF runs on VMware, Open-
Stack, Amazon Web Services, and Google
Cloud Platform.
Review: Cloud Foundry brings power
and polish to PaaS
Cloud Foundry impresses with broad application support, streamlined
deployment, and enterprise extras from Pivotal, though initial setup
could be simpler
Pivotal CF 1.2
20%20%
89
20%
9
15%
8
15%
7
10%
9
8.4
Management
EaseofUse
Breadthofsupport
Documentation
Intstallation
andsetup
Value
OverallScore
Test Center Scorecard
Very Good
ยฎ
2. I N F O W O R L D . C O M 0 7 . 1 6 . 1 42
Cloud Foundry architecture and features
The Cloud Foundry Elastic Runtime runs
applications in packages called โdropletsโ in
DEAs (Droplet Execution Agents). DEAs are
managed by the Cloud Controller and moni-
tored by the Health Manager, while Routers
manage application traffic, do load balancing,
and combine logs. In turn, DEAs call on ser-
vice broker nodes, which communicate over a
message bus. The Cloud Controller has access
to a blob store and a database of application
metadata and service credentials.
To deploy an application, the developer basi-
cally uploads the app bits and metadata, using
the Cloud Foundry command line or plug-ins
from Eclipse, Maven, or Gradle. In addition, the
developer needs to create and bind services.
This all boils down to building a WAR archive
and uploading the WAR.
TheCloudControllerwillautomaticallydetect
and load any necessary system buildpacks, cre-
ate a droplet, deploy the application droplet to
the DEAs, register the routes, and forward the
ports.OncetheDEAsareactive,theHealthMan-
ager compares the expected state of DEAs from
the Cloud Controller with the actual state from
theDEAs.IftheHealthManagerdetectsadevia-
tion, it will ask the Cloud Controller to restart
any DEAs not in the expected state.
Administrators use BOSH, as opposed to
other IT automation tools, such as Puppet or
Chef, to manage the underlying infrastructure
ofCloudFoundry.Anopensourcetoolchainfor
release engineering, deployment, and lifecycle
managementoflarge-scaledistributedservices,
BOSHhasitsowncommandline,separatefrom
the cf command line, but you donโt need it to
deploy an application. BOSH is for deploying
VMs, not droplets.
At a very high level, BOSH clones new VMs
from a โstemcellโ to create the VMs needed for
a deployment. A stemcell contains an oper-
ating system and an embedded BOSH agent
that allows BOSH to control VMs cloned from
the stemcell. A BOSH release is a collection of
source code, configuration files, and startup
scripts, with a version number that identifies
these components. The BOSH deployment
manifest is a YAML file defining the layout and
properties of the deployment.
Cloud Foundry includes UAA (User Account
and Authorization) and login servers. The UAA
is the identity management service for Cloud
Foundry. Its primary role is as an OAuth2 pro-
vider, issuing tokens for client applications to
use when they act on behalf of Cloud Foundry
users. However, it can also authenticate users
with their Cloud Foundry credentials and act as
an SSO (single sign-on) service. The login server
performsauthenticationfortheUAA,actingasa
back-endservice.TheloginserveriswhereCloud
Foundryadministratorssetuptheirauthentica-
tion sources, such as LDAP/AD, SAML, OpenID
(Google, Yahoo, and so on), or social.
Down at the application execution level, the
DEA uses Warden Linux containers. Warden
provides a simple API for managing isolated,
ephemeral, and resource-controlled environ-
ments, or containers. In the future, Cloud
Foundry will support Docker containers.
Deploying applications with buildpacks
Buildpacks provide framework and runtime
supportforyourapplications.Fourbuildpacks
are standard in Cloud Foundry and Pivotal
CF: Java, Node.js, Ruby, and Go. (Stackato
has Python instead of Go.) The good news is
that buildpacks are readily available, easy to
install, and even easy to construct, assuming
you can write a few lines of Ruby or another
scripting language. In most cases, the open
source language and framework you want
will be available as
a buildpack, and all
youโll need to load
it will be a mention
of the Git repository on the cf command line
when you push your app:
$ cf push my-new-app -b git://github.com/
johndoe/my-buildpack.git
Alternatively, mention the buildpack
in your manifest. For example, a working
WordPress for Cloud Foundry is available in
this repository created by Daniel Mikusa. To
install it, you simply clone the repo, which is
not very big; create a MySQL service in your
Cloud Foundry instance; edit the manifest
and config files on your local machine; and cf
push the app. The manifest.yml file looks like
this before editing:
---
applications:
- name: mywordpress
memory: 128M
instances: 1
host: mywordpress
domain: cfapps.io
path: .
buildpack: https://github.com/
dmikusa-pivotal/cf-php-build-pack.git
services:
- mysql-db
As you can guess, the buildpack line in the
manifest references the Git repository of a
PHP and Apache buildpack.
Cloud Foundry does messaging among the
parts of its environment using NATS, a light-
weight and distributed publish-subscribe
messaging system written in Ruby.
The Cloud Foundry services API defines the
contract between the Cloud Controller and
A block diagram of the Cloud Foundry architecture.
Services in the Pivotal Web Services Marketplace are typically available in a variety
of plans, ranging from free to $100 or more per month.
3. the service broker. The broker is expected to
implement several HTTP (or HTTPS) end-
points underneath a URI prefix, and it may
be load-balanced. User-provided service
instances are a mechanism to deliver creden-
tials to applications for service instances that
have been pre-provisioned outside of Cloud
Foundry โ for example, an Oracle cluster.
Pivotal has a big data product, Pivotal HD,
that integrates with Pivotal CF. It includes
Hadoop, Pivotalโs HAWK SQL query engine
for Hadoop, and GemFire XD analytics, as well
as the Spring for Apache Hadoop Java frame-
work. The Pivotal Big Data Suite is an enter-
prise data warehouse that includes unlimited
Pivotal HD.
According to Pivotal, in practice an admin-
istrator defines a service pool of HDFS and
MapReduce instances, which take about five
minutes to provision from scratch on Pivotal
CF. Then a developer or an application can
ask for an instance from the pool, obtain it in
about two seconds, and a new instance can be
created for the pool in the background. When
the requested instance is no longer needed, it
can be released.
Pivotal also offers a Mobile Services Suite
thatโs integrated with both Pivotal CF and Piv-
otal HD. This is based on the seven years and
400 appsโ worth of know-how acquired with
Xtreme Labs last year. Itโs basically an MBaaS
(mobile back end as a service) on Pivotalโs
PaaS, with the integration extending out to
the mobile application level.
Cloud Foundry installation and use
Signing up for Pivotal Web Services was
painless. I had no trouble with the developer
console, and downloading and installing the cf
command line was a matter of a minute or two.
The documentation made the steps needed to
deploy an application with cf quite clear.
As I mentioned earlier, the Micro Cloud
Foundry VM has not yet been updated to
Cloud Foundry v2. While I found two methods
for installing the current Cloud Foundry open
source into a local VM, each promised to be
a multihour process. It was much easier for
me to download a Stackato Micro Cloud
VM (10 minutes) and install it into VMware
Fusion on my MacBook Pro (two minutes).
I also installed the Stackato command line,
which is a superset of cf. Using the Stackato
developer console in a browser turned out
to be very similar to using the Pivotal Web
Services developer console.
With the exception of the current lack of a
Micro Cloud Foundry VM, which is kind of a
pain, installation and setup of Cloud Foundry
are very good. Everything you
need is available for download,
and the installations are self-
explanatory. You can start small
either online (in a couple of min-
utes) or on premise and grow
your cloud incrementally, or you
can install an enterprise cloud on
an appropriate VM host in a few
hours.
For a developer, deploying
droplets from the command
line, Eclipse, Spring Tools Suite,
Maven, or Gradle is dead simple,
once youโve constructed a valid
manifest file that includes any
necessary buildpacks. Managing
droplets and DEAs is straightfor-
ward, though I wish that auto-
matic scaling of applications
were fully supported instead of
being an enterprise-only beta
feature in Pivotal CF.
Managing Cloud Foundry clouds isnโt hard,
but BOSH is a complicated, powerful tool that
has a significant learning curve. Administra-
tors accustomed to Puppet and other popular
configuration management and orchestra-
tion tools wonโt have any trouble learning
BOSH, but they will have to dedicate some
time to doing so.
Overall, Cloud Foundry is a strong PaaS in
its open source form and in both proprietary
forms from Pivotal: online as Pivotal Web Ser-
vices, and on premises as Pivotal CF. While
I havenโt evaluated all the proprietary PaaS
offerings based on Cloud Foundry by Founda-
tion members, I have looked at Stackato from
ActiveState and found that it streamlined a
few items not yet cooked in the open source
edition, adding value for cloud management
and language support.
โ Martin Heller
3
The Stackato Micro Cloud VM โ available for VirtualBox, VMware
Fusion, VMware vSphere, and KVM โ is currently the fastest way to
get Cloud Foundry on to a developerโs desktop. Here the Stackato
management console is running behind the Stackato Micro Cloud
window.
Cloud Foundry at a glance
Pros โข Wide assortment of languages, Web frameworks, and databases available
and supported
โข Easy and fast self-service deployment for developers and cloud operators
โข Application container, service, and node health are all monitored and auto-
matically restarted if not in the expected state
โข Big data and mobile services are supported in the PaaS
โข Can deploy from the command line, Eclipse, Spring Tools Suite, Maven, and
Gradle
Cons โข Automatic horizontal scaling is still in beta, but scheduled for Q3 release
in Pivotal CF; another PaaS based on Cloud Foundry, ActiveStateโs Stacka-
to, already has it
โข No downloadable โmicroโ VM for Cloud Foundry v2 yet, but you can down-
load Stackato Micro, or use one of two Cloud Foundry installers to install
Cloud Foundry in a local VM
โข Limited to applications that run on Ubuntu Linux, unless you use the Uhuru
Windows version of Cloud Foundry, which we have not reviewed
Platforms โข VMware vSphere, OpenStack, Amazon Web Services, Google Cloud Plat-
form
Cost โข Cloud Foundry, free open source; Pivotal Web Services, 3 cents per giga-
byte per hour after two-month free trial with up to 2GB of app memory
and 10 free Marketplace services; Pivotal CF, priced by number of appli-
cation instances running and number of Operations Manager instances
running, with a 90-day evaluation license available for free