Open Application Model (OAM) is a portable application definition which provides a platform-agnostic approach to describe cloud and edge applications. OAM's philosophy is building application centric infrastructure which let users choose where to run application based on application level concerns. In order for this model to work, a runtime needs to implement OAM spec.
Rudr is the reference OAM implementation for Kubernetes.
Note: Rudr is currently in alpha. It may reflect the API or features we are vetting before inclusion into the Open App Model spec.
Modeling, deploying and operating applications shouldn’t have to claim complex infrastructure configurations, and we hope application maintainers could think in terms of application architecture, not of infrastructure.
However, achieving this directly with Kubernetes is hard.
At the heart of it, container orchestration systems inextricably mixes application primitives with infrastructure primitives. Different roles, such as developers and operators, have to concern themselves with problems from each other's domain as well as learning infrastructure details in order to understand the whole picture of the deployment.
This introduced the following problems for application deployment and management:
- It is difficult to model and describe applications from developers' view.
- It lacks manageability and discoverability for operational capabilities from operators' view.
- Both developers and operators have to work with "platform for platform" API of Kubernetes which is pretty low level and mostly designed for infra operators.
To solve these problems, Rudr models applications with OAM primitives so to provide application centric abstraction for Kubernetes.
Rudr is essentially a set of Kubernetes CRDs + controllers so users still use kubectl
to manage their applications natively, but with application level API (Components) for developers, and operational capability level API (Traits) for operators. Meanwhile, infra operators still work on Kubernetes itself.
Currently, Rudr leverages pre-installed traits and workload types to accomplish the task. While in the upcoming releases, Rudr will provide a plugin technology to integrate any given operational capability and workload type defined by CRD and Operator. See Extended Workload.
Get started with a How-To guide.
Read the documentation list for more options.
This project welcomes contributions and suggestions. See CONTRIBUTING.md for more details. Below are links to join the bi-weekly community meetings and our meeting notes. Community Slack channels & mailing lists will be added shortly (~ 10/1).
Item | Value |
---|---|
Mailing List | https://groups.google.com/forum/#!forum/oam-dev |
Meeting Information | Bi-weekly (Starting Oct 22, 2019), Tuesdays 10:30AM PST |
Bi-weekly APAC (Starting Dec 24, 2019), Tuesdays 1:00PM GMT+8 | |
Meeting Link | https://zoom.us/j/271516061 |
IM Channel | https://gitter.im/oam-dev/ |
Meeting Notes | https://docs.google.com/document/d/1nqdFEyULekyksFHtFvgvFAYE-0AMHKoS3RMnaKsarjs/edit?usp=sharing |
@oam_dev |
This project follows governance structure of numerous other open source projects. See governance.md for more details.
This project is available under the terms of the MIT license. See LICENSE.txt.