写点什么

OAM 正式开源:全球首个云原生应用标准定义与架构模型

  • 2019-10-17
  • 本文字数:2765 字

    阅读完需:约 9 分钟

OAM 正式开源:全球首个云原生应用标准定义与架构模型

2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 QCon上海2019重磅宣布,阿里云与微软联合推出开放应用模型 Open Application Model (OAM)开源项目。OAM 的愿景是以标准化的方式沟通和连接应用开发者、运维人员、应用基础设施,让云原生应用管理与交付变得更加简洁,高效,并且可控。


OAM 为什么值得关注?

  • 关注点分离:开发者关注应用本身,运维人员关注模块化运维能力,让应用管理变得更轻松、应用交付变得更可控。

  • 平台无关与高可扩展:应用定义与平台层实现解耦,应用描述支持任意扩展和跨环境实现

  • 模块化应用运维特征:可以自由组合和支持模块化实现的运维特征描述


Kubernetes 项目作为容器编排领域的事实标准, 成功推动了诸如阿里云 Kubernetes (ACK)等云原生服务的迅速增长。但同时我们也关注到,Kubernetes 的核心 API 资源比如 Service、Deployment 等,实际上只是应用中的不同组成部分,并不能代表一个应用的全部。也许,我们可以通过像 Helm charts 这样的方式尝试表达一个可部署的应用,可一旦部署起来,实际运行的应用中却依旧缺乏以应用为中心的约束模型。这些问题都反映出,Kubernetes 以及云原生技术栈需要一种以应用为中心的 API 资源来提供一个专注于应用管理的、标准的、高度一致的模型,这个 API 资源可以代表完整运行的应用本身,而不仅仅是应用模板或者一个应用的几个组成部分,这就是今天阿里云与微软联合宣布推出开放应用模型 Open Application Model (OAM)的原因。



项目地址:https://openappmodel.io,OAM 项目目前由规范和实现两部分组成。

Open Application Model 是什么?

OAM 是一个专注于描述应用的标准规范。有了这个规范,应用描述就可以彻底与基础设施部署和管理应用的细节分开。这种关注点分离(Seperation of Conerns)的设计好处是非常明显的。 举个例子,在实际生产环境中,无论是 Ingress、CNI 还是 Service Mesh,这些表面看起来一致的运维概念,在不同的 Kubernetes 集群中可谓千差万别。 通过将应用定义与集群的运维能力分离,我们就可以让应用开发者更专注应用本身的价值点,而不是”应用部署在哪“这样的运维细节。


此外,关注点分离让平台架构师可以轻松地把平台运维能力封装成可被复用的组件,从而让应用开发者专注于将这些运维组件与代码进行集成,从而快速、轻松地构建可信赖的应用。Open Application Model 的目标是让简单的应用管理变得更加轻松,让复杂的应用交付变得更加可控。

一、应用组件(Components)

在 OAM 中,“应用”是由多个概念共同组合而成。第一个概念是:应用组件(Components),它是整个应用的重要组成部分。所以说,应用组件既可以包括应用运行所依赖的服务:比如 MySQL 数据库,也包括应用服务本身:比如拥有多个副本的 PHP 服务器。开发者可以把他们写的代码”打包“成一个应用组件,然后编写配置文件来描述该组件与其他服务之间的关系。应用组件的概念让平台架构师等能够将应用分解成成一个个可被复用的模块,这种模块化封装应用组成部分的思想,代表了一种构建安全、高可扩展性应用的最佳实践:通过一个完全分布式的架构模型,实现了应用组件描述和实现的解耦。

二、应用部署配置文件(Application Configuration)

为了将这些应用组件描述变成一个真正运行起来的应用,应用运维人员会通过一个专门的、包含了所有应用组件信息的部署配置文件来实例化这个待运行的应用。这个配置文件本身也是 OAM 规范中的一个声明式 API,用来让应用运维人员能够根据开发者或者平台提交的应用描述,实例化出对应的、真正运行起来的应用。

三、应用运维特征(Traits)

最后一个概念是一组应用运维特征(Traits),它们描述了应用在具体部署环境中的运维特征,比如应用的水平扩展的策略和 Ingress 规则,这些特征对于应用的运维来说非常重要,但它们在不同的部署环境里却往往有着截然不同的实现方式。 举一个简单的例子,同样是 Ingress,它在公有云上和本地数据中心的实现可能完全不同:前者一般是 SLB 这样的云服务,而后者则可能是一个专门的硬件。这也就意味着针对这两个环境的 Ingress 运维工作,将会有天壤之别。 但与此同时,无论是在哪个环境里,这个 Ingress 规则对于应用开发人员来说,可能是完全相同的。应用特征的设计,让这种关注点分离成为可能:只要这两个环境在 OAM 模型下提供了对 Ingress 这个应用运维特征的实现,那么应用就可以使用统一的 Ingress 规则描述,无差别地在这两个地方运行起来。与此同时,这两个环境的基础设施供应商可以继续通过配置这些应用特征的实现,来满足它们各自的运维要求(例如:不同环境里 Ingress 实现在满足合规性和安全性上的差异)。

OAM:平台无关、高可扩展的应用描述能力

与 PaaS 应用模型相比,OAM 有很多独有的特点,其中最重要一点是:平台无关性。虽然我们目前发布的 OAM 实现(rudr)是基于 Kubernetes 的,但 Open Application Model 与 Kubernetes 并没有强耦合。实际上 ,OAM 可以实现到任意平台或运行环境之上,这当然也包括边缘计算与物联网的场景。我们也认同 Kubernetes 在很多运行环境中可能并不是最好的选择,或者是像 Serverless 这类用户并不需要关心基础设施复杂性的运行环境。在这些场景下,OAM 都可以提供完全一致的应用管理体验。


第二个重要的特点是,OAM 的 specification (OAM 规范) 在设计上天然是可扩展的。OAM 不像 PaaS 那样自成封闭体系,也不会通过某种独有的应用管理环境屏蔽掉底层平台的特点(比如:在 Kubernetes 之上”盖一个大帽子“)。 相反,OAM 使平台层可以通过应用特征系统 (Trait system)来体现平台的特性和差异性。也就是说,只要不同的平台都能够提供应用所需要的某些应用特征 (Trait),开发人员就能轻松地研发跨平台的应用。类似地,哪怕最底层的硬件提供商,也可以通过应用特征系统来体现其平台特性。OAM 的整体设计,就是为了避免在平台可移植性中经常发生的“最小公分母”锁定问题。相反,OAM 不但提供了可移植性的能力,还确保了每个平台有能力去透出独有的特性和用途。OAM 让开发人员可以自由地针对不同平台以标准方式在可移植性和差异化功能之间取得平衡。

开放的社区与未来

如今,开放应用模型以及相应的 Kubernetes 实现有了初步成果,我们感到非常兴奋。 OAM 规范是基于 Open Web Foundation 协议进行开发的。我们的目标,从一开始就是让开放应用模型 Open Application Model 成为中立基金会的项目,以便实现开放治理与广泛合作。如果开发者希望了解更多信息,请前往开放应用模型项目的 GitHub 仓库: OAM specification ,以及基于 Kubernetes 的 OAM 标准实现Rudr


今天,OAM 项目的发布只是迈出的一小步。我们非常期待得到您的反馈,并与大家密切协作,针对 Kubernetes 和任意云环境打造一个简单、可移植、可复用的应用模型。


2019-10-17 10:2210720

评论 5 条评论

发布
用户头像
域名换成了: https://oam.dev/
2019-11-28 17:52
回复
用户头像
2019-11-23 06:57
回复
用户头像
看起来很有前途,最近发布的 Azure Ark 是不是用到了这个?
2019-11-07 15:14
回复
用户头像
猛啊, 这个要支持一下
2019-10-17 12:05
回复
没有更多了
发现更多内容

25年南昌市等保测评机构地址一览表

行云管家

使用spaCy和Thinc构建可训练关系抽取组件

qife122

深度学习 关系抽取

甲方视角的“自主可控”:低代码与厂商二次开发的全维度对比

星云低代码中间件

低代码 开发工具 数字化 企业应用

华为云入选Gartner®容器管理魔力象限领导者

华为云原生团队

云计算 容器 云原生

龙蜥开发者说:一位开源贡献者的国产操作系统“铸魂”历程 | 第 33 期

OpenAnolis小助手

操作系统 龙蜥开发者说

全球社交媒体监控的技术挑战与突破

沃观Wovision

社交媒体 舆情监控 沃观Wovision 舆情监测系统

Caddy安全插件中的10个安全漏洞分析与修复方案

qife122

网络安全 SSO

CST软件2023版新功能介绍2:两个提升效率小技巧

思茂信息

仿真 CST软件 CST Studio Suite

[意图识别]大模型对话型多Agent协同的绊脚石

小奇同学

智能体 意图识别 智能体调度

MySQL事务原理:从ACID到隔离级别的全解析

秃头小帅oi

优化DeepSpeed ZeRO在低成本硬件上的运行效率

qife122

分布式训练 GPU加速

第七在线7大价值 助力品牌实现智能化供应链决策

第七在线

【新特性】 华为云ModelArts Versatile-AI原生应用引擎新增特性介绍(2025年7月发布)

华为云开发者联盟

行程信息一眼掌握!铁路12306接入实况窗带来安心出行新体验

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

零基础AI编程开发微信小程序赚流量主广告实战

陆通

压测实战 | 高校选课系统压力测试实战教程

优测云服务平台

压测 高校

Dify入门系列(2)| 5 分钟部署 Dify:云服务 vs 本地 Docker

测吧(北京)科技有限公司

人工智能 软件测试 智能体 测试发开 dify

全球社交媒体监控与网络安全的交叉应用场景解读

沃观Wovision

社交媒体 舆情监控 海外舆情监控 沃观Wovision

科研环境配置太麻烦?Pixi 一站式帮你搞定!

肩塔didi

人工智能 rust cuda 包管理 科研

测试匠谈 | AI语音合成之大模型性能优化实践

优测云服务平台

测试 语音ai

基于开发者空间GaussDB云数据库的PLpgSQL实践二

华为云开发者联盟

sql opengauss 华为开发者空间

基于开发者空间GaussDB云数据库的PLpgSQL实践一

华为云开发者联盟

sql opengauss 华为开发者空间

低代码新范式:AI设计稿转代码在产品设计的实践落地

职场工具箱

AI 设计 产品设计 UI 代码生成

行星文化上线华为音乐,沉浸遨游张杰的音乐宇宙

最新动态

业务多变,流程难定?ManageEngine卓豪灵活工作流支持全场景自定义

ServiceDesk_Plus

[鸿蒙征文]Previewer预览器数据模拟

大展红图

HarmonyOS NEXT

🔥Grok 4 永久免费!深度测评:优势短板一次说清

GPU算力

马斯克 openai grok gpt-5 xAI

全连接贝叶斯神经网络权重后验集中性研究

qife122

贝叶斯神经网络 后验集中

龙蜥社区成立智算基础设施联盟 汇聚产业力量打造 AI 开源新基座

OpenAnolis小助手

开源 AI 操作系统 龙蜥社区 龙蜥智算基础设施联盟

企业AI落地开源工具全景图:Dify、RAGFlow、n8n、Coze深度解析与选型指南

测吧(北京)科技有限公司

自动化测试 测试开发 人工智能、 dify

拆解Agent如何实现“听懂→规划→搞定”全流程

测吧(北京)科技有限公司

人工智能 软件测试 测试开发 agent

OAM 正式开源:全球首个云原生应用标准定义与架构模型_QCon_OAM项目负责人_InfoQ精选文章