Skip to content

Latest commit

 

History

History
23 lines (16 loc) · 2.05 KB

1.purpose_and_goals.md

File metadata and controls

23 lines (16 loc) · 2.05 KB

1. Purpose and Goals

The goal of Open Application Model is to define a standard, runtime-agnostic way to describe application deployment across hybrid environments, clouds or even edge devices.

The central problem this specification seeks to address is how distributed applications can be composed and then successfully handed off to those responsible for operating them. The problem is not so much about how to write programs, but how to take components of a service oriented (or microservice oriented) architecture, and streamline the workflow that surrounds such applications.

For example, a contemporary cloud application may be composed of dozens of microservices, each responsible for a discrete chunk of what, broadly speaking, is "an application." Such applications need to be configured, deployed, audited, updated, and deleted. Sometimes the application must be treated as a whole, and sometimes finer levels of granularity are required. And most importantly, often such applications are managed not by one person or one team, but by multiple teams who must cooperate to achieve reliability, stability, and timeliness.

This specification provides a description of such applications, where the description is declarative, extensible and with best clarity. Furthermore, it suggests patterns and processes for managing such applications. The specification describes a model for cloud native (i.e. highly distributed) applications, encompassing public cloud technologies, on-prem solutions, and IoT/edge technologies. By specifying a common model, this specification provides a foundation for building application delivery systems with a standard yet higher level description of cloud native applications.

Non-goals include:

  • Defining or prescribing specific orchestrating workflow.
  • Defining the schemas of operational resources, for example (but not limited to):
    • Secrets (secure, encrypted values)
    • Networks
    • Volumes
  • Describing or defining the runtimes themselves.
Next Part
Overview and Terminology