No new CLI to learn
Flexibility to choose platform elements
Declarative platform YAML definition
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.
We are building comprehensive Operator guidelines and Operator validation program to enable Platform-as-Code experience.
Introducing Platform-as-Code: New Cloud Computing Model
‘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 ‘Infrastructure-as-Code’ approach provides repeatability, shareability, versioning in provisioning infrastructure elements.
Custom Resources introduced by Operators are nothing but platform elements given they are used to abstract platform element lifecycle actions in declarative manner. Kubernetes system extended with Operators enables writing declarative platform definitions in the form of Kubernetes YAMLs leveraging these Custom Resources. These Kubernetes YAMLs are nothing but platforms defined as Code. Thus the 'Platform-as-Code' approach provides declarative model for defining, provisioning and managing application platform stacks.