CloudARK

Platform-as-Code

Kubernetes-native, Composable and Shareable Platforms

Sign-up for Platform-as-Code eBook

Sign-up for getting your free copy of Platform-as-Code eBook

Sign up

Kubernetes-Native

No new CLI to learn

Composable

Flexibility to choose platform elements

Shareable

Declarative platform YAML definition

Kubernetes Operators

Kubernetes Operator, Kubernetes CRD

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. 

API wrappers Vs Operators

API wrappers: Traditional method of creating platform abstractions

image1

  • Disparate interfaces to learn / manage.
  • Hard to leverage tools and features developed for native interface with new abstractions.

Operators: New method of creating platform abstractions

image2

  • Common interface for native and new abstractions.
  • Can easily leverage tools (e.g. Helm) or features (e.g. auditing) for native interface with new abstractions.

What is Platform-as-Code ?

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.

 

How? 

  • Assembly of multiple Kubernetes API extensions (aka Operators)
  • Discovery of custom resources introduced by Operators 

image3

Workflow

  • Operator developers / curators follow Platform-as-Code guidelines when creating and curating community Operators to ensure discoverability and consistency across multiple Operators. 
  • DevOps engineers use these curated Operator Helm charts to build their custom PaaS on top of base Kubernetes. 
  • Then application developers are enabled to use Custom Resources introduced by the Operators in their application platform YAML definitions. We have developed KubePlus Platform Toolkit to further simplify discovery and use of Kubernetes Operators and Custom Resources towards building Platforms as Code.

Guidelines

We are building comprehensive Operator guidelines and Operator validation program to enable Platform-as-Code experience. 

Learn more

Key Platform-as-Code Tenets

  • No new CLIs: Operators leverage existing CLIs (kubectl, helm) and deliver required functionality through Custom Resource before introducing any new CLIs. 
  • No new templating format for Operator packaging: Leverage Kubernetes native input/packaging mechanisms, e.g. Use of annotations, configmaps, Helm charts


Introducing Platform-as-Code: New Cloud Computing Model

As-Code

Platform as Code

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. 

Operational Efficiency with Platform-as-Code

image6

Composable, Repeatable and Shareable Application Platforms as Code

  • Compose your application platforms using enterprise-ready Kubernetes API extensions (Operators). 
  • Repeatably create application platforms as Code with Kubernetes YAML definition. 
  • Share platform definition YAMLs among team members. 

How Kubernetes API Extensions enable Platform-as-Code Experience

Learn more

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

Learn more

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

Learn more

Platform-as-Code — Elevating Kubernetes to next generation PaaS

Learn more

Subscribe to our Platform-as-Code newsletter.

Platform-as-Code with KubePlus