Cloud Foundry: One of the Best Open Source PaaS Platforms

0
6931
pass featured image

Cloud Foundry is the industry standard open source cloud application platform used for developing and deploying enterprise cloud applications. It enables developers to deploy network apps or services, and make them available to the world in a few minutes. It offers flexibility and scalability for app deployment.

Platform as a service (PaaS) is a kind of cloud computing service that provides a platform to developers and software engineers to develop, run and manage applications without the need for building and maintaining the necessary infrastructure. PaaS is a complete development and deployment environment in the cloud, and it provides tools and resources to develop and deliver everything from simple cloud based apps to sophisticated, cloud-enabled enterprise applications.

Like Infrastructure as a service (IaaS), PaaS also requires infrastructure like servers and networking, but it works like middleware between the infrastructure and the user. It is an abstraction that makes it easy for the user to develop and deliver any app, without the need for any understanding about the infrastructure.

PaaS is designed to support the complete Web application life cycle— building, testing, deploying, managing and updating. It frees the user from buying and managing software licences, application infrastructure and middleware, like Kubernetes or development tools and other resources. It also allows the user to develop and manage applications or services, with everything else being managed by the PaaS provider.

Cloud Foundry is a PaaS that can help users to develop applications and services easily. It is an open source, multi-cloud application PaaS governed by the Cloud Foundry Foundation. The software was originally developed by VMware but it later got acquired by Pivotal Software (a joint venture between EMC, VMware and General Electric), before it was transferred to VMware once again following the latter’s takeover of Pivotal in 2019.

The popularity of Cloud Foundry comes from its continuous delivery because it can support the complete application development life cycle (starting from initial development to the final testing and deployment stages). The container based architecture of Cloud Foundry can run apps in any programming language over a variety of cloud service providers. Because of its multi-cloud environment, a desirable cloud platform can be chosen by the developers to suit specific application workloads, and they can move these workloads as and when required without causing any changes to the application.

In Cloud Foundry, the deployed applications can access external resources through an Open Service Broker API, which was launched in December 2016. In this platform, all external dependencies such as databases, messaging systems, file systems, and so on are considered services. It allows administrators to create a marketplace of applications and services, which can be used on demand.

Figure 1: Cloud Foundry Layers

Cloud Foundry supports various programming languages like Java, .NET, Ruby, Python, PHP and Go. In Cloud Foundry, the Docker life cycle can be used to deploy Docker images which contain packed applications. The Cloud Foundry Application Runtime can also be deployed to various infrastructure providers like VMware’s vSphere, OpenStack, Amazon Web Services, Microsoft Azure, IBM Cloud, Google Cloud Platform and Alibaba Cloud. In addition, some others can also use the runtime using the Cloud Provider Interface (CPI) capability of the Cloud Foundry BOSH project. The Cloud Foundry platform can be used as open source software from the Cloud Foundry Foundation.

The ‘Cloud Foundry PaaS Certification programme’ from the Cloud Foundry Foundation, which started in December 2015, certifies a Cloud Foundry Certified Provider.

Pros and cons of Cloud Foundry
Pros Cons
  • Easy development, testing and deployment of applications/services using the Cloud Foundry’s API.
  • Supports various programming languages like Java, .NET, Ruby, Python, PHP and Go.
  • Users can develop applications or services without the need to configure/manage the infrastructure, and Cloud Foundry is an abstraction that eliminates the need to know anything about the infrastructure.
  • Supports memory and disk space by limiting allocation for individual applications.
  • Cloud Foundry does not support stateful containers.
  • It has logging issues and even though the platform supports showing logs, it doesn’t appear to preserve these logs anywhere.
  • Despite claiming to be a universal solution and supporting various programming languages and frameworks, Cloud Foundry is best suited for applications that are built in accordance with the Twelve-Factor App methodology.

Usually in any PaaS, the physical layer stays at the bottom, and above it are the virtual machines and containers/Kubernetes. The topmost layer is always for the server. However, since Cloud Foundry is serverless, it stays on top of all these layers. This makes it a perfect abstraction for users to develop and deliver applications or services without the need to know about the infrastructure.

Any application or service can be developed using the Cloud Foundry API, and can be deployed and tested in the containers. Such containers are self-maintained by Cloud Foundry’s container management systems like Diego and Gardean. In this way, users can easily develop and deliver applications or services to customers without much complexity.

The key features of Cloud Foundry are:

  • Application execution, portability, auto-scaling and deployment
  • Application life cycle and health management
  • Centralised platform administration and logging
  • Provides dynamic routing and external logging of components
  • Maintains infrastructure security and cloud provider integration
  • Integration with development tools and support for various IaaS providers

Cloud Foundry provides the best solutions and development tools to the user for developing any application or service easily. As this PaaS maintains a high level of abstraction, users do not have to deal much with the underlying infrastructure and can develop applications in various programming languages.

LEAVE A REPLY

Please enter your comment!
Please enter your name here