微软与阿里云合作推出“开放应用模型(OAM)”

英文原文:Announcing the Open Application Model (OAM)

原文标题:微软与阿里云合作推出“开放应用模型(OAM)” 用于 Kubernetes 及更多平台的应用开发、运行的开放标准

Kubernetes 已经成为业界领先的容器编排环境,这极大地推动了 Kubernetes 服务在全球各大主要公有云平台上的显著增长。但是,在 Kubernetes 的核心资源中诸如服务、部署等,从整个应用的角度来看,却像是呈现出应用的离散状态。此外,Helm chart 这样的对象,虽然看起来像是可以部署的应用,但真正部署之后,却缺少运行应用所需的应用中心模型。这就需要有一个定义清晰、完整一致的模型,来表达整个应用,而不仅仅是它的模板或者是组件。正是出于这样的考虑,微软与阿里云基于 Open Web 基金会展开合作,推出了开放应用模型(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 和任意云环境打造一个简单、可移植、可复用的应用模型。

原文地址:https://www.cnblogs.com/yunshequ/p/11703612.html

时间: 2024-10-11 13:14:23

微软与阿里云合作推出“开放应用模型(OAM)”的相关文章

阿里云宣布推出Serverless Kubernetes服务 30秒即可完成应用部署

摘要: 阿里云宣布推出Serverless Kubernetes服务,容器服务新增Serverless形态. 5月2日,阿里云宣布推出Serverless Kubernetes服务,容器服务新增Serverless形态.开发者可在5秒内创建集群.30秒部署应用上线.用户无需管理集群基础设施,还可根据应用实际消耗资源按量付费,此举意在进一步降低容器技术的使用门槛,简化容器平台运维的复杂度.该服务即日起开启公测. 阿里云是国内最大规模的容器公共云平台,为数千多家企业提供容器平台.新推出的Server

【免费公测中】为数据赋予超能力,阿里云重磅推出Serverless数据分析引擎-Data Lake

摘要: 近日,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics,Data Lake Analytics,帮助更多不具备分析能力的存储服务,赋予其分析的能力. 近日,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics,Data Lake Analytics,帮助更多不具备分析能力的存储服务,赋予其分析的能力. 从生活中的购物交易,到工业上的生产制造,再到社交网络媒体信息.企业化管理决策等等,大数据成为当前经济社会最重要的前进

阿里云中间件推出全新开发者服务

摘要: 要码出未来,除了程序员专属的节日福利,还需要实打实的为程序员解决手头的难题. 10月24日,阿里云推出全新开发者服务,发布多款开发工具,包括Alibaba Cloud Toolkit .链路追踪Tracing Analysis和应用高可用服务AHAS等,旨在帮助开发者们提高开发效率,降低运维复杂性. 要码出未来,除了程序员专属的节日福利,还需要实打实的为程序员解决手头的难题. 10月24日,阿里云中间件推出全新开发者服务,发布3款开发工具,包括Alibaba Cloud Toolkit

刷屏的海底捞超级APP究竟是怎样与阿里云合作的

海底捞正式发布了千人千面超级App已有两月,这家餐饮企业总能带给人们不一样的创新能力.谁能想到25年前从四川起家的火锅店,现在门店遍布国内近100座城市,已开门店超400家,海外门店也有50多家,全球注册会员超3000万. 要给3000万会员提供个性化服务,这背后的挑战不言而喻,这一次,海底捞选择与数字化转型专家---阿里云合作,阿里巴巴三大技术平台就是超级App背后的"底料"(移动研发平台EMAS.业务中台.数据中台). 1999年,阿里巴巴集团旗下B2B网站成立,此后10年内,淘宝

阿里云OTS(开放结构化数据服务)可视化管理工具的设计和功能介绍

设计初衷 最近一段时间,工作中一直用阿里云的服务器ECS以及SLB.OTS(开放结构化数据服务)等相关的服务,特别是OTS刚刚商业化,官方还没出一种可视化的管理工具,而且我曾跟阿里云OTS的架构师深入交谈过,虽然他们有推出可视化管理工具的想法,但是无奈由于种种原因,目前暂时未提上日程,而自己又在开发中负责OTS源码的修改以适合公司相应的业务逻辑并且其他人也需要调用我封装的OTS相关的服务,为了方便.高效的快速应用ots,所以一个可视化.方便快捷的OTS管理工具的需求迫在眉睫..so--我决定自己

阿里云服务器 端口开放问题 浏览器钟输入ip 访问服务器

在这里先用一堆粗口强烈吐槽阿里云服务器控制台,屎一样的界面,简直非人类的操作.想找一个功能简直无从下手. 场景: 今天刚在阿里云买了个服务器,打算愉快的用五分钟将数据库,apache,安装完毕,然后去玩游戏: 安装完数据库,发现远程链接不到,吓的我赶紧关掉防火墙,但是防火墙根本没开阿,原来阿里云自带需要在控制台配置开放3306端口才可以,其他云服务器根本没有这种吊毛操作.大家想正常访问网站还需要跟我以下一步一步的操作才行.由于阿里云的控制台经常变化(变来变去都是屎),所以可能有一天又不适用了.

阿里云合作、市场,运维派,多备份两篇软文

阿里云(合作):https://www.aliyun.com/customer/detail/dbf/ 阿里云(市场):https://market.aliyun.com/products/56014009/cmgj000276.html 运维派:http://www.yunweipai.com/ 两篇软文:http://www.yunweipai.com/archives/4362.htmlhttps://myhloli.com/duobeifen.html 众包: http://www.ma

【阿里云配置端口开放】使用 iptables

要知道: 1.目前(16年-12-10)阿里云主机只要有服务开启,所有端口是默认开启的.这样很不好,安全做法是,需要开启外网端口时,由开发人员去配置. 2.想要开放端口,就需要使用iptables命令来设置一下规则. 使用iptables: 0.首次使用请安装 iptables 输入命令:yum install iptables 1.iptables --help 来获取指令说明 2.以下列举一些常用指令 iptables -L   #列举目前所有规则 iptables -A INPUT -p

微软云和阿里云的区别

2家的服务都在用,简单总结了几点,见仁见智: 微软云以服务为级别提供防火墙配置,阿里云没有,虽然也可以在操作系统级别来设定防火墙,但是可以portal上配置外部防火墙真的太实用太方便了,相信微软在这方面下了很大的功夫才可以做到. 微软提供一个azure 的命令开发接口,可以对虚拟机做很多的定制开发,一个最简单实在的需求就是晚上没有业务的时候,可以配置服务器自动关机,早上起来再开机,微软云默认按照时间来计算费用,这一点可以很有吸引力.另外定制的接口还可以和原有的监控系统结合起来. 流量,微软云大客