KubeVela v1.2 发布:你要的图形化操作控制台 VelaUX 终于来了

简介:时间来到 2022 年,KubeVela 也正式进入了第四个阶段,在原先核心控制器 API 基本稳定的基础上,我们以插件的形式增加了一系列开箱即用的功能。让开发者可以通过 UI 控制台的方式,连接 CI/CD 完整流程,端到端发布多集群应用,进一步提升开发者体验。

作者:KubeVela 社区

随着云原生的不断发展和成熟,越来越多的基础设施能力逐渐标准化成为 PaaS 平台或者 SaaS 化产品。一个产品的诞生不再像过去那样需要建立一个团队,从开发、测试一直到运维、基础设施全部分多种角色系统完成。如今,敏捷组织文化和云原生技术驱动,使得这些职责更多的是“左移”到了开发者身上,测试左移、监控左移、安全左移,以及 DevOps 等一系列理念都是在强调,通过开源项目或者云的产品和服务将测试、监控、安全、运维等一系列事务提前到开发阶段完成。这看似美好的愿景却给开发者带来了巨大的挑战,开发者对底层五花八门的产品和复杂 API 缺乏掌控力,他们不仅仅是在做选择,更多的需要去理解和协调底层复杂异构的基础设施能力,以便满足上层业务的快速发展和迭代需求。

这种复杂性和不确定性无疑大大降低了开发者的体验,降低了业务系统的交付效率,增加了运维风险。开发者体验的核心是“简单”和“高效率”,不管是开发者还是企业都需要更好用的开发者工具或者平台来达成。在现代云原生技术之上打造一款帮助开发者从开发、交付以及后续持续运维的一体化平台,一直是 KubeVela 演进的核心目标。如图 1 所示,在 v1.2 版本中,我们围绕开发者体验新增了 UI 控制台组件(VelaUX),简化了编排 YAML 的复杂性,完善了插件体系建设,丰富了云资源的扩展能力,增加了大量 CI/CD 等生态对接的能力,进一步完善了开发者端到端的使用体验。

图 1:KubeVela 架构设计

发展历程回顾

让我们再来简单回顾一下 OAM 和 KubeVela 的发展阶段和历程:

  • OAM(Open Application Model)诞生和成长

在复杂的世界中要创造简单,首先我们需要解决的问题就是抽象和标准化。阿里云和微软联合推出 OAM 模型,创新性地提出“关注点分离”的理念,开发者关注业务本身、运维关注模块化能力。OAM 模型围绕“一切皆服务,全面模块化”的思想,为各大厂商和云原生的平台构建者们实现自己的应用管理平台提供了简单易用与高度可扩展相结合的标准实践方式。该模型提出后的短短一年内便得到了包括 AWS、Oracle、腾讯、华为在内的国内外各大厂商响应,被国家信通院立项作为行业标准。因为大家有共同的目标,降低云原生的使用门槛,让应用交付和管理更简单。

  • KubeVela 开源项目 v1.0 发布,为社区带来了 OAM 的标准实现

有了 OAM 模型作为实践指导,社区高级玩家也开始创造自己的工具来实践,包括阿里、微软、Oracle、Upbond、腾讯在内的一系列公司都基于 OAM 的指导构建了自己的业务平台。但对于更广大的开发者和中小型企业群体来说,他们却无法直接享受模型带来的红利,于是,KubeVela 作为 OAM 社区的官方实现引擎诞生了。它从一开始就由 7 家来自不同组织的 OAM 社区成员从零到一构建。KubeVela 的实现吸收了多家公司针对 OAM 的实践经验,同时结合 Kubernetes 社区生态优势,实现了自动化、可收敛、幂等且稳定的应用发布控制器,围绕 IaC(基础设施即配置)构造了用户友好的抽象层,帮助开发者实现了开箱基于的 OAM 实现引擎。

  • KubeVela v1.1 发布,实现应用交付工作流,原生支持混合环境多集群应用交付

随着企业上云进程的推进,混合云、分布式云等多元化基础设施逐渐成为常态。KubeVela 作为现代应用管理系统也顺应潮流,整体架构升级为面向混合环境做应用交付和管理的控制平面,将所有的功能天然构筑在多集群技术之上。我们相信,出于高可用、成本性能、数据安全等多方面因素,未来大多数企业应用的形态都将是异构多元的。KubeVela v1.1 版本的发布,同时也实现了高度可扩展的应用发布工作流,它天然以混合环境架构呈现,创新性的实现了交付工作流与应用抽象相结合的工作模式,实现了面向终态的应用交付工作流,大大简化了流程编排的复杂性。

时间来到 2022 年,KubeVela 也正式进入了第四个阶段,在原先核心控制器 API 基本稳定的基础上,我们以插件的形式增加了一系列开箱即用的功能。让开发者可以通过 UI 控制台的方式,连接 CI/CD 完整流程,端到端发布多集群应用,进一步提升开发者体验。

v1.2 版本的核心能力

图形化操作控制台(VelaUX)

提供好用的图形化操作界面是降低开发者使用门槛的首选途径,从 KubeVela 诞生以来,社区对 UI 控制台的呼声一直很高。从 v1.2 版本开始,它正式到来了。打造 UI 控制台的目的是帮助开发者以更标准化的方式组装和管理异构业务应用,帮助他们分析和更快的发现业务故障和阻碍。

VelaUX[1] 是 KubeVela 的前端项目,设计实现时它充分考虑了 KubeVela 的可扩展性这一核心要点。引入了低代码平台的理念来打造前端,我们的目标是打造一个可以通过拖拉拽方式就能做到自定义应用交付输入参数,并且实现运行数据可观测的平台。为此我们设计了前端描述规范(UISchema[2]),配合 KubeVela 的模块化定义(X-Definition[3]),通过配置就可以渲染出丰富的前端交互元素。同时为了让前端的数据查询也配置化,我们设计了多维数据自定义查询语言(VelaQL[4]),这样的设计形成了 KubeVela 交付和管理异构应用的基础。

目前通过 VelaUX ,用户可以管理扩展,连接 Kubernetes 集群,分配交付目标,规划环境和交付各类型应用,并观测应用运行状态,实现应用交付的完整闭环。

图 2:VelaUX 预览

如图 2 所示,VelaUX 中出现了一些新名词,请参考核心概念[5]文档进行学习和了解。

多环境统一化管理

KubeVela 将 N 个Kubernetes 集群,N 个云厂商服务或其他私有云服务统一为大的基础设施资源池。在此基础上,我们的开发者可以按照业务需求、流程需求、团队需求等多种业务维度划分环境。在大资源池的基础上形成环境空间。同一个应用可发布到不同的环境,环境之间从管理到运行态完全隔离。

图 3:多环境/多集群应用管理页面

如图 3 所示,应用可被发布到生产、测试、默认三个环境中,每一个环境可以包括多个交付目标,每一个交付目标背后可以是独立的 Kubernetes 集群。

异构应用标准化交付

在云原生体系中,我们交付应用的形式选择非常多。基于 Kubernetes 基础设施,我们既可以通过成熟的 Helm Chart 包交付中间件和第三方开源应用,也可以通过镜像交付企业业务应用,还可以通过 OpenYurt 交付管理边缘应用。基于云服务商的开放能力,我们可以交付数据库、消息、缓存等中间件,也有日志、应用监控等运维能力。

对于这么多的可选项,KubeVela 采用标准的 OAM 规范实现对异构应用的统一交付和管理。KubeVela 实现了高度可扩展的交付系统,通过内置、社区共享等形态帮助用户扩展平台,以一致化的交付和管理体验处理异构的应用。在 KubeVela 之上,开发者看到的都是模块化、一切皆服务的管理形态。

图 4:云服务应用管理页面

如图 4 所示,我们可以看到,相同的应用管理页面,用户可以非常便捷得获取到云服务应用。开发者可以通过阅读下面几篇文档查看异构应用的交付过程:

  1. 交付 Docker 镜像[6]
  2. 交付 Helm Chart 包[7]
  3. 交付 Kubernetes 资源[8]
  4. 交付 云服务[9]

扩展体系(Addon)

KubeVela 从一开始就是设计为一款微内核高可扩展的系统,上文我们说到异构应用,KubeVela 可以通过扩展体系,以标准化的形态,扩充无限的应用交付能力。既匹配企业差异性诉求,也不带来过多的认知负担。KubeVela 中可扩展的点包括了组件类型、运维能力、工作流类型、应用交付策略等。在当前版本中,我们发布了 Addon 扩展体系。Addon 是组织各种扩展能力的承载体,它便于分发和管理。

图 5:KubeVela 插件管理页面

目前在官方仓库中已经存在如图 5 所示的可用 Addon。同时在实验性仓库中我们正在联合社区用户积极创造更多的扩展能力。当然,这里需要每一个社区开发者的积极参与。

截止到现在,KubeVela 已经成长为一款可直接服务于广大开发者的应用交付平台,那么企业哪些场景可以直接利用 KubeVela 呢?我们整理了以下几个常见场景:

企业开发场景解决方案

多集群应用 DevOps

在过往社区的交流中,我们发现企业主流的研发体系都类似如图 6 所示的结构,他们使用云服务厂商提供的计算资源作为生产、演示环境。使用自己购买或历史遗留的服务器搭建开发、测试环境。如果业务有多区域或灾备需求,生产环境可能需要部署到多个区域或多云。

图 6:多集群应用实践架构

对于基础的 DevOps 流程,包括了代码托管和 CI/CD 的环节。KubeVela 目前为你提供 CD 环节的支持。对于企业实践的步骤如下:

  1. 根据实际情况准备本地或云服务资源。至少单项打通本地和云资源的网络,便于资源集中管理。
     
  2. 将 KubeVela 系统搭建在生产环境中,保障持续的可用性。
     
  3. 通过 KubeVela 部署 Gitlab、Jenkins、Sonar 等 DevOps 工具,并打通工具链。通常情况下,代码托管和开发工具的可用性至关重要,我们需要将其部署在生产环境中(如果你本地机房具备生产可用性,且希望代码数据在本地环境流转,可部署在本地机房)。
     
  4. 通过 KubeVela 规划本地开发环境,部署本地测试用中间件,规划生产环境和部署云服务中间件。
     
  5. 通过 Jenkins 搭建业务代码 CI 流水线,产出 Docker 镜像交由 KubeVela 进行多环境部署,形成完整应用交付工作流。

结合 KubeVela 的多集群应用 DevOps 方案有如下优势:

(1)开发者无需掌握过多的 Kubernetes 生态知识,可实现异构应用云原生部署。

(2)多集群,多环境统一管理,原生可部署跨集群应用。

(3)统一的应用管理模式,无论是业务应用还是开发工具链。

(4)灵活的工作流,帮助企业打通各种开发规范流程。

混合环境一体化管理

不同的企业往往都存在不一样的基础设施和业务诉求。在基础设施侧:企业可能搭建了私有云,可能购买了公有云,可能还有边缘计算资源。在业务侧:不同的业务规模不同,资源需求不同,可能有多云多活应用,也有企业遗留系统。在研发侧:业务研发往往需要开发、测试、预发和生产环境。在管理侧:不同的业务团队需要相互隔离,又可能需要业务互通。

随着时间的累积,企业由于职责边界和不同分工的影响,会逐渐形成不同业务团队相互独立甚至割裂的状态,这种割裂包括了:开发工具割裂,技术架构割裂,业务管理形态割裂。KubeVela 秉持着“尊重现实,积极创新”的原则,带来的方案是追求统一的过程中用高扩展的能力去兼容差异性。

  • 面对基础设施差异,我们支持以 Kubernetes API、云服务 API 或其他自定义 API 的形态,去对基础设施进行充分的模型化。最终通过统一的 OAM 模型向上暴露一致的概念。
  • 面对业务架构差异,应用模型是开放的,对架构无要求的。KubeVela 做的是连接和赋能,连接已有系统,通过扩展机制加持新的生态技术。
  • 面对开发工具链的差异,企业中可能已经存在不同的开发工具链,产出不同的业务制品。KubeVela 通过扩展和标准模型去支持各类制品,实现其标准化交付。当然,它的标准逐步衍生到前置环节,帮助企业逐步实现工具链一致化。因此,你不用担心你是用的 Gitlab 还是 Jenkins,它都能对接。
  • 面对运维能力差异,企业中不同团队的运维能力、工具方案可以在 KubeVela 的规范下逐步积累,能力互通。更多运维能力也同样在社区的维度进行共享和复用。

因此,使用 KubeVela 来作为企业打通业务,进行统一能力建设的基础平台,它是可落地、有未来的方案。

自定义企业发布平台

从 Heroku 、Cloud Foundry 时代开始,市场上一直在产生不同的 PaaS 平台,我们都知道固定模式的发布平台往往不适合所有的企业。举个例子,某些规范化程度较高的企业,他们基于业务的特性,发布应用时仅需更新镜像名称,然而使用通用 PaaS 就不得不去理解大量的概念和参数。再比如某个企业生产的是 AI 应用,对于 AI 应用的发布与普通应用有比较大的区别,这时就需要定制 AI 场景的 PaaS,企业不得不付更多的费用和学习更多的概念。

通用产品不符合企业需求时,自研是真实存在的诉求。但是对于从零开始自研平台,必然又需要投入大量的人力物力,甚至超过了企业核心业务的投入,这显得得不偿失。KubeVela 也考虑到了具备自研能力企业的独特诉求,他们可以基于 KubeVela 微内核、高可扩展的设计,针对自己的业务场景和领域知识,打造属于自己的、更为简单易用的业务平台。

对于需要自研发布平台的企业来说,KubeVela 的微内核是一个 PaaS 平台研发框架。一方面,企业可以根据自己的需求自研或者安装社区的各种功能插件;另一方面,企业也可以基于 OAM 模型修改模块化配置,新增或裁剪用户使用的参数。这种模块化的设计可以大大降低企业的投入成本,同时可以跟上社区的发展潮流,随时将社区更多的先进技术转化为自身的生产力。

参与社区

做了这么多的介绍,你是否对 KubeVela 的发展有了一些新的认识,没有哪个产品是绝对的银弹,也没有一个方案可以解决所有的问题。但是我们的理想是可以创造一个标准化模式,让更多的企业和开发者用户参与到这场为了“简单”和“高效”的开发者体验战役中来。KubeVela 还很年轻,我们希望你可以参与进来共同打造。这里非常感谢在过去参与 KubeVela 贡献的 100 多位开发者[10],正是因为你们的携手努力,才让我们的社区生态变得更加繁荣。

共建 OAM 应用规范

对于 OAM 应用规范,模型的更新和升级基于 KubeVela 实践驱动,但是它并不绑定 KubeVela 实现。它是 KubeVela 在云原生应用交付和管理层面实践经验的总结和抽象,是创造规范化应用管理体系的最佳实践和核心理念。我们非常欢迎云厂商、平台厂商、最终用户可以参与进来,同时我们也欣喜的看到国内包括腾讯在内的多家厂商对 OAM 应用规范的关注和支持。任何人、组织都可以发表你的想法、建议和思考。

参与 OAM 模型讨论:

https://github.com/oam-dev/spec

共建 Addon 扩展生态

如上文介绍的一样,我们已经开启了 Addon 的扩展体系,非常欢迎社区的创造者、开发者可以来贡献更多的扩展能力。

如何扩展和贡献 Addon 参考文档:

自定义插件 | KubeVela

贡献云服务能力

KubeVela 通过集成 Terraform Module 来扩展云服务集成能力,我们已经支持了常用的云资源[11] ,欢迎社区朋友参考并贡献更多的云服务厂商和产品。

如何扩展和贡献云资源 参考文档:

扩展云资源 | KubeVela

反馈你的需求或痛点

或许你是普通开发者,也或许你是云原生领域的从业者,如果你认可我们的方向,认可我们正在做的事情,我们非常欢迎你可以参与到 KubeVela 社区讨论中来。

社区讨论:

https://github.com/oam-dev/kubevela

KubeVela 网站加速访问

KubeVela 的官方文档托管在 GitHub (https://github.com/oam-dev/kubevela.io )上,如果你发现有任何错漏或者想要参与翻译,欢迎直接到项目中贡献。同时为了国内用户可以加速访问,我们增加了 kubevela.net 这个域名,可以方便国内用户更快的访问,内容与 kubevela.io 的域名完全一致、实时同步。

KubeVela 是 CNCF 沙箱项目,了解更多信息,请点击此处查阅官方文档。

相关链接

[1] VelaUX:

https://github.com/oam-dev/velaux

[2] UISchema:

UI-Schema | KubeVela

[3] X-Definition:

模块定义(X-Definition) | KubeVela

[4] VelaQL:

VelaQL | KubeVela

[5] 核心概念:

核心概念 | KubeVela

[6] 交付 Docker 镜像:

交付容器镜像 | KubeVela

[7] 交付 Helm Chart 包:

交付 Helm Chart | KubeVela

[8] 交付 Kubernetes 资源:

交付 Kubernetes 原生资源 | KubeVela

[9] 交付云服务:

交付云服务 | KubeVela

[10] 100 多位开发者:

https://github.com/oam-dev/kubevela/graphs/contributors

[11] 常用的云资源:

https://kubevela.io/zh/docs/end-user/components/cloud-services/provider-and-consume-cloud-services#支持的云资源列表

原文链接

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

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

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

相关文章

c语言水仙花数(输入判断),用c语言判断一个数是否为水仙花数?

你的C语言程序我帮你改完了,完整的程序如下(改动的地方见注释)#includeint narcissistic(int number){//这里n1改成n0并加product变量保存连乘积int a,b0,n0,c,number2,number3,product;number2number;number3number;while(number>0){//这里把number>10改成number>0nu…

云原生的 CICD 框架:Tekton

作者 | AddoZhang来源 | 云原生指北Tekton 是 Google 开源的 Kubernetes 原生CI/CD 系统,功能强大扩展性强。前身是 Knavite 里的 build-pipeline 项目,后期孵化成独立的项目。并成为 CDF 下的四个项目之一, 其他三个分别是 Jenkins, Jenkins X, Spinnak…

人人都是 Serverless 架构师 | “盲盒抽奖”创意营销活动实践

简介:当 Serverless 与低代码这两个不同的技术共同相交于同一个业务时会有怎样的价值展现?本文以 “盲盒抽奖” 这个 Serverless Devs 做过的创意营销活动为例,为大家讲述 Serverless 和低代码是如何搭配来满足一个业务诉求的。 作者 | 寒斜 …

这样才是代码管理和 Commit 的正确姿势 | 研发效能提升36计

简介:效能提升从小习惯开始,这样才是代码管理和 Commit 的正确姿势! 专栏策划|雅纯 志愿编辑|张晟 软件交付是以代码为中心的交付过程,其中代码的作用有几点:第一,最终的制品要交付…

vSphere+、vSAN+来了!VMware 混合云聚焦:原生、快速迁移、混合负载

编辑 | 宋慧 出品 | CSDN云计算 vSphere、vSAN,从云计算兴起,就是 VMware 在虚拟化、分布式存储里大名鼎鼎的核心技术产品。不过随着云的发展到云原生、以及国内混合云快速发展的今天,虚拟化的领导者 VMware 有哪些最新的方案,值…

技术解读:实时数仓Hologres如何支持超大规模部署与运维

简介:在本次评测中,Hologres是目前通过中国信通院大数据产品分布式分析型数据库大规模性能评测的规模最大的MPP数据仓库产品。通过该评测,证明了阿里云实时数仓Hologres能够作为数据仓库和大数据平台的基础设施,可以满足用户建设大…

成功通航:用宜搭提升数字化管理效能,确保每次飞行任务安全执行

简介:宜搭帮助山西成功通航节省了100万左右的成本,同时使管理运营效率提升了76%。 山西成功通用航空股份有限公司 50-100人 / 航空运输 / 山西-长治 / 成功通航综合管理平台 “通用航空迎来发展机遇,随着通航行业‘放管服’政策的不断推进…

用键盘输入一条命令

作者 | 闪客来源 | 低并发编程新建一个非常简单的 info.txt 文件。name:flash age:28 language:java在命令行输入一条十分简单的命令。[rootlinux0.11] cat info.txt | wc -l 3这条命令的意思是读取刚刚的 info.txt 文件,输出它的行数。我们先从最初始的状态开始说起…

Redis 7.0 Multi Part AOF的设计和实现

简介:本文将详解Redis中现有AOF机制的一些不足以及Redis 7.0中引入的Multi Part AOF的设计和实现细节。 Redis 作为一种非常流行的内存数据库,通过将数据保存在内存中,Redis 得以拥有极高的读写性能。但是一旦进程退出,Redis 的数…

面向B端算法实时业务支撑的工程实践

简介:在营销场景下,算法同学会对广告主提供个性化的营销工具,帮助广告主更好的精细化营销,在可控成本内实现更好的ROI提升。我们在这一段时间支持了多个实时业务场景,比如出价策略的实时化预估、关键词批量服务同步、实…

中间表是如何被消灭的?

作者 | 不吃西红柿来源 | CSDN博客中间表的产生中间表是数据库中专门存放中间计算结果的数据表,往往是为了前端查询统计更快或更方便而在数据库中建立的汇总表,由于是由原始数据加工而成的中间结果,因此被称为中间表。在某些大型机构中&#…

自定义控件android.r,Android控件架构与自定义控件

前言最近在开发的路上越走越远了,每天在看各位大神公众号更新内容是自定义View的时候,一些小的内容有点模具,决定回过头来温习一下过往的内容。此篇也是根据android群英传来总结的一篇文章。1 Android控件架构Android的每个控件都是占一块矩形…

基于 PTS 压测轻松玩转问题诊断

简介:性能测试 PTS(Performance Testing Service)是具备强大的分布式压测能力的 SaaS 压测平台,可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。 作者:智云 为什么要做压测的问题…

阿里云开源业内首个应用多活项目 AppActive,与社区共建云原生容灾标准

简介:继高可用架构团队的 Sentinel、Chaosblade 开源后,第三个重磅高可用产品:应用多活 AppActive 正式开源,形成高可用的三架马车,帮助企业构建稳定可靠的企业级生产系统,提高企业面对容灾、容错、容量等问…

清晰还原31年前现场,火山引擎超清修复Beyond经典演唱会

7月3日晚,抖音携手环球音乐旗下厂牌宝丽金,直播经过火山引擎超清修复的Beyond Live1991生命接触演唱会及纪念音乐会精选内容,吸引了超1.4亿人次观看。 Beyond是一支成立于1983年的摇滚乐队,随着粤语音乐的兴起,Beyond…

如何定位并修复 HttpCore5 中的 HTTP2 流量控制问题

简介:开篇吹一波阿里云性能测试服务 PTS,PTS 在 2021 年 5 月份已经上线了对 HTTP2 协议的支持(底层依赖 httpclient5),在压测时会通过与服务端协商的结果来决定使用 HTTP1.1 或者 HTTP2 协议。 作者:风起…

全链路灰度之 RocketMQ 灰度

简介:本文将以上次介绍过的《如何用 20 分钟就能获得同款企业级全链路灰度能力?》中的场景为基础,来进一步介绍消息场景的全链路灰度。 作者:亦盏 之前的系列文章中,我们已经通过全链路金丝雀发布这个功能来介绍了 M…

普洛斯数据中心发布DC Brain系统,科技赋能智慧化运营管理

7月5日,普洛斯数据中心发布了DC Brain智慧化运营管理系统。该系统由普洛斯历时两年自主研发,契合现代化数据中心平台的发展趋势。目前已应用于普洛斯旗下数据中心,并有对外输出的成功案例,面向行业,赋能中小规模运营商…

mi6 android版本,小米6:我依旧是王,MIUI10.4.2稳定版与AndroidP同时到来

原标题:小米6:我依旧是王,MIUI10.4.2稳定版与AndroidP同时到来小米6作为小米数字系列最受欢迎的机型之一,从上市到下架热度一直未减,它也是众多米粉心目中小米数字系列最成功的机型没有之一。但是,再怎么讲…

如何利用 AHAS 保障 Web 服务稳如磐石?

简介:应用高可用服务 AHAS (Application High Availability Service) 是经阿里巴巴内部多年高可用体系沉淀下来的云产品,基于阿里开源流控降级组件 Sentinel,以流量与容错为切入点,从流量控制、不稳定调用隔离、熔断降级、热点流量…