设计原则

开放应用模式遵循一套设计原则,以确保该模式的清晰性、丰富性和可扩展性。

https://github.com/oam-dev/spec/blob/master/9.design_principles.md

开放应用模式遵循一套设计原则,以确保该模式的清晰性、丰富性和可扩展性。

关心点分离

关心点分离是一种设计理念,在这种理念中,架构的选择是参照正在解决的离散问题来进行的。像 “组件” 和 “应用”,或者 “原理图” 和 “配置” 这样的人工制品的划分是按照功能或行为线划分的。通过确定各种用户群体的角色和责任,规范被划分为与问题空间相匹配的概念。

运行时中立性

开放应用模式是运行时无关的。它不假设任何运行时的特定功能。相反,它的目的是为应用程序的所有者和运维人员提供一个通用的词汇表,以描述所需的拓扑结构和行为,不受任何特定平台的影响。

平衡(优雅)

在确保关注点分离的同时,OAM试图避免对在小型团队中承担多种角色的用户造成不必要的复杂性。简单的方案应该可以用最少的时间和精力投入来实现,但复杂的方案应该在不需要重新平台化的情况下得到满足。

OAM提供了多个抽象层,因此可以独立于开发人员的关注点来捕捉运维上的问题。

可重用性

OAM示意图中的组件被设计为可重复使用和可共享。此外,它们保持独立于它们所描述的代码,使得有可能重新使用代码(容器),并防止 “锁定” 条件。

该模型作为一个整体被设计用来提供应用程序的 “分布(distributions)",在这种情况下,同一个应用程序可以在不同的平台上执行而不被改变。应用程序的这种可移植性旨在使以下情况不仅是可能的,而且是容易的:

  • 将应用程序从开发者工作站转移到生产集群或服务中
  • 在不改变代码的情况下从一个实施方案迁移到另一个实施方案
  • 创建类似市场的环境,使应用程序可以部署到客户平台上。

应用模型不是编程模型

应用模型和编程模型之间有明显的区别。应用模型描述了一个应用程序的组成和其组件的拓扑结构。它不关心每个组件是如何实现的(语言、设计模式等)。

另一方面,编程模型描述了单独的软件是如何组成的。它被开发者用来实现应用组件。开放应用模型提供了一个没有任何编程模型要求的应用模型。