深入解读:KubeVela 与 PaaS 有何不同?
备注:本文所提到的 PaaS,既包括 Heroku 这样的经典 PaaS 产品,也包括各种各样的基于 Kubernetes 的“云原生” PaaS。它们虽然底层实现不同,但是对用户提供的使用接口和体验是相似的。但 OpenShift 是一个例外,作为一个比 Kubernetes 本身还复杂的项目,OpenShift 不属于本文所讨论的简单易用、面向用户的 PaaS 之列,而是一个地道的 Kubernetes 发行版。
为什么说 KubeVela 不是 PaaS?
能否帮助我运行一个 定时任务? 能不能帮我运行一个 OpenKruise 的 CloneSet 工作负载? 能不能帮我运行一个 MySQL Operator? 能不能根据我的自定义 metrics 来做水平扩容? 能不能基于 Flagger 和 Istio来帮我做渐进式灰度发布? 能不能 ……
而且,大家设计和制作任何 Workload Type 和 Trait 的定义文件,只要存放在 GitHub 上,全世界任何一个 KubeVela 用户就都可以在自己的 Appfile 里使用这些能力。具体的方式,请参考 $ vela cap (即:插件能力管理命令)的使用文档。
应用平台本身架构彻底模块化,其所有的能力都是可插拔的,而平台核心框架通过模型层提供标准化的能力封装与装配流程。 该流程能够无缝接入云原生生态中的任何应用管理能力,使得平台工程师完全专注于能力本身的研发和基于该模型的能力封装过程,使平台团队在为用户带来简单易用的平台层抽象的同时,快速、敏捷地响应用户千变万化的应用管理诉求。
KubeVela 整体架构与能力可插拔机制
Step 1:将平台能力注册为 OAM 对象
如何定义能力之间的冲突关系与协作关系? 如何快速的定义 CUE 模板文件? 如何基于 CUE 语言定义出功能强大的“能力模块”,然后把这些模块安装到 KubeVela 中? 等等 ……
总结
作者简介
邓洪超 阿里云高级技术专家, 人称 “Kubernetes Operator 第二人”,OAM 与 KubeVela 项目核心维护者。
评论