专访 CNCF 大使张磊:让云原生不再是大厂专属

近日,GitHub 上的 Go 语言趋势榜出现了一个新的项目 —— KubeVela。

1.png

据项目官方文档,KubeVela 是“一个简单易用且高度可扩展的应用管理平台与核心引擎,KubeVela 是基于 Kubernetes(K8s)与 Open Application Model(OAM)技术构建的”。

在云原生浪潮席卷全球的今天,相信大家对 K8s 肯定不会陌生,那么 KubeVela 和 OAM 又是什么技术呢?事实上,K8s 的大名虽然已经路人皆知,但在很多社区网友的反馈中,我们似乎看到围绕 K8s 的云原生生态目前只是几家头部大厂的专属。很多一线业务同学都反馈 K8s 太复杂了,太难学了,如果没有大厂的投入和技术储备来基于 K8s 构建出场景化的上层平台出来,要落地云原生技术,感觉根本搞不定。

而去年十月,阿里云与微软合作共同开源了 OAM 项目,旨在为云原生生态提供一个以应用为中心的、统一的上层抽象技术,从而大大降低业务研发同学上手云原生技术的门槛,真正享受到云原生带来的极致敏捷与研发效能提升。而刚刚发布的 KubeVela 项目,正是 OAM 模型在 Kubernetes 上的完整实现。

如今距离 OAM 项目开源正好过去一年, 那么 OAM 项目如今有何进展?本次发布的 KubeVela 项目又将为国内的 K8s 生态带来哪些影响?带着这些问题,我们与 KubeVela 项目背后的设计者之一、CNCF 应用交付领域小组 co-chair、官方大使,来自阿里云的工程师张磊,详细的聊了聊。

采访嘉宾介绍

2.jpg

以下为采访原文:

1. 请给还不了解 OAM 的朋友介绍一下 OAM 和 KubeVela 项目吧。

<张磊>:Kubernetes 和云原生技术的各种核心概念,距离咱们业务用户其实是很遥远的。实际的落地过程也告诉我们,仅仅有基础设施层抽象,离云原生“丝般顺滑”的云端应用管理与交付体验,还是存在着巨大的鸿沟。在 Kubernetes 与用户之间,还存在着一层名叫“应用层”抽象亟待填补。所以,很多业务用户对“云原生”、Kubernetes 的价值其实普遍缺乏体感,这个情况不仅在阿里里面存在,在整个社区里也是个让人头疼的问题。只有咱们的业务研发接触到的是“代码”、“应用”而不是“Pod”、“StatefulSet”,那么“让研发专注于写代码”这个美好、朴素的云原生愿望,才能够真正实现

而 Open Application Model(OAM)开放应用模型,以及它的 Kubernetes 实现 KubeVela 项目,正是阿里云联合微软等云原生社区中坚力量,共同推出的“以解决用户侧诉求”为核心的云原生应用层项目。其中,OAM 的设计思想是为包括 Kubernetes 在内的任何云端基础设施提供一个统一、面向最终用户的应用定义模型;而 KubeVela,则是这个统一模型在 Kubernetes 上的完整实现。对于业务研发人员来讲,KubeVela 可以被认为是云原生社区的 Heroku。而对于平台团队来讲,KubeVela 由于具备极高的可扩展性,则可以被认为是一个“以应用为中心”的、高度可扩展的 Kubernetes 发行版。而 OAM 项目,这是 KubeVela 背后的核心 API 范式和插件化能力管理模型。

2. 距离 OAM 发布整整一年,有哪些新增玩家参与了项目的建设工作,提交了哪些贡献?是否已经生产可用,或者还存在哪些需要完善的地方?

<张磊>:在现今的 OAM 社区中,有大量的贡献来自 Oracle、MasterCard、Upbound.io、腾讯、字节跳动、第四范式、和满帮集团等十余家技术公司与团队,他们不仅是 OAM 社区重要的技术力量,很多还是 KubeVela 项目的早期发起者。事实上,现在的 OAM 模型和它的 Kubernetes 实现 KubeVela 项目,本身就是阿里云原生应用基础设施的核心组件,支撑着包括阿里云 EDAS 服务、阿里集团核心 PaaS、阿里云边缘计算平台、达摩院 AI PaaS 在内的多个互联网级平台的内核的运行与扩展。而在接下来的设计中,OAM 社区会以 KubeVela 为核心,在已经生产可用的平台层模型的基础上,继续建设面向开发者的用户侧模型,并且以此为基础通过 Dapr sidecar 和 Istio 来完善应用层中间件与流量治理能力,实现“让云原生应用交付轻松愉悦(Make shipping applications more enjoyable)”的目标。

3. KubeVela 定义为“简单易用又高度可扩展应用管理平台”,该项目背后的思考是什么?其“简单易用又高度可扩展”这两大特性又是如何实现的?

<张磊>:今天,Kubernetes 为我们构建出了一个统一的基础设施抽象层,为平台团队屏蔽掉了“计算”、“网络”、“存储”等过去我们不得不关注的基础设施概念。但当我们把视角从平台团队提升到垂直业务系统的最终用户(如:应用开发人员)的时候,我们会发现 Kubernetes 这样的定位也为应用开发者们带来了挑战和困扰。比如,太多的用户都在抱怨 Kubernetes “太复杂了”。究其原因,其实在于 Kubernetes 中的核心概念与体系,主要是面向平台团队而非最终用户设计的。缺乏面向用户的设计不仅带来了陡峭的学习曲线,影响了用户的使用体验,拖慢了研发效能,甚至在很多情况下还会引发错误操作乃至生产故障(毕竟不可能每个业务开发人员都是 Kubernetes 专家)。

这也是为什么在云原生生态中,几乎每一个平台团队都会基于 Kubernetes 构建一个上层平台给用户使用。最简单的也会给 Kubernetes 做一个图形界面,稍微正式一些的则往往会基于 Kubernetes 开发一个类 PaaS 平台来满足自己的需求。理论上讲,在 Kubernetes 生态中各种能力已经非常丰富的今天,开发一个类 PaaS 平台应该是比较容易的。

然而现实却往往不尽如人意。在大量的社区访谈当中,我们发现在云原生技术极大普及的今天,基于 Kubernetes 构建一个功能完善、用户友好的上层应用平台,依然是中大型公司们的“专利”。这里的原因在于:Kubernetes 生态本身的能力池固然丰富,但是社区里却并没有一个可扩展的、方便快捷的方式,能够帮助平台团队把这些能力快速“组装”成面向最终用户的功能(Feature)

这种困境带来的结果,就是尽管大家今天都在基于 Kubernetes 构建上层应用平台,但这些平台本质上却并不能够与 Kubernetes 生态完全打通,而都变成一个又一个的垂直“烟囱”。这些平台都无一例外的引入了自己的专属上层抽象、用户界面和插件机制。这里最典型的例子包括经典 PaaS 项目比如 Cloud Foundry,也包括各种 Serverless 平台。所以,作为一个公司的平台团队,我们实际上只有两个选择:要么把自己局限在某种垂直的场景中来适配和采纳某个开源上层平台项目;要么就只能自研一个符合自己诉求的上层平台并且造无数个社区中已经存在的“轮子”

那么,有没有”第三种选择”能够让平台团队在不造轮子、完全打通 Kubernetes 生态的前提下,轻松的构建面向用户的上层平台呢?

KubeVela 就是这样一个面向用户的上层平台项目。对于业务开发者来说,KubeVela 简单、易用,它可以让开发者以极低的心智负担和上手成本在 Kubernetes 上定义与部署应用。而关开发者只需要编写一个 docker-compose 风格应用描述文件 Appfile 即可,不需要接触和学习任何 Kubernetes 层的相关细节。但更重要的是,对于平台团队来说,KubeVela 可不是一个简单的 PaaS 或者 Serverless,它是一个能够以 Kubernetes 原生的方式进行任意扩展的 PaaS 内核,平台工程师可以基于它构建出任意的垂直业务系统

在具体实现上,KubeVela 通过 OAM 模型,对云原生生态中的能力进行了面向用户侧的抽象,同时也做到了 KubeVela 中的任何一个功能都是插件。基于这种设计,KubeVela 以可插拔式的方式内置了 Flagger,KEDA 等社区先进的发布、扩容技术作为默认能力,又以 Kubernetes 原生的方式提供了可以一键接入任何生态能力的高可扩展性。同时,对用户提供了一个 docker-compose 风格的 Appfile 来让用户以极简的方式描述如何 build,deploy 和 release 自己的应用。这些方法,都是达成“简单易用、又高度可扩展”这两个目标的重要技术手段。

3.png

4. 具体到某一位用户要使用 KubeVela 平台,比如我是一个商城业务开发者,我如何在实际生产过程中部署和使用 KubeVela? 作为一个平台工程师,我又如何使用 KubeVela 呢?

<张磊>:KubeVela 只有一个二进制文件,所以它的部署非常简单。在任何一个 Kubernetes 集群已经就绪的情况下,下载这个二进制文件后执行 vela install 命令即可。

而使用 KubeVela 就更加简单了。比如咱们商城业务开发,他从始至终都不需要关心 KubeVela 和 Kubernetes 的存在,只需要在代码库中完成开发和本地测试,然后加上一个如下所示的 Appfile 放在代码库中即可。

4.png

这个 20 来行的配置文件,指定了咱们这个商城应用的镜像打包文件(Dockerfile),运行类型(type),启动命令(cmd),访问所需的路由和域名(route),以及水平扩容的策略(autoscale)。所有这些配置项,全部都是 KubeVela 提供的面向用户的上层抽象,不需要了解底层 Kubernetes 的任何细节和执行机制。而作为用户,只需要执行一句:vela up,一个完整的、可以立即域名访问、会自动扩容的应用就会被发布到 Kubernetes 上运行起来。这个 vela up 操作,也可以接入到 CI/CD 流水线当中,让 Git 去触发。

值得一提的是,上面所有的这些配置项具体有哪些、每个项有哪些字段可以让用户填?这些都是平台管理员可以随时配置、调节、并且修改立即生效的。这种平台层高度灵活和快速响应的敏捷性,是互联网时代软件开发与迭代的重要保证。

而对于平台开发者来说,他使用 KubeVela 的主要方式,就是通过 Kubernetes 来管理这些抽象和能力。他可以随时往 KubeVela 里安装新的能力。这些能力可以是 Kubernetes 社区里已有的插件,也可以是平台团队自己开发的 CRD controller。而所有这些操作只需要一行命令:kubectl apply -f trait.yaml。

这个 trait.yaml 实际上就是一个“能力”的描述文件,它的内容是对该能力应的 CRD 的引用和用户模板。比如,我们可以把 Kubernetes 社区的监控 CRD 作为一个应用监控能力(起名叫做 metrics)安装到 KubeVela 中,那么效果就是,平台的用户立刻就能够在 Appfile 里新定义一个配置项,叫做 metrics:

5.png

上述 Appfile 的最后一部分,就是咱们新增的 metrics 能力。怎么样,非常简单吧?大家可能会好奇,那么这样一个能力的“描述文件“,里面的内容到底长什么样子呢?

别急,KubeVela 的官方文档里提供了详细的例子和指南:https://kubevela.io/#/en/platform-engineers/trait

5. 那么 KubeVela 项目是一个 PaaS 吗?

<张磊>:大多数经典 PaaS 都能提供完整的应用生命周期管理功能,同时也非常关注提供简单友好的用户体验,提升研发效能。在这些点上,KubeVela 跟经典 PaaS 的目标,是非常一致的。

但另一方面,经典 PaaS 往往是不可扩展的(比如 Rancher 的 Rio 项目),或者会引入属于自己的插件生态(哪怕这个 PaaS 是完全基于 Kubernetes 构建的),以此来确保平台本身的用户体验和能力的可控制性(比如 Cloud Foundry 或者 Heroku 的插件中心)。

相比之下,KubeVela 的设计是完全不同的。KubeVela 的目标,从一开始就是利用整个 Kubernetes 社区作为自己的“插件中心”,并且“故意”把它的每一个内置能力都设计成是独立的、可插拔的插件。这种高度可扩展的模型,背后其实有着精密的设计与实现。比如,KubeVela 如何确保某个完全独立的 Trait 一定能够绑定于某种 Workload Type?如何检查这些相互独立的 Trait 是否冲突?这些挑战,正是 Open Application Model(OAM)作为 KubeVela 模型层的起到的关键作用,一言以蔽之:OAM 是一个高度可扩展的应用定义与能力管理模型。

KubeVela 和 OAM 社区欢迎大家设计和制作任何 Workload Type 和 Trait 的定义文件。只要把它们存放在 GitHub 上,全世界任何一个 KubeVela 用户就都可以在自己的 Appfile 里使用你所设计的能力。具体的方式,请参考 vela cap (即:插件能力管理命令)的使用文档。

6. 能否就云原生相关生态在国内的发展趋势发表一些您的观点和看法?

<张磊>:正如前面讲到的,不止国内,其实整个云原生生态在接下来的发展方向,可以说是“回归初心”。

云原生技术与理念发展至今,在基础设施抽象层已经取得了空前的成就。当然,这里的所有一切都是围绕着 Kubernetes 项目来进行的。但咱们也提到,光有基础设施抽象是远远不够的。咱们云原生的最终目标是给业务用户带来价值,用云原生与生俱来的弹性和敏捷,帮助业务用户更快、更好、更有信心的去开发与交付应用。而至于 Kubernetes 也好,容器也罢,都是实现这个目标的手段而不是目的。所以,云原生发展的方向一定会继续朝这个目标前进,比如为了进一步解决业务用户以语言无关的方式对流量与服务进行治理的诉求,就出现了 Service Mesh。而今天 OAM 与 KubeVela 项目的出现,则是在所有这些能力之上,回答“最后一公里”的问题:我们如何把这些能力高效、敏捷、通过”以应用为中心“的方式交付给业务用户?让他们真的能够像使用 Heroku 那样使用 Kubernetes 和 Istio?

这种“让业务研发专注于写代码”体验,说起来简单,宣传起来也很赞,但从云原生技术诞生到现在,在整个云原生生态的持续努力下,这件事情依然只解决了一小部分。而如今,KubeVela 项目的提出与发布,正是云原生生态继续推动这件事情向终态前进的一个缩影。希望 KubeVela 这样的项目,能够让构建简单易用又高可扩展的云原生应用平台从大厂专属的“阳春白雪”,变成“小菜一碟”,让越来越多的团队能够快速、高效、高质量的基于 Kubernetes 生态能力池构建出符合自己诉求的、各种各样的上层平台,让云原生技术能够真正落地到各行各业中开花结果。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发者,别让自己孤独

作者 | 溪洋来源|阿里巴巴云原生公众号 “社会之所以能够运作&#xff0c;并不是人类有意使然&#xff0c;而是因为它是进化过程中出现的人类秉性。确切地说&#xff0c;它就是人性的一部分。” _——《美德的起源》马特里德利_ 所谓“助人者自助”&#xff0c;或许协作、互助这…

智稳双全--AnalyticDB如何助力菜鸟运配双十一

#今年双十一快递有多快#、#双十一快递比外卖还快# 这些话题在今年双十一期间频繁出现在热搜榜上&#xff0c;“凌晨付款起床收货”成了今年双十一快递时效的新标签。作为天猫官方物流服务提供方&#xff0c;今年菜鸟联合14家快递公司为消费者提供了如任意门般的天猫双十一物流体…

AliExpress智能营销引擎大揭秘 - AnalyticDB如何做到快准狠省

业务介绍 AliExpress&#xff08;简称AE&#xff09;是从集团内wholesale孵化出来面向全球消费者的B2C电商平台&#xff0c;目前也是全球化电商业务的排头兵。当前AE为全球220个国家提供在线购物服务&#xff0c;支持3端&#xff08;PC、Msite和APP&#xff09;、18种语言&…

千万商家的智能决策引擎--AnalyticDB如何助力生意参谋双十一

作者&#xff1a;算法&健兮&#xff0c;阿里巴巴数据技术及产品部技术专家 生意参谋介绍 生意参谋是阿里官方打造的全渠道、全链路、一站式数据平台&#xff0c;致力于为用户提供经营分析、市场洞察、客群洞察等多样化数据服务&#xff0c;帮助用户全面提升商业决策效率。…

广播电视加速技术迭代,如何用新技术拥抱行业转型?

12月7日&#xff0c;国家广播电视总局印发了《广播电视技术迭代实施方案&#xff08;2020-2022年&#xff09;》。该文件指出&#xff0c;广电将利用3年左右时间&#xff0c;实现全行业未来大转型的&#xff0c;通过广播电视技术迭代&#xff0c;加快重塑广电媒体新生态&#x…

php有多少种占位符,php 占位符问题?

为什么我echo出来的东西就是一个%s&#xff1f;而不是我赋值的字符串?完整代码&#xff1a;IndexAction.class.php// 本类由系统自动生成&#xff0c;仅供测试用途class IndexAction extends Action {public function index(){$this->responseMsg();}public function respo…

我们为什么需要云原生?看完这一篇就够了

作者 | 侯淼淼出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;云原生这个词对于业内大多数人来说都不陌生&#xff0c;伴随着云计算的蓬勃发展&#xff0c;大有愈演愈烈之势&#xff0c;已经赫然成为企业数字化转型的重要基石。与此同时&#xff0c;无数的新兴词汇…

Serverless 如何落地?揭秘阿里核心业务大规模落地实现

简介&#xff1a; 2020 年&#xff0c;新冠肺炎疫情催化数字化生活方式渐成常态。在企业积极进行数字化转型、全面提升效率的今天&#xff0c;几乎无人否认背负“降本增效”使命诞生的 Serverless 即将成为云时代新的计算范式。 来源|阿里巴巴云原生公众号 2020 年&#xff0c…

linux使用ping命令ping本机,Linux下使用ping命令判断网络的好坏

简介在Linux系统里面如果想判断网络的好坏&#xff0c;脑海中蹦出的第一个命令就是ping了。ping命令基本是最常用的网络命令&#xff0c;它可以用来测试与目标主机的连通性。ping通过发送ICMP ECHO_REQUEST数据包到网络主机&#xff0c;并显示返回的相应情况&#xff0c;根据这…

分布式事务框架 seata-golang 通信模型详解

简介&#xff1a; Java 的世界里&#xff0c;大家广泛使用的一个高性能网络通信框架 netty&#xff0c;很多 RPC 框架都是基于 netty 来实现的。在 golang 的世界里&#xff0c;getty 也是一个类似 netty 的高性能网络通信库。getty 最初由 dubbogo 项目负责人于雨开发&#xf…

移动云TeaTalk(长沙站)| 聚焦“云网一体”发展新机遇

聚焦“云网一体”发展新机遇移动云TeaTalk&#xff08;长沙站&#xff09;云网一体&#xff0c;“湘”遇“湘”融 。7月23日&#xff0c; 移动云TeaTalk沙龙第四站在长沙成功举办。活动围绕中国移动“云网一体”理念&#xff0c;介绍云网产品体系规划以及各领域产品应用&#x…

宜泊科技加入阿里云原生合作伙伴计划,共建智慧停车新生态

简介&#xff1a; 在过去几年里&#xff0c;“云原生”的概念逐渐被广大的企业所熟知。云原生给企业带来了巨大的价值&#xff1a;一方面&#xff0c;统一的容器编排角度&#xff0c;给企业带来了更好的资源利用率和管理的效率&#xff1b;另一方面&#xff0c;云原生的技术实践…

红旗Linux网卡绑定,Linux bonding 之balance-alb 原理介绍及其实现

要求&#xff1a;首先要安装bonding driver 和 ifenslave。bonding driver 是实现网卡绑定的软件基础&#xff0c;它在很多系统中都作为模块而加载。ifenslave 是实现网卡绑定的一个实用工具。检查系统是否符合这两个要求&#xff1a;[rootnode1 bin]# lsmod | grep bondbondin…

大数据时代,如何用数据驱动精准营销

简介&#xff1a; 针对Yeahmobi在全球业务中需要统一治理数据资产和提供高并发、高弹性的存储服务需求&#xff0c;阿里云为Yeahmobi构建了一站式的数据湖解决方案。 Yeahmobi介绍 Yeahmobi是一家技术驱动发展的国际化智能营销服务公司&#xff0c;致力于为客户提供精准的全球…

百度获得国内首批无人驾驶乘用车高速公路道路测试资质

7月27日&#xff0c;第二十三届中国科协年会在北京拉开帷幕。在自动驾驶汽车产业落地与示范运营分论坛上&#xff0c;北京市高级别自动驾驶示范区推进工作组负责人孔磊介绍了《北京市高级别自动驾驶示范区建设阶段成果及2.0规划》&#xff0c;并向部分企业颁发了国内首批乘用车…

排查指南 | 关于 mPaaS-iOS 小程序打不开问题的解决方案

简介&#xff1a; 让天下没有打不开的小程序&#xff01;&#xff01;&#xff01; 在我们集成 mPaaS 插件并使用小程序的过程中&#xff0c;很多开发者遇到了打不开小程序的问题。今天就举例说明&#xff0c;开发者在完成基本接入后&#xff0c;尝试打开 H5 应用&#xff0c;但…

十万亿级OLAP引擎解读-AnalyticDB如何支撑数据银行超大规模低成本实时分析

简介&#xff1a; 数据银行是一款品牌消费者运营的商业数据产品&#xff0c;由于其核心分析能力需要在海量数据上实现任意维度自由分析和响应时间上的强需求&#xff0c;我们大规模使用AnalyticDB作为底层的分析引擎&#xff0c;最终以较低的成本&#xff0c;出色的性能&#x…

C-Power 自主无人海上电力系统有望通过高效能源传输及远程高带宽通信技术,开启新的海上应用

开发利用海浪能是一个快速发展的领域&#xff0c;海洋工程师正在改进技术&#xff0c;以提供可靠、经济高效的海洋能源发与存储&#xff0c;并实现全新的海上数据与通信服务。 哥伦比亚电力技术公司 (C-Power) 位于俄勒冈州科瓦利斯市&#xff0c;是波浪能系统的全球领先企业&…

OCP China Day 2021:开放计算十年,以全球协作打破创新边界

7月27日&#xff0c;由 OCP 社区主办、浪潮承办的第三届 OCP China Day 2021在北京举行&#xff0c;近千名IT工程师和数据中心从业者参会。开放计算正成为当前乃至未来数据中心的创新主力&#xff0c;通过全球化协作的创新模式&#xff0c;解决数据中心基础设施可持续发展的重大…

通信行业力推零信任标准,蔷薇灵动微隔离首批获证

7月27日至28日&#xff0c;以“数字裂变&#xff0c;可信发展”为主题的2021可信云大会在京拉开帷幕。大会邀请云计算行业专家学者、知名企业代表、行业大咖同台论道&#xff0c;围绕行业发展趋势、落地应用、新兴技术、企业数字化上云等热门议题展开观点碰撞&#xff0c;带来前…