Cloudfoundry: Open Source Platform as a Service
A platform used for running applications and services. The purpose of cloudfoundry is to change the way apps and services are deployed and run by reducing the cycle time of development to deployment. Cloud Foundry directly takes benefits of cloud-based resources such that apps running on the platform can be unaware of underlying infrastructure.
It provides an arrangement to predictable and reliable running of cloud-native apps .
Cloud Foundry is an open platform, which allows for a choice of under‐lying infrastructure (eg. OpenStack, AWS, Azure , vSphere) , polyglot developer languages and frameworks,
and has a great range of application services. Also, Cloud Foundry is open sourced and controlled and governed by a multi-organization foundation ( nearly 60 companies ).
It is a powerful thing when different technology companies, industries, and business lines collaborate with such strong cohesion and momentum.
- Some of Supported Languages
• Java and JVM-based languages, such as Groovy
- Some of Supported Frameworks
• Java Spring
- Some of Supported Services
Cloud Foundry Components
Components of Cloud Foundry include a self-service application execution engine, an automation engine for application deployment and life cycle management, and a scriptable command line interface, as well as integration with development tools to ease deployment processes. It has an open architecture that includes a buildpack mechanism for adding frameworks, an application services interface, and a cloud provider interface. Refer diagram below :
The Cloud Foundry Installation Process:
Cloud Foundry can be installed as a single developer environment (via BOSH Lite) for experimentation, but is typically deployed into a larger infrastructure cloud via BOSH. Supported platforms include AWS, OpenStack, vSphere, vCloud Director and vCloud Air.
Details of Installation using Bosh Lite can be found at : BOSH Lite on github.
The Application Life Cycle
Typically, in most traditional scenarios, the application developer:
• Develops an application
• Deploys application services
• Deploys an application and connects (binds) it to application
Application Design for the Cloud
Applications written in supported application frameworks often run unmodified on Cloud Foundry, if the application design follows a few simple guidelines. Following these guidelines makes an application cloud-friendly, and facilitates deployment to Cloud Foundry and other cloud platforms.
- Avoid Writing to the Local File System as Local file system storage is short-lived and instances of the same application do not share a local file system.
- Ignore Unnecessary Files When Pushing
- Embrace Port Limitations
- Run Multiple Instances to Increase Availability
- Use Buildpacks
For those desiring to achieve velocity and establish a development-feedback cycle—and for those challenged with responding to the technical driving forces relentlessly shaping today’s marketplaces—Cloud Foundry, as an established cloud-native platform, provides the most compelling way to enable the fundamental shift in the way we build and deploy software.
Part 1 : What is PaaS: Platform as a Service (PaaS) – Introduction