Skip to content

Latest commit

 

History

History
23 lines (16 loc) · 2 KB

1.purpose_and_goals.md

File metadata and controls

23 lines (16 loc) · 2 KB

1. Purpose and Goals

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

The central problem this model 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 model provides a description of such workflow, where the description itself is declarative, extensible and with best clarity. Furthermore, it suggests patterns and processes for operating such applications. The model will focus on cloud native (i.e. highly distributed) applications, encompass public cloud technologies, on-prem solutions, and IoT/edge technologies. This sets a solid foundation for modern application delivery systems with a standard yet higher level description of cloud native application deployment.

Non-goals include:

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