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

简介: 受阿里云邀请,我有幸在《云原生架构白皮书》发布前试读了该书,本文结合白皮书内容,谈谈开放应用模型(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 资源一样方便。

Application Configuration

关注点分离

在实践中,如果基础架构和应用是由不同团队维护的,由于各个团队的关注点不同、对 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 App Engine 的目标用户群体是应用开发者,是希望终端开发者用户可以感受到 OAM 提倡的各类应用管理理念带来的价值。相比于其他基于 K8s 的应用管理平台(如 rio ),OAM App Engine 将至少具备如下三大核心价值。

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

OAM 架构

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

欢迎对 OAM 有兴趣的朋友加入,社区每双周都会进行视频例会,欢迎大家发表自己的见解或提出相关疑问。

OAM 中国社区

结语

《云原生架构白皮书》的编写集合了阿里云众多技术专家,基于这些年阿里云海量的技术实践,对云原生这一当下十分火爆概念进行了十分深入的剖析,在分享知识和实践经验的同时还对云原生相关技术、架构设计和发展趋势等内容进行分析和描述,为那些对于云原生这一概念还十分陌生和迷茫的开发者/管理者提供了一份干货满满的参考资料。这里借用白皮书序言里的一句话:

云计算的下一站,就是云原生;

IT 架构的下一站,就是云原生架构 ;

希望所有的开发者、架构师和技术决策者们,共同定义、共同迎接云原生时代。

《云原生架构白皮书》下载链接 : https://developer.aliyun.com/topic/download?id=721

<img src="https://tva3.sinaimg.cn/large/ad5fbf65gy1gfm3j2vo79g20b90b9x6r.gif" style="width: 150px;">

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
23天前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
24天前
|
运维 Cloud Native 安全
云原生技术在现代企业中的应用与挑战####
本文探讨了云原生技术在现代企业IT架构中的关键作用,分析了其带来的优势和面临的主要挑战。通过实际案例分析,揭示了如何有效应对这些挑战,以实现业务敏捷性和技术创新的平衡。 ####
|
21天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
21天前
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
16天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
15天前
|
机器学习/深度学习 测试技术 定位技术
新扩散模型OmniGen一统图像生成,架构还高度简化、易用
近期,一篇题为“OmniGen: Unified Image Generation”的论文介绍了一种新型扩散模型OmniGen,旨在统一图像生成任务。OmniGen架构简洁,无需额外模块即可处理多种任务,如文本到图像生成、图像编辑等。该模型通过修正流优化,展现出与现有模型相当或更优的性能,尤其在图像编辑和视觉条件生成方面表现突出。OmniGen仅含3.8亿参数,却能有效处理复杂任务,简化工作流程。尽管如此,OmniGen仍存在对文本提示敏感、文本渲染能力有限等问题,未来研究将继续优化其架构与功能。
43 16
|
21天前
|
Cloud Native JavaScript Docker
云原生技术:构建现代应用的基石
在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。
|
21天前
|
运维 Cloud Native 持续交付
云原生技术深度探索:重塑现代IT架构的无形之力####
本文深入剖析了云原生技术的核心概念、关键技术组件及其对现代IT架构变革的深远影响。通过实例解析,揭示云原生如何促进企业实现敏捷开发、弹性伸缩与成本优化,为数字化转型提供强有力的技术支撑。不同于传统综述,本摘要直接聚焦于云原生技术的价值本质,旨在为读者构建一个宏观且具体的技术蓝图。 ####
|
21天前
|
Cloud Native API 持续交付
云原生架构下的微服务治理策略与实践####
本文旨在探讨云原生环境下微服务架构的治理策略,通过分析当前面临的挑战,提出一系列实用的解决方案。我们将深入讨论如何利用容器化、服务网格(Service Mesh)等先进技术手段,提升微服务系统的可管理性、可扩展性和容错能力。此外,还将分享一些来自一线项目的经验教训,帮助读者更好地理解和应用这些理论到实际工作中去。 ####
36 0
|
22天前
|
Cloud Native 持续交付 云计算
云原生架构的崛起:企业数字化转型的加速器
在当今快速发展的技术环境中,企业正面临着前所未有的变革压力。本文深入探讨了云原生架构如何成为推动企业数字化转型的关键力量。通过分析其核心概念、优势以及实施策略,本文旨在为读者提供对云原生技术的全面理解,展示其在现代企业中不可或缺的作用。
26 0

热门文章

最新文章