The evolution of cloud computing brought opportunities to simplify the building of the application stacks.

Cloud computing started with the notion of ‘as a Service’ where you have the promise of provisioning elements of this application stack ‘on-demand’.

This ‘as a Service’ model started with ‘Infrastructure as a service (IaaS)’ like AWS EC2 and then slowly progressed into ‘Platform as a service (PaaS)’ like Heroku, Amazon Beanstalk, Google App Engine.

In the parallel notion of ‘as Code’ got popular primarily with ‘Infrastructure as Code’ systems like AWS Cloud Formation and Terraform.

‘Infrastructure as Code’ systems brought the promise of ‘repeatability and shareability’ in provisioning infrastructure elements.

You could write infrastructure elements declaratively and provision them repeatedly using this declaration/code.

‘Infrastructure as Code’ systems like AWS Cloud Formation create the same infrastructure elements repeatedly on a single cloud whereas systems like Terraform create this across multiple clouds in a multi-cloud environment. These systems rely on abstracting IaaS APIs and capture those in a common declarative language.

The wave of containerization blurred the lines between the Infrastructure layer and the Platform layer and brought new systems commonly referred to as ‘Container as a Service (CaaS). 

Kubernetes with its declarative YAML format helped enable repeatability and shareability for containerized application platform stacks. 

We believe that ‘Platform as Code’ forms the grounding principle on which next-generation custom platforms and Platform as a Service systems will be built for Kubernetes. They will offer repeatability in creating custom platform stacks on any Kubernetes cluster. 

Know more: