Cloud Foundry

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

Cloud Foundry is an open source, multi cloud application platform as a service (PaaS) governed by the Cloud Foundry Foundation, a 501(c)(6) organization.[1]

The software was originally developed by VMware and then transferred to Pivotal Software, a joint venture by EMC, VMware and General Electric. In January 2015, the Cloud Foundry Foundation was created as an independent not-for-profit 501(c)(6) Linux Foundation Collaborative Project.[2]

Following the creation of the Cloud Foundry Foundation, the Cloud Foundry software (source code and all associated trademarks) was transferred to be held by the open source software foundation. It is primarily written in Ruby, Go and Java.[3]

The Cloud Foundry Foundation exists to drive the global awareness and adoption of the Cloud Foundry open source project, to grow the contributor community, and to create coherence in strategy and action across all member companies for the success of the project. The Foundation’s Board of Directors is accountable for strategic direction and business governance of Cloud Foundry Foundation, and is composed of business leaders at the world’s leading technology companies. As of June 2016, the Foundation has 63 members.[4]

The Foundation serves as a neutral party holding all Cloud Foundry intellectual property. Once intellectual property is contributed to Cloud Foundry, it becomes property of the Foundation and these assets cannot be transferred to for-profit entities, as per the laws governing 501(c)(6) organizations. The Foundation holds two contributed types of intellectual property: Trademarks and a copyright on the collective work of the community. It also has a license to use and re-license all code contributions, but does not own copyright on those contributions.[5]

Platform[edit]

The Cloud Foundry platform is available from either the Cloud Foundry Foundation as open source software or from multiple commercial providers as either a product or a service.

Cloud Foundry is open source software and hence available to anyone. Deploying Cloud Foundry involves interfacing with the underlying infrastructure using the Cloud Foundry BOSH (bosh outer shell) deployment scripting language, another open source tool from Pivotal. The Baidu website is implemented on OSS Cloud Foundry.[6]

A commercial version called Pivotal Cloud Foundry (PCF) is available from Pivotal. It provides extra tools for installation and administration not included in the OSS product – Pivotal Web Services (PWS) is an instance of Pivotal Cloud Foundry hosted on Amazon Web Services (AWS).

Another commercial distribution is called HPE Helion Stackato. Hewlett Packard Enterprise purchased the Stackato product from ActiveState in 2015[7] and merged it with the Helion Development Platform to create a multi-cloud Cloud Foundry based PaaS called Stackato 4.[8]

Other services using the Cloud Foundry platform include GE's Predix,[9] IBM Bluemix,[10] CenturyLink Cloud,[11] anynines,[12] and Swisscom.[13]

In December 2015, the Cloud Foundry Foundation announced the “Cloud Foundry PaaS Certification program” which delineated criteria to be considered a Cloud Foundry Certified Provider.[14]

Usage[edit]

Cloud Foundry supports the full lifecycle, from initial development, through all testing stages, to deployment. It is therefore well-suited to the continuous delivery strategy. Users have access to one or more spaces, which typically correspond to a lifecycle stage. For example, 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, the Cloud Foundry cf Command Line Interface. It is written in Go. 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 are deployed (this is a Java web-application so by default this is two Tomcat instances), each with 512M of memory. The URL starts 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 Pivotal Web Services (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 spring-music-v1.cfapps.io.[dubious ]

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 started on multiple containers. This is where BOSH comes in - Cloud Foundry's internal Controller uses BOSH to get the underlying infrastructure to spin up virtual machines to run the Warden containers on. When an application is deleted, all of its containers are destroyed and their resources are freed for other applications to use. If the application instance crashes, its container is killed and a new Warden container is started 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, the services it should use also can be specified. Depending on the application language, auto-configuration of services is possible - for example a Java application requiring a MySQL database picks 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 services thanks to a partnership arrangement with App Direct.

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

Software[edit]

The development of Cloud Foundry is controlled by a Foundation (similar to how Rackspace, NASA and others started the OpenStack Foundation).[15] By late 2016, more than 60 companies had signed up to the Cloud Foundry Foundation.[16]

The source code is under an Apache License 2.0, and contributions are governed by the Cloud Foundry contributors' licenses 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:[17][18]

Language Runtime Framework
Java Java 6, Java 7, Java 8 Spring Framework 3.x, 4.x
Ruby[19] Ruby 1.8, Ruby 1.9, Ruby 2.0, Ruby 2.1, Ruby 2.2, Ruby 1.9.3 via JRuby 1.7, Ruby 2.0.0 via JRuby 1.7, Ruby 2.2.2 via JRuby 9.0.0.0 Rails, Sinatra
Node.js V8 JavaScript Engine (from Google Chrome) Node.js
Scala Scala 2.x Play 2.x, Lift
Python [20] 2.7.10 buildpack default , 2.7.11, 3.3.5, 3.3.6, 3.4.3, 3.4.4, 3.5.0, 3.5.1 Python
PHP PHP 5.5, PHP 5.6, PHP 7.0 PHP
Go[21] Go 1.1.1, 1.1.2, 1.2.1, 1.2.2, 1.3.2, 1.3.3, 1.4.1, 1.4.2 Go

Note: Where multiple versions are given the default can be overridden by specifying the required version in a `runtime.txt` file.

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

It is also possible to install Cloud Foundry using a BOSH-Lite Vagrant VM onto VirtualBox or AWS.[23]

See also[edit]

References[edit]

  1. ^ "The Cloud Foundry Foundation: The Power of a 501(c)(6) | Cloud Foundry". Cloud Foundry. 2016-06-07. Retrieved 2016-12-07. 
  2. ^ Kepes, Ben. "Cloud Foundry Foundation Matures--Becomes A Linux Foundation Collaborative Project". Forbes. Retrieved 2016-12-07. 
  3. ^ Heller, Martin. "Review: Cloud Foundry brings power and polish to PaaS". JavaWorld. Retrieved 2016-12-23. 
  4. ^ "Google Joins Cloud Foundry Foundation as Gold Member | The Linux Foundation". www.linuxfoundation.org. Retrieved 2016-12-23. 
  5. ^ Finley, Klint. "Open Source Is Going Even More Open—Because It Has To". WIRED. Retrieved 2016-12-23. 
  6. ^ "Baidu Turns to Open Source to Power Part of Its Empire". Wired. Jul 2013. Retrieved Nov 7, 2014. 
  7. ^ "ActiveState's Stackato (Cloud Foundry & Docker Based PaaS) Acquired by HP". ActiveState. 2015-07-28. Retrieved 2016-10-12. 
  8. ^ "Introducing HPE Helion Stackato 4.0: The enterprise-ready, multi-cloud, cloud native app platform". Hewlett Packard Enterprise Community. 2016-06-08. Retrieved 2016-10-12. 
  9. ^ "A Platform for the Internet of Very Important Things". Cloud foundry. 2015. Retrieved October 27, 2015. 
  10. ^ "IBM Bluemix". Blue mix. IBM. 2016. Retrieved October 2, 2016. 
  11. ^ "Cloud Platform as a Service (PaaS)". Century Link Cloud. 2014. Retrieved July 24, 2014. 
  12. ^ "100% European PaaS". Anynines. 2015. Retrieved 19 August 2015. 
  13. ^ "Swiss com". 2015. Retrieved 1 October 2015. 
  14. ^ "Cloud Foundry Certified On 7 Public Clouds - InformationWeek". InformationWeek. Retrieved 2016-12-23. 
  15. ^ "Cloud Foundry Foundation". Info Q. Mar 2014. Retrieved Nov 7, 2014. 
  16. ^ "Pivotal Doubles Membership of Cloud Foundry Foundation" (press release). Pivotal IO. Retrieved Nov 7, 2014. 
  17. ^ Build packs (documentation), Cloud Foundry .
  18. ^ Build packs (wiki), Git hub .
  19. ^ "Cloud Foundry ruby-buildpack Release Notes". Retrieved Aug 20, 2015. 
  20. ^ "Cloud Foundry python-buildpack Release Notes". Retrieved Mar 14, 2016. 
  21. ^ "Cloud Foundry go-buildpack Release Notes". Retrieved Aug 20, 2015. 
  22. ^ "Deploying Cloud Foundry on OpenStack". Retrieved November 7, 2014. 
  23. ^ "Run local", Deploying (documentation), Cloud Foundry .

External links[edit]