作者: OAM 项目负责人

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

OAM 为什么值得关注?

  • 关注点分离:开发者关注应用本身,运维人员关注模块化运维能力,让应用管理变得更轻松、应用交付变得更可控。
  • 平台无关与高可扩展:应用定义与平台层实现解耦,应用描述支持任意扩展和跨环境实现
  • 模块化应用运维特征:可以自由组合和支持模块化实现的运维特征描述

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

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 和任意云环境打造一个简单、可移植、可复用的应用模型。

点击阅读原文直达OAM主页:https://oam.dev/

“ 阿里巴巴云原生微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术公众号。”

重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源相关推荐

  1. 互联网晚报 | 12月11日 星期六 | 极兔正式入股百世快递;全球首颗云原生卫星诞生;紫光集团重组战略投资者确定...

    ‍ 今日看点 ✦ 全球首颗云原生卫星升天,华为云云原生首次在太空得到验证 ✦ 中国电信天翼云科技有限公司揭牌,引入四大央企签署股权多元化框架协议 ✦ 紫光集团重组战略投资者确定,智路建广联合体最终入围 ...

  2. 超越Facebook、谷歌、微软,百度发布全球首个百亿参数对话预训练生成模型PLATO-XL...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 和 AI 进行无障碍的对话,是什么样的体验?你或许能够在这篇文章里找到 ...

  3. 打破AI算力成本困局 趋动科技即将重磅发布全球首个AI算力池化云服务

    10月23-25日,由湖南湘江新区管委会指导,长沙工业与信息化局.长沙信息产业园管委会.CSDN联合主办的"2022 长沙·中国1024 程序员节"即将在线上隆重开启.本届大会聚焦 ...

  4. 业内首款云原生技术中台产品云原生 Stack 来了!

    今天,企业数字化转型依然面临很大的挑战,虽然有很多新技术不断涌现,云厂商.ISV 在帮助企业做转型,但是在实际落地过程中,企业仍然需要解决一些痛点,比如:当前,业界技术产品和理念非常繁多,怎么用新技术 ...

  5. 业内首款云原生技术中台产品云原生 Stack 来了

    简介: 云原生 Stack 满足了各种典型场景下客户对于线下高集成平台的诉求,让企业数字话转型不受技术约束,专注业务本身,加速企业数字化迭代. 今天,企业数字化转型依然面临很大的挑战,虽然有很多新技术 ...

  6. ibm量子计算机科学家,重磅!IBM发布全球首个独立商用量子计算机

    原标题:[重磅]IBM发布全球首个独立商用量子计算机 雷锋网消息,全球的科技巨头都在量子计算上投入了大量资源.值得关注的是,在2019 CES上,IBM宣布推出IBM Q System One,该系统 ...

  7. 阿里云混合云重磅发布 全栈建云智能管云极致用云

    6月9日, 2020阿里云峰会在云端召开,阿里云混合云产品总监谢宁出席峰会并发布阿里云混合云战略:全栈建云.智能管云.极致用云.阿里云混合云是国内首个大规模成熟商用的原生混合云,提供稳定.安全.弹性. ...

  8. 重磅消息:全球首个光量子计算机诞生!

    本文讲的是重磅消息:全球首个光量子计算机诞生![IT168 资讯]5月 3日,科技界迎来了一个振奋人心的消息:世界上第一台超越早期经典计算机的光量子计算机在中国诞生!这标志着我国的量子计算机研究领域已 ...

  9. 首批 | 腾讯云完成国内首个云原生安全成熟度评估

    历经多年发展,我国云原生技术生态已趋于完善.行业用户接纳度急速提升.资本市场热潮涌动,可以预见我国云原生产业即将进入高景气周期.在用户侧,全面转型云原生已是大势所趋,但云原生技术架构的重塑和应用模式的 ...

最新文章

  1. Gartner:预计2018年人工智能行业总价值达1.2万亿美元
  2. placeholder的样式设置
  3. 【转】补零与离散傅里叶变换的分辨率
  4. ioctl , fcntl socket操作详解
  5. [蓝桥杯][2017年第八届真题]拉马车(String)
  6. 《Neural Networks for Machine Learning》学习一
  7. alsa声音编程介绍
  8. tensorflow tf.train.batch()
  9. 不适合的研究生,分流!不适合的导师,退出!
  10. Oracle之批量生成数据
  11. hdu acm1286
  12. HyperLedger Fabric 1.0的Transaction处理流程
  13. python锁机制_Python并发编程之谈谈线程中的“锁机制”(三)
  14. mysqldump备份所有数据库,恢复单个库的场景预演
  15. C++ 函数需要有返回值,但非全分支return(RVO)
  16. NGN学习笔记1——NGN的基本概念和体系结构
  17. 大学四年我是如何学习程序设计的
  18. 物联卡实名用不用注销,物联卡三个月不用会自动注销吗
  19. 小象python培训班_小象最新Python机器学习升级版视频学习教程 共24节精品课
  20. BIOS实战之读写逻辑设备(SIO)

热门文章

  1. MySQL创建索引(CREATE INDEX)
  2. 7、实例:计算课程结束的日期
  3. 105. 七夕祭【环形均分纸牌问题】
  4. 【PAT乙级】1056 组合数的和 (15 分)
  5. sql 199标准 连接查询
  6. HttpServlet的doGet()和doPost()方法
  7. Cookie对象的应用
  8. mysql传不进去汉字,Mysql下插入汉字失败
  9. php 匹配多行,PHP-选择与相关表中的多行匹配的行
  10. 蓝桥杯-01字串(java)