Cloud Foundry

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Cloud Foundry
Developer(s) VMware
Pivotal Software
Initial release 2011
Written in Ruby, Go
Type Cloud computing
License Apache License 2.0
Website cloudfoundry.org

Cloud Foundry is an open source cloud computing platform as a service (PaaS) developed by Pivotal Software - a joint venture by EMC, VMware and General Electric. The original Cloud Foundry was founded by Chris Richardson and bought by SpringSource in 2009 [1] (the same month VMware acquired SpringSource). The current product is version two, primarily written in Ruby and Go.

Cloud Foundry comes in three flavors

  • Cloud Foundry Open Source Software (OSS)
  • Pivotal Cloud Foundry (Pivotal CF)
    • A commercial product available from Pivotal. It provides extra tools for installation and administration not included in the OSS product.
  • Pivotal Web Services run.pivotal.io

Other companies also offer platform as a service products using the Cloud Foundry platform.

Usage[edit]

Cloud Foundry supports the full lifecycle from initial development, through all testing stages to deployment and is well suited to the Continuous Delivery strategy. Users have access to one or more Spaces and a space typically corresponds to a lifecycle stage. Thus an application ready for QA testing might be pushed (deployed) to its project's QA space. Different users can be restricted to different spaces with different access permissions in each.

Developers require an additional tool, cf the Cloud Foundry Command Line Interface. It is written in Go and installers exist for MS Windows, MacOS and Linux.

The cf utility provides many options but for deployment cf push is all that is required. It accepts arguments to specify the name of the application, where to load it from and the URL that should be used to access it. For example:

   cf push spring-music -i 2 -m 512M -n spring-music-v1 -p build/libs/spring-music.war

pushes the Java web application spring-music. Two instances will be deployed (this is a Java web-application so by default this is two Tomcat instances), each with 512M of memory. The URL will end with spring-music-v1 and the web-archive (application) can be found at build/libs/spring-music.war. Every Cloud Foundry instance manages one or more domains. For example all PWS applications are accessed via the cfapps.io domain, so if this Spring Music application had been deployed to PWS, its URL would have been http://spring-music-v1.cfapps.io.

When an application is deployed to Cloud Foundry an image is created for it and stored internally. The image is then deployed to a Warden container to run in. For multiple instances, multiple images are run up on multiple containers. This is where BOSH comes in - Cloud Foundry's internal Controller uses BOSH to get the underlying infrastructure to run up virtual machines to run the Warden containers on. When an application is terminated, all its VMs can be recycled for another application to use. If the application instance crashes, its container is killed and a new Warden container is run up automatically. A container only ever runs one application ensuring isolation, security and resilience.

A load-balancing router sits at the front of Cloud Foundry to route incoming requests to the correct application - essentially to one of the containers where the application is running.

Services[edit]

Applications deployed to Cloud Foundry access external resources via Services. In a PaaS environment, all external dependencies such as databases, messaging systems, files systems and so on are Services. When an application is pushed to Cloud Foundry, you can specify the services it should use also. Depending on the application language, auto-configuration of services is possible - for example a Java application requiring a MySQL database will pick up the MySQL service on Cloud Foundry if it is the only one defined in the current Space.

Services have to be deployed to the platform first and then are available to any application using it. Another advantage of Pivotal CF is that many pre-defined services can be deployed into it directly using the Administration Console. Users of the Open Source Cloud Foundry must make services available by writing and running BOSH scripts.

PWS provides a large number of services thanks to a partnership arrangement with App Direct.

The following services are available to Pivotal CF and on PWS:

Software[edit]

Although Cloud Foundry is a Pivotal Product, it's direction is controlled by a Foundation (similar to Rackspace and OpenStack).[5] By mid-2014, 33 companies had signed up to the Foundation.[6]

The source code is under an Apache 2.0 license, and contributions are governed by the Cloud Foundry contributors' license for individuals and corporations. These licenses grant both copyright and patent access and protection to the Cloud Foundry Foundation, which is the same model that VMware followed with the Spring Framework from SpringSource.

Supported runtimes and frameworks include:[7][8]

Language Runtime Framework
Java Java 6, Java 7, Java 8 Spring Framework 3.x, 4.x
Ruby Ruby 1.8, Ruby 1.9, Ruby 2.0 Rails, Sinatra
Node.js V8 JavaScript Engine (from Google Chrome) Node.js
Scala Scala 2.x Play 2.x, Lift
Python Python
PHP PHP

Typically Cloud Foundry is installed on-premise running over VMware's vSphere virtualization infrastructure, although deployment to OpenStack is an option using BOSH.[9]

It is also possible to run Cloud Foundry instances on VMware Fusion or Virtualbox using Vagrant and on AWS.[10]

See also[edit]

Competitors[edit]

References[edit]

External links[edit]

Official website