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

  

OAM项目负责人

  

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

  
  

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

     

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

  

OAM为什么值××××××开发×××运维人×××能力,让应用管理变得更轻松,应用交付变得更可控。

  
      <李> <>强平台无关与高可扩展:应用定义与平台层实现解耦,应用描述支持任意扩展和跨环境实现李   <李> <>强模块化应用运维特征:可以自由组合和支持模块化实现的运维特征描述李   
  

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

  

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

  

OAM项目目前由规范和实现两部分组成

  

什么是打开应用程序模型吗?

  

OAM是一个专注于描述应用的标准规范。有了这个规范,应用描述就可以彻底与基础设施部署和管理应用的细节分开。这种*×××eperation个值得关注的问题)的设计好处是非常明显的* *。举个例子,在实际生产环境中,无论是入口,参股,还是服务网格,这些表面看起来一致的运维概念,在不同的Kubernetes集群中可谓千差万别,通过将应用定义与集群的运维能力分离,我们就可以让应用开发者更专注于应用本身的价值点,而不是“应用部署在哪”这样的运维细节。此外×××平台架构师可以轻松地把平台的运维能力封装成可被复用的组件,从而让应用开发者能够专注于将这些运维组件与代码进行集成,从而快速,轻松地构建可信赖的应用。打开应用程序模型的目标是让简单的应用管理变得更加轻松,让复杂的应用交付变得更加可控。

  

<强>一、应用组件(组件)

  

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

  

<强>二,应用部署配置文件(应用程序配置)

  

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

  

<强>三,应用运维特征(特征)

  

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

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