Cloud Native 14 min read

Why OAM Is the Next Step for Cloud‑Native Application Delivery on Kubernetes

The article explains how the Open Application Model (OAM) addresses the missing "application" concept in Kubernetes by providing a standardized, role‑based model for defining, configuring, and delivering cloud‑native applications, and describes the joint Alibaba‑Microsoft‑Crossplane implementation, its runtime library, and the growing community ecosystem.

Alibaba Cloud Native
Alibaba Cloud Native
Alibaba Cloud Native
Why OAM Is the Next Step for Cloud‑Native Application Delivery on Kubernetes

Background

Kubernetes provides standardized infrastructure abstraction but does not define a native application concept. Developers and operators must work with low‑level workload resources such as Deployment or DaemonSet, which leads to fragmented tooling and a steep learning curve.

Purpose of the Open Application Model (OAM)

OAM introduces a higher‑level abstraction where an application is a collection of Component objects (e.g., a PHP container, a database instance) together with Trait objects that express operational requirements (e.g., Horizontal Pod Autoscaler, Cron‑based HPA). Developers author Component definitions, operators author Trait definitions, and the platform reconciles them into an ApplicationConfiguration resource. This separation of concerns reduces errors and makes cloud‑native application management more uniform.

Joint Standard Implementation

In May, Alibaba Cloud, Microsoft Azure, and the Crossplane community collaborated to deliver a reference implementation of OAM on Kubernetes. The three teams built a Go‑based core library named oam-kubernetes-runtime, which is intended to become the officially maintained runtime component for OAM.

Runtime Library Details

The oam-kubernetes-runtime library is a native Kubernetes plugin. It registers custom resource definitions (CRDs) for Component, Trait, and ApplicationConfiguration, and provides a controller that watches these resources and creates the underlying workload objects (e.g., Deployment, StatefulSet, Service, etc.). Because the library follows the standard Kubernetes controller pattern, it can be installed with a simple kubectl apply -f of the released manifests.

How OAM Works in a Project

Typical workflow:

Define one or more Component resources that describe the logical service units of the application.

Attach one or more Trait resources to each component to declare operational policies such as scaling, networking, or monitoring.

Create an ApplicationConfiguration that references the components and their traits. The OAM controller reconciles this configuration, generating the concrete Kubernetes objects required to run the application.

This design enables unlimited extensibility: infrastructure engineers can add new workload types (e.g., FaaS functions) or new traits (e.g., CronHPA) without breaking existing applications. Migration from traditional Kubernetes manifests can be performed gradually by introducing OAM resources alongside existing objects.

Projects That Benefit from OAM

Any platform that builds on Kubernetes—cloud, edge, or serverless—can adopt OAM to standardize its internal model, reduce cognitive load for developers, and hide underlying infrastructure differences. By treating the application as the primary resource, platforms can provide a portable experience across clusters and environments.

Community Status and Releases

The OAM project is a vendor‑agnostic open‑source community with contributions from Alibaba Cloud, Microsoft, Crossplane, AWS, Tencent, ByteDance, and many others. The community meets bi‑weekly, uses a maintainer voting system, and follows an international collaboration model. The current stable release is v1alpha2 ; a beta release is planned for later this year. The runtime library is available in the public repository and can be consumed directly via the source code.

Key Resources

OAM GitHub repository: https://github.com/oam-dev/kubevela

Crossplane project: https://github.com/crossplane/crossplane

OAM Kubernetes runtime library: https://github.com/oam-dev/oam-kubernetes-runtime

OAM architecture diagram
OAM architecture diagram
cloud-nativeKubernetesMicrosoftAlibaba CloudOAMCrossplaneApplication Model
Alibaba Cloud Native
Written by

Alibaba Cloud Native

We publish cloud-native tech news, curate in-depth content, host regular events and live streams, and share Alibaba product and user case studies. Join us to explore and share the cloud-native insights you need.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.