In the modern cloud era, all products/services need to make their applications cloud native to utilize the maximum benefits of cloud, irrespective of where those applications are getting deployed. Kubernetes is widely accepted as a de-facto standard for container orchestration, but Kubernetes is very complex from the point of view of  an application developer, application operator or an infrastructure operator. An application developer must understand all concepts like Pods, Deployments, Services, Ingress, Storage classes, persistent volumes, persistent volume claims, logging, monitoring, security, logging, stateful sets, scaling (horizontal, vertical), RBAC, CNIs, Network policies and so on. All the above should be understood by application operators and infrastructure operators as well to use Kubernetes as a container orchestrator.

Kubernetes as a runtime environment can be different on different public clouds (e.g., Azure, AWS, GCP), small-device form factors like edge deployments (which would have very limited resources), and on premises based Kubernetes solutions. From a business point of view, providing a runtime-agnostic product is an important aspect to run applications on different clouds. Sometimes, this need could come from country specific security and privacy requirements like NSA / GDPR compliances. Most of such requirements should be handled on different levels (at Dev side, Ops side, Infrastructure side). Separating application details from operational details and infrastructure details will allow developers to focus on solving business needs rather than focus on infrastructure tooling and similar aspects.

Open Application Model (OAM) which was announced as an opensource by Microsoft and Alibaba cloud solves this problem of separating roles and define their duties.  OAM describes a model where,

  • Developers are responsible for defining application components independent of infrastructure.
  • Application operators would define how to compose, deploy and run application configurations.
  • Infrastructure operators are responsible for declaring, installing, and maintaining the underlying services that are available on the platform.
“Open Application Model” for building cloud native applications

The OAM initiative is not limiting its contribution to specifications, it is attracting more as it can be realized today with open sources like Rudr and Crossplane. These open sources are also providing resources for different cloud providers to make an infrastructure operator's life easy. Meanwhile, application developers and application operators do not need to worry about infrastructure.

  1. Rudr

Rudr is the reference implementation of Kubernetes based on OAM specification (version 1.0.0-alpha1). Rudr forms a layer of Custom Resource Definitions (CRDs are used to make Kubernetes customized in a Kubernetes native way) to abstract the Kubernetes platform from the application point of view.

“Open Application Model” for building cloud native applications

  • Developers don’t need to learn low level primitives.
  • Operators only focus on operational aspect rather than infrastructure details.
  • Multi-cloud capability by "define once, deploy everywhere" 

2. Crossplane

Crossplane is the Kubernetes based implementation of OAM specification (version 1.0.0-alpha2). Crossplane adds the Kubernetes cluster capability using Kubernetes Custom Resource Definitions (CRDs). Crossplane was initially developed by upbound and adopted by CNCF. Various providers (GCPAWSAzureAlibaba) are available in crossplane github to realize OAM in a cloud agnostic way. The infrastructure configurations can be made for multiple clouds and versions so that the same application can be deployed on different cloud environments and meet the business requirements.

To get positive impact on any business, Innovation and "Time to Market" are the key contributors. Most of the time by "Reinventing the wheel" (solving common existing problems) we are not getting enough time to innovate and are thus missing the market. I think OAM is a very good initiative towards making infrastructure agnostic cloud native applications. Let us achieve an "Infrastructure Agnostic" dream by utilizing and contributing back to OAM as a community and focus on innovation for a positive impact on our business.


Arun2

About Arun Prasath:

Arun Prasath in his role as a Specification Engineer in Nokia Networks, exploring various edge applications, Cloud native technologies from “Multi-Access Edge Computing” perspective with partners and customers.