oam-dev / spec

Open Application Model (OAM).

Home Page:https://oam.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Open Application Model

Gitter License: MIT TODOs Follow on Twitter

Open Application Model (OAM) is a set of standard yet higher level abstractions for modeling cloud native applications on top of today's hybrid and multi-cloud environments.

Focused on application rather than container or orchestrator, Open Application Model brings modular, extensible, and portable design for defining application deployment with higher level API. This is the key to enable simple, consistent yet robust application delivery across hybrid environments including Kubernetes, cloud, or even IoT devices.

Introduction

"Developers think in terms of application architecture, not of infrastructure."

How it works

Why Open Application Model?

In today's hybrid deployment environments, delivering applications without application context is hard:

  • Developers spend time on infrastructure details instead of apps - clusters, ingresses, labels, DNS, etc, and learning how the infrastructure is implemented in different environments
  • Inextensible - upper layer platform may be introduced, but it's almost certain that the needs of your app will outgrow the capabilities of that platform soon.
  • Vendor lock-in - app deployment is tightly coupled with service provider and infrastructure, which heavily impact on how you configure, develop and operate the app across hybrid environments.

In Open Application Model, we propose an app-centric approach instead:

  • Application first - define the app deployment with a self-contained model, where operational behaviors as part of app definition, free of infrastructure, simply deploy.
  • Clarity and extensibility - an open standard to modularize app delivery into reusable pieces, assemble them into a deployment plan per your own needs, fully self-service.
  • Vendor agnostic - a consistent yet higher level abstraction to model app delivery across on-prem clusters, cloud providers or even edge devices. Zero lock-in.

The design of Open Application Model is driven by KubeVela project - a modern application deployment platform that intends to make delivering and managing applications across today's hybrid, multi-cloud environments easier and faster.

Learn the Model

The model is maintained as a set of versioned API documentations as shown below.

Previous Releases Latest Release Working Draft
OAM Release Versions v0.2.1 (KubeVela v0.3.x) v0.3.0 (KubeVela v1.x) v0.3.1 (KubeVela v1.x)

For OAM release v0.1.0, it is only supported in Rudr and now archived.

Community

Contributing

See the CONTRIBUTING guide for detailed information.

Security

Security concerns should be tracked as issues on this repository. See here for more information about our issue lifecycle.

Meeting Hours

Item Value
Mailing List https://groups.google.com/forum/#!forum/oam-dev
Bi-weekly OAM Community Call (English) Zoom, Meeting Notes, Records (YouTube)
Bi-weekly APAC Friendly Meeting (Chinese) Zoom, Meeting Notes, Records (BiliBili)
IM Channel https://gitter.im/oam-dev/
Twitter @oam_dev

Copyrights

Both Open Application Model and KubeVela projects are hosted in Cloud Native Computing Foundation (CNCF), all copyrights belong to CNCF.