How KubeVela Implements the Open Application Model for Cloud‑Native Platform Engineering
An overview of the CNCF’s platform engineering whitepaper highlights how KubeVela adopts the Open Application Model (OAM) to bridge developers and infrastructure, detailing components, traits, CUE templating, workflow, and management features, with practical examples and future directions in cloud‑native application delivery.
Background
Since 2019 Kubernetes has become the de‑facto standard for deploying and managing infrastructure. Platform engineers build higher‑level platforms on top of Kubernetes, using containerisation and declarative APIs to reduce operational complexity. When thousands of workloads exist in a cluster, operators need a way to understand logical relationships and manage resources in a business‑aligned manner. Helm and Kustomize are effective for packaging Kubernetes resources, with Helm Charts being the most popular artifact format.
Open Application Model (OAM)
OAM, introduced by Microsoft and Alibaba Cloud, provides a vendor‑agnostic model for cloud‑native applications. It defines components (runnable parts of an app) and traits (additional capabilities) to bridge developers and infrastructure.
In Kubernetes a component can correspond to a Deployment, StatefulSet, Pod, VM, or other workload. Traits such as Service, Ingress, or ConfigMap augment components without changing their core purpose.
Component example
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: webserver-demo
spec:
components:
- name: hello-world
type: webserver
properties:
image: crccheck/hello-world
port: 8000
env:
- name: "foo"
value: "bar"
cpu: "100m"Trait example
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: my-example-app
spec:
components:
- name: publicweb
type: web-ui
properties:
image: example/web-ui:v1.0.2@sha256:verytrustworthyhash
param_1: "enabled"
traits:
- type: ingress
properties:
path: /
port: 8080
- name: backend
type: company/test-backend
properties:
debug: "true"
traits:
- type: scaler
properties:
replicas: 4Abstraction with CUE in KubeVela
KubeVela uses CUE schemas to define ComponentDefinition and TraitDefinition. This allows platform builders to customise rendering logic and add runtime‑aware extensions, making the same OAM model portable across Kubernetes versions and clusters.
Delivery and Workflow
In KubeVela an OAM Application is the unit of delivery. The dependsOn field expresses relationships between components, influencing delivery order. KubeVela adds a programmable Workflow layer: WorkflowStepDefinition objects (written in CUE) define atomic steps such as approvals, notifications, or multi‑cluster diff‑delivery. KubeVela can be integrated with CI/CD tools like Tekton, Argo Workflow, Jenkins, or GitHub Actions.
Management Features
KubeVela leverages the declarative nature of OAM to keep the live state aligned with the desired state, providing versioning, RBAC, resource sharing, and garbage collection. These capabilities are not yet part of the OAM specification but are expected to be incorporated in future revisions.
The project is a CNCF incubating project. Source code is available at https://github.com/kubevela/kubevela.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
