Cloud Foundry: Rethinking PaaS for the Cloud Native Era

BrainBlog for Cloud Foundry by Jason Bloomberg

Cloud Foundry has a colorful history that parallels the growth of the cloud. The organization pioneered the notion of Platform-as-a-Service (PaaS) – from its origins within VMware in 2009, to its rebirth within Pivotal in 2013, to the establishment of the open-source Cloud Foundry Foundation in 2015.

As containers became a predominant deployment mechanism leading to the establishment of Kubernetes as the most popular container orchestration platform, Cloud Foundry transformed itself into an application platform for Kubernetes, and eventually for cloud native development broadly.

As a development platform that users access as services (as with all other cloud native resources), Cloud Foundry can still technically qualify as a PaaS. That designation, however, doesn’t do the platform justice, as so much of what makes a platform cloud native exceeds the original conception of PaaS.

Understanding the transformations Cloud Foundry has undertaken over the last decade, therefore, parallels the evolution of PaaS and the transition to the cloud native paradigm for application development and deployment generally.

Running an Application Platform on VMs with BOSH

After VMware established itself as the virtual machine (VM) leader with its vSphere virtualization platform, Amazon Web Services (AWS) pioneered Infrastructure-as-a-Service (IaaS) with its Elastic Compute Cloud (EC2) in 2008. EC2 instances are little more than Linux-based VMs running in the cloud.

Early attempts at PaaS were essentially development tooling running in IaaS VM instances. In particular, VMware released BOSH in 2010 as an open-source toolchain for packaging, deploying and managing cloud software on IaaS or traditional (on-premises) VMs.

VMware’s primary purpose for BOSH was to deploy early versions of the Cloud Foundry PaaS software, and by 2015, the project became a flagship effort for the Cloud Foundry Foundation, along with the Cloud Foundry Elastic Runtime (now Cloud Foundry Application Runtime).

In the early days before the establishment of the Foundation, however, VMware (and later Pivotal) positioned Cloud Foundry as an Open PaaS project (see its home page from 2011 below).

Cloud Foundry home page, 2011 (courtesy the Internet Archive)

These early days of Cloud Foundry aligned with the first-generation conception of the cloud as divided into IaaS, PaaS, as well as Software-as-a-Service (SaaS).

Cloud Foundry differentiated itself from commercial PaaS offerings as an open-source alternative platform that users could install and run in their own hosting environments (IaaS, VMs, or traditional servers) or access in the cloud as an ‘as-a-Service’ offering.

Moving Beyond PaaS

Between 2015 and 2018, the increasing popularity of Docker containers shifted Cloud Foundry’s positioning away from PaaS to a cloud application platform, as its home page from 2018 shows.

Cloud Foundry home page, 2018 (courtesy the Internet Archive)

While Docker soon dominated the containers space, Cloud Foundry focused on interoperability among different container types. Containers transformed the context of application deployment from VM instances to containers. In essence, containers provide their own lightweight virtualization, running in any cloud or on-premises environment on the one hand while supporting any language on the other.

To help developers navigate this transition, Cloud Foundry increasingly focused on the developer experience, simplifying deployment of software with cf-push. cf-push gives developers one-click deployment, dramatically simplifying the deployment process.

The ease of use that cf-push brought to the table was especially important as containers became the dominant application infrastructure, as they bring additional complexity to deployment processes compared to software deployments directly into VMs.

Kubernetes Changes the Game

Containers promise better elasticity and scalability than IaaS alone, but to realize this benefit, they require an orchestration platform. By 2020, Kubernetes had established itself as the container orchestration platform of choice.

To respond to this shift in both application development and deployment infrastructure trends, Cloud Foundry rearchitected its platform for Kubernetes, as its home page from 2021 illustrates.

Cloud Foundry home page, 2021 (courtesy the Internet Archive)

As the screenshot above indicates, Cloud Foundry’s core differentiator at this time was its ‘proven developer experience’ – which it built on the one-click deployment success of cf-push.

Kubernetes alone, however, only represents one part of the broader paradigm shift impacting enterprise IT and distributed computing in general. We call this paradigm shift cloud native computing.

Cloud native computing leverages the rapid deployment and horizontal scalability benefits that containers and Kubernetes bring to the table, but also comprises other modern trends in computing, including serverless computing, edge computing, CI/CD, DevOps, GitOps, platform engineering, and more.

Cloud Foundry is keeping up with these trends as it continues to mature its capabilities. Since 2022, it has positioned itself as the proven developer platform for cloud native applications, bringing together its platform maturity, ease of use, and cloud native architecture to differentiate itself as one of the most complete open-source cloud native application platforms on the market today.

Cloud Foundry home page, 2022 (courtesy the Internet Archive), largely unchanged in 2024

The Intellyx Take

One might wonder whether Cloud Foundry is still PaaS after all these years.

The better question would be: what does PaaS mean in the cloud native world? Do we still need the term at all?

The notion of platforms is certainly here to stay. The idea of infrastructure software that enables developers to deploy applications is a powerful one. It is now finding its way into discussions of platform engineering and the internal developer platforms that many organizations are in the process of deploying.

As an application development platform, however, Kubernetes alone leaves much to be desired. Its creators never intended for developers to work directly with it in a hands-on fashion.

Instead, those creators architected it to support additional layers of tooling, either via open-source projects or commercial offerings – a role Cloud Foundry serves.

Given its historic roots, level of maturity, and unquestionable open-source credibility, Cloud Foundry has positioned itself as a leading cloud native application development platform – whether you call it PaaS or not.

Copyright © Intellyx BV. Cloud Foundry is an Intellyx customer. Intellyx retains final editorial control of this article. No AI was used to create this article.

SHARE THIS: