Repeatable and Shareable Application Platforms as Code on Kubernetes.


‘As-Code’ systems are those that provide declarative model for provisioning and managing elements in an application stack. Pioneered by Infrastructure-as-Code systems like Terraform and AWS CloudFormation, the ‘as-Code’ approach provides repeatability, shareability, versioning in managing the corresponding elements.

‘Platform’ systems are those that focus on providing platform-level functionality for application deployments. Pioneered by Heroku, Platform-level functionality is generally understood to include following:

  • Representation of application and its required dependencies (like databases, load balancer) using high-level abstractions, and
  • Deployment of application (from source code or pre-built container) with appropriate binding with its dependencies

Platform-as-Code systems can be thought of as systems that support this platform-level functionality in ‘as Code’ manner. 

Common language between Devs & Ops

Over the years two types of toolings have evolved - PaaS & Infrastructure-as-Code. PaaSes focused on delivering end-to-end developer workflow trying to eliminate the need for Ops engineers. Infrastructure-as-Code systems focused on simplifying Ops challenges in automation and provisioning. 

In practice, when teams comprised of developers and Ops engineers come together to build an application deployment workflow, they experience a communication gap due to lack of common tooling. This normally forces developers to learn at least basics of Ops systems and tools to be able to meaningfully contribute in the DevOps workflows. Platform-as-Code bridges this gap with kubectl & Kubernetes YAML becoming the common language between Devs & Ops. 

Evolution of PaaSes to Platform-as-Code in Kubernetes world

Learn More

How Kubernetes API Extensions enable Platform-as-Code Experience

Learn More

Platform-as-Code: how it relates to Infrastructure-as-Code and what it enables

Learn more

Platform as Code with KubePlus