ankumar / spec

The Open Application Model specification

Home Page:https://oam.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Open Application Model Specification

notification What is NEW!
May 18th, 2020. Crossplane becomes the standard Kubernetes implementation of OAM spec!
Mar 27th, 2020. OAM v1.0.0-alpha.2 is RELEASED! The new spec is highly extensible and native to Kubernetes runtime. Check the spec and What's new in OAM v1alpha2 for more detail!
Mar 26th, 2020. A proof-of-concept project named AWS ECS for OAM is published! Check the AWS Labs repo and have fun with developer centric experience with OAM + Fargate!

Open Application Model is a platform-agnostic specification for building cloud native applications.

Focused on separating concerns of development and operation needs, Open Application Model brings modular, extensible, and portable design to building and delivering applications on different platforms.

NOTICE: This repository is unstable and open to contributions. The specification is under development and could adopt breaking changes in the future. Interested in contributing? Take a look at the issues! We're looking for more great ideas on how to model cloud native applications.

Introduction

How it works

When it comes to application development and deployment, we think it is important to distinguish between the parts that developers are responsible for, and the parts that operations is responsible for. Otherwise, if these roles get muddled, it would result in communications mishaps, bugs, or even service outages.

Open Application Model attempts to solve this problem by modeling the application according to the roles responsible for building and running apps and operating infrastructure.

  • Developers are responsible for describing what a microservice or component does, and how it can be configured. They are the domain experts on the code.
  • Application Operators are responsible for configuring the runtime aspects of one or more of these microservices. They are the domain experts on the platform.
  • Infrastructure Operators are responsible for setting up and maintaining the infrastructure within which applications run. They are the domain experts on the low-level details.

For more details and user stories, see introduction.md.

See it in action

Crossplane is the implementation of the Open Application Model specification for Kubernetes. To get started with an example of the Open Application Model, follow the guide to run applications on Crossplane.

The Specification

The specification convention adopts Kubernetes Resource Model which we believe will become the standard interface for the majority of platforms in the future.

Notational Conventions

  1. Purpose and Goals
  2. Overview and Terminology
  3. Workload Types
  4. The Component Model
  5. Application Scopes
  6. Traits
  7. Application Configuration
  8. Practical Considerations
  9. Design Principles

Community

Milestones

To get an overview of the milestones and their description please visit the Milestones page.

Triaging

Triaging of items into milestones will occur during the bi-weekly community call. During this call, issues might be brought into milestones, removed from milestones or moved between milestones.

Contributing

See the CONTRIBUTING guide for more information about submitting changes to the spec.

One of the easiest ways to contribute is to participate in discussions. There are several ways to get involved.

Item Value
Mailing List https://groups.google.com/forum/#!forum/oam-dev
Community meeting info Bi-weekly (Starting Oct 22, 2019), Tuesdays 10:30AM PST
Meeting link https://zoom.us/j/271516061
APAC Friendly Community meeting Bi-weekly APAC (Starting May 19, 2020), Tuesdays 19:00PM GMT+8
Meeting link APAC Friendly meeting https://zoom.com.cn/j/2847572020
Meeting notes Notes and agenda
Meeting recordings Recordings
IM Channel https://gitter.im/oam-dev/
Twitter @oam_dev

Resources

Come find community blogs and conference talks about OAM in community/talks_and_blogs.md.

About

The Open Application Model specification

https://oam.dev

License:Other