One of the key reasons for Kubernetes’s popularity is its extendibility. Kubernetes API extensions (commonly referred as Operators) extend Kubernetes API to manage third-party software as native Kubernetes objects. There are 400+ GitHub repositories with Operator implementations for middleware like databases, queues, loggers, etc. Kubernetes Operators form foundation for Platform-as-Code experience.
Platform as Code is the process of aggregating multiple Kubernetes Operators for the purpose of creating and managing platforms declaratively using native Kubernetes interfaces (kubectl & Kubernetes YAML), rather than ad-hoc scripts or new CLIs.
- Assembly of multiple Kubernetes API extensions (aka Operators)
- Discovery of custom resources introduced by Operators
‘As-Code’ systems are those that provide declarative model for defining and managing elements in your application stack. Pioneered by Infrastructure-as-Code systems like Terraform, the ‘as-Code’ approach provides repeatability, shareability, versioning in managing the corresponding elements. Platform-as-Code systems can be thought of as systems that support creating application platform stacks declaratively in ‘as Code’ manner.
Introducing Platform-as-Code: New Cloud Computing Model
Platform-as-Code provides ability to easily transfer or recreate workloads across multiple clouds.
Platform-as-Code simplifies creation of multi-tenant platform stacks that leverage isolation via namespaces.
Platform-as-Code simplifies creation of micro-PaaSes per namespace that can be used by teams within an organization.
Platform-as-Code bridges the tooling gap between Developers and DevOps Engineers with Kubernetes YAML becoming the common language.