简介: 受阿里云邀请,我有幸在《云原生架构白皮书》发布前试读了该书,本文结合白皮书内容,谈谈开放应用模型(OAM)

前言

7月21日阿里云发布了《云原生架构白皮书》,该书由阿里云众多技术专家共同编撰而成,从云原生定义、技术、架构、产品、实践和发展趋势几个方面详细介绍了云原生这一近些年来大火的技术概念。受阿里云邀请,我有幸在该书发布前试读了该书,但是由于最近比较忙,现在才有空和大家分享我的试读感受。

熟悉我的朋友肯定知道,去年开放应用模型(OAM)概念一经提出,我就十分关注这一技术模型,最近更是参与到了该模型的实现项目 Crossplane 中,同社区中的同学共同实现云原生技术“以应用为中心”这一终极愿景。但是苦于社区中的资料都是英文,同时自己的理解又比较片面,在向身边同事和其他不了解该项技术的同学科普 OAM 时,往往很难准确表达我的观点。

OAM 是什么?OAM 能做什么?我们为什么需要 OAM?每每被同事进行灵魂拷问时,总是不能拿出完整、条理、有说服力的东西,只能根据自己的理解以及一些零零散散的技术文章来说明我的观点,很是不爽。但是当我读到《云原生架构白皮书》第三章中的开放应用模型(OAM)章节时,我知道我的问题解决了。该章系统的介绍了 OAM 这项技术的背景、定义、概念、实现和未来,读者只要对云原生稍有理解,就能轻松从这章中找到前面那些问题的答案。

那么 OAM 到底是什么?

从《云原生架构白皮书》的内容出发,结合我的理解,大致将 OAM 的特点分为以下三点:

以应用为中心

今年是 Kubernetes 项目诞生的第六年,在这六年中,以 Kubernetes 为首的云原生技术快速的改变着我们的技术架构,一个又一个的应用被拆分成微服务,打包成容器,运行在 Kubernetes 上。然而随着微服务越拆越多,管理微服务的难度也呈指数型增长,Kubernetes 中并没有”应用“这一概念,提供给我们的只有 deployment、StatefulSet 这样工作负载粒度的资源,而一个应用,可能由多个 Deployment、Service、以及各种相关配套资源组成(如:HPA 用于弹性伸缩、Ingress 用于外部访问等)。Kubernetes 并没有提供给我们一个统一的资源或者说是方法来管理这些相关资源,各个公司只能开发自己的 PASS 平台或设立规范约束自己的应用。

OAM 的出现补充了“应用”这一概念,建立对应用和它所需的运维能力定义与描述的标准规范。换言之,OAM 既是标准“应用定义”同时也是帮助封装、组织和管理 Kubernetes 中各种“运维能力”的工具。通过 OAM 中应用的可交付对象 - Application Configuration,我们可以轻松的掌握我们的应用到底有那些 Kubernetes 工作负载组成,这些工作负载都使用了哪些运维特性,这些内容都会以 Kubernetes API 对象的形式展示,查看起来和查看 Deployment 与 Service 资源一样方便。

关注点分离

在实践中,如果基础架构和应用是由不同团队维护的,由于各个团队的关注点不同、对 Kubernetes 了解的程度不同、使用习惯不同,很容易产生混乱。实际上,对于业务研发人员和运维人员而言,他们并不想配置这些如此底层的资源信息,而希望有更高维度的抽象。这就要求一个真正面向最终用户侧的应用定义,一个能够为业务研发和应用运维人员提供各自所需的应用定义原语。

通过组件(Component)和运维特征(Trait)将业务研发人员与运维人员关注的不同特征进行分离,再将不同的运维特征(Trait)与业务组件(Component)进行绑定,最终再由OAM 可交付物 – Application Configuration 将所有组件组装为一个统一的应用。研发与运维对资源的控制进行细粒度的划分,可以有效的解决实际情况中存在的类似”我比你更懂 Kubernetes,要听我的“的现象,避免了研发与运维之间的甩锅与扯皮的情况。

面向最终用户的应用管理平台

这部分白皮书中并未详细提及,但这也是我们现阶段的主要工作和努力方向,经过不到一年的时间,OAM 的概念、思想已经基本成熟,而基于 OAM 的实现也已经出现 - Crossplane 项目,该项目目前为 CNCF 的 Sandbox 项目。

Crossplane 的出现解决了平台维护者,也就是负责维护 Kubernetes 的基础设施工程师的难题。但是对于应用研发和运维人员,也就是 OAM 的最终用户,操作起来并不是十分的友好。基础设施工程师为他们提供了一堆 CRD,他们必须逐个去挑选、测试和甄别,尤其是一些运维特征(Trait)可能存在功能冲突,不能同时与一个业务组件(Component)绑定,这都都要应用研发和运维人员自己去学习和测试,虽然可以通过文档来规范,但显然这样做并不优雅,这时 OAM App Engine(暂定名 RdurX)就出现了。

OAM App Engine 的目标用户群体是应用开发者,是希望终端开发者用户可以感受到 OAM 提倡的各类应用管理理念带来的价值。相比于其他基于 K8s 的应用管理平台(如 rio ),OAM App Engine 将至少具备如下三大核心价值。

  1. 插件系统:App Engine 可以通过 OAM 具备快速纳管 operator 的能力,轻松扩展各种能力。
  2. 用户体验:贴近开发者,一切设计以最终开发者使用体验至上,复杂的概念做抽象,用户熟悉的概念不隐藏。
  3. 最佳实践:App Engine 将成为 OAM 实现的最佳实践。

OAM App Engine 由 CLI 命令行工具、 Dashboard UI 管理页面和一系列编排文件/DSL 组成,目前还处于功能设计与开发当中,预计在8月底会和用户见面。OAM App Engine 的开发者均来自 OAM 中国社区,来自不同的公司和组织,是真正的从社区中来,服务社区用户。

原文链接:https://developer.aliyun.com/article/768884?utm_content=g_1000162429

本文为阿里云原创内容,未经允许不得转载。

读完《云原生架构白皮书》,我们来谈谈开放应用模型(OAM)相关推荐

  1. 分布式系统架构与云原生—阿里云《云原生架构白皮书》导读

    -点击领取<云原生架构白皮书>- 导语: 有幸作为阿里云MVP提前获得了阿里云云原生团队编写的<云原生架构白皮书>,希望通过自己对于云原生的理解为开发者提供一篇观后感或者是能够 ...

  2. 业界首发|阿里云重磅发布云原生架构白皮书

    2020 年 7 月 21 日,由阿里云 20+ 位云原生技术专家共同编撰的<云原生架构白皮书>正式对外发布.作为业界首本全方位构建云原生架构规划与实践全景图的白皮书,本书在详细阐述云原生 ...

  3. 阿里云技术白皮书_对阿里重磅发布的云原生架构白皮书的初步解读

    今天准备整理和分享下阿里云发布的云原生架构白皮书.在今年7月份,由阿里云20+位云原生技术专家共同编撰的<云原生架构白皮书>正式对外发布.据官方介绍,本书涵盖了云原生架构的产生缘由.阿里云 ...

  4. 阿里云技术白皮书_阿里云最新大作云原生架构白皮书解读

    简介:云原生的变革已经势不可挡,他带来的不止是技术革新,同时也是组织架构和商业模式的变革,随着类似OAM这样的云原生标准化应用分发的建立,云原生时代的操作系统将逐渐浮现于世 "云原生&quo ...

  5. 【阿里云·云原生架构·白皮书】保姆级解读 一、 云原生架构定义

  6. 【云原生-白皮书】简章1:为什么我们需要云原生架构?

    文章目录 前言:云原生是什么? 日薄西山:传统的软件开发模型? 后起之秀:云原生为什么被需要? 云原生的发展背景 云原生的发展构成 微服务 DevOps 持续交付 容器化 总结 声明:本文为<阿 ...

  7. 谈谈为什么我们需要云原生架构?

    未来的软件,从诞生起,就是生在云上,长在云上的.这个说法绝对不是没有根据的,看看现在的互联网大厂在做的事情,你就知道了: 阿里宣布成立云原生技术委员会,并投入数十亿大力推动阿里经济体全面云原生化,对外 ...

  8. 京东零售大数据云原生架构实践

    通常谈到大数据,想到的是大数据平台.Hadoop生态或者数据湖技术,关注于大数据存储.大数据计算方向上的技术发展与应用:谈到云原生,想到的是微服务架构.容器化或者SRE(Site Reliabilit ...

  9. 总结:云原生架构理解

    一. 为什么需要云原生架构? 企业内部 IT 建设如果都基于最底层 IDC 设施独自向上构建,都需要单独分配硬件资源,这就造成资源被大量占用且难以被共享. 但是上云之后,由于云厂商提供了统一的 Iaa ...

最新文章

  1. unzip 压缩包含路径,解压缩覆盖路径下的同名文件
  2. 人人FED CSS编码规范
  3. springboot实现上传文件
  4. 很火的WiFi6,了解一下
  5. JavaScript框架的超简史
  6. 【DP】平铺方案(ybtoj DP-1-5)
  7. 一个简单的.NET MVC 实例
  8. rails4 ajax 例子,Ajax和Rails 4:创建实例变量并更新视图而不刷新
  9. Python学习笔记:求一组数据的众数
  10. firebug console说明
  11. 2020-04-04 接收队列--配置所有的TCP数据流定向到接收队列2中
  12. Android Gradle指南系列
  13. 一大批历史精彩文章啦
  14. 产业区块链一周动态丨数字货币发展写入十四五规划,湖南印发区块链发展规划...
  15. 现如今安卓手机的系统优化哪家好呢?
  16. [休闲]GDC China 2007上海中国游戏开发者大会
  17. CAD教程:CAD联动模式的使用技巧
  18. oracle sql查询取整,Oracle SQL语句操作数字:取整、四舍五入及格式化
  19. 宝宝出生前妈妈准备物品清单
  20. BAPI_GOODSMVT_CREATE(调拨 收货 发货 入库 退货)BAPI

热门文章

  1. java修改配置文件参数_在java类中获取在.properties配置文件中设置的参数
  2. c语言线程经常段错误的是,由pthread_create引起的段异常
  3. java什么是类和对象,Java类和对象的概念
  4. update关联一个视图的时候特别慢_实现一个简单的Vue.js
  5. mysql建表语句增加注释_MySQL建表语句+添加注释
  6. java编程思想泛型对混入的详细探讨
  7. idea shell 使用linux_Linux使用shell定时任务实现ffmpeg视频转码和截图
  8. 【LeetCode笔记】72. 编辑距离(Java、字符串、动态规划)
  9. java代码中 作用_Java利用开发中代码生成工具的作用
  10. simulink仿真及代码生成技术入门到精通_Simulink仿真零基础入门到精通实用教学教程 自学全套...