OAM概述
OAM (Open Application Model)是一个专注于描述应用的标准规范,OAM的愿景是在应用的维护生命周期内,提供一种标准化的沟通方式。将应用开发者、应用运维人员和基础设施运维人员,以一种标准化的方式连接起来,并且强化了应用生命周期中各个角色的职责。
对于平台开发人员来说,我们都知道Kubernetes的抽象层级:容器和基础设施API资源。但是对于平台的终端用户而言还是太过底层。
为了在一定程度上提高终端用户的体验,有的通过引入PaaS或者GUI来向终端用户隐藏Kubernetes API。但是这极大的限制了平台的能力,因为Kubernetes设计的原则就是系统的所有能力都要能够可以表达成"数据"
怎样使平台构建者能够定义应用级别的抽象而不引入对平台可扩展性限制的理念?
这就要求一个真正面向最终用户侧的应用定义,需要能够为业务研发和应用运维人员提供各自视角的应用定义原语。所以说,OAM 带来的改变,就是提供了一种大家都可以遵循的、标准化的方式来定义更高层级的应用层抽象,并且把“关注点分离”作为这个定义模型的核心思想。
特点:
开发和运维关注点分离:开发者关注业务逻辑,运维人员关注运维能力,让不同角色更专注于领域知识和能力;
平台无关与高可扩展:应用定义与平台实现解耦,应用描述支持跨平台实现和可扩展性;
模块化应用部署和运维特征:应用部署和运维能力可以描述成高层抽象模块,开发和运维可以自由组合和支持模块化