# 我们可以用 KubeVela 做什么 ## 什么是 KubeVela ? KubeVela 是一个基于 Kubernetes 的应用交付和管理平台。它实现了 Kubernetes 在应用层面的能力抽象,并提供了跨云多集群环境的应用持续交付的能力。 KubeVela 以应用为核心向用户提供可编程的交付工作流程,其主要组件(概念)如下:(参考 [KubeVela core-concept](https://kubevela.io/docs/next/getting-started/core-concept)) - **组件(Component)**: 组件定义一个应用包含的待交付制品(二进制、Docker 镜像、Helm Chart...)或云服务。我们认为一个应用部署计划部署的是一个微服务单元,里面主要包含一个核心的用于频繁迭代的服务,以及一组服务所依赖的中间件集合(包含数据库、缓存、云服务等),一个应用中包含的组件数量应该控制在约 15 个以内。 - **运维特征(Trait)**: 运维特征是可以随时绑定给待部署组件的、模块化、可拔插的运维能力,比如:副本数调整(手动、自动)、数据持久化、 设置网关策略、自动设置 DNS 解析等。 - **应用策略(Policy)**: 应用策略负责定义指定应用交付过程中的策略,比如多集群部署的差异化配置、资源放置策略、安全组策略、防火墙规则、SLO 目标等。 - **工作流步骤(Workflow Step)**: 工作流由多个步骤组成,允许用户自定义应用在某个环境的交付过程。典型的工作流步骤包括人工审核、数据传递、多集群发布、通知等。 你可以通过 KubeVela 提供的 [Quick Start](https://kubevela.io/docs/next/quick-start) 部署你的第一个应用。 ## OpenFunction 与 KubeVela KubeVela 可以帮助 OpenFunction 提升以下几方面的能力: - 进一步优化 ofn 的部署方式 - 将 ofn operator 以 addon 形式注册到 vela 的 addon registry 中 - 可以通过 addon 的形式管理 ofn 的依赖组件(当前 vela 官方已有 dapr addon),实现更友好的 enable\disable 控制 - 可以增强在多集群、多环境中的部署能力,减少用户的适配成本 - 提供面向用户的应用级资源管理接口 - 将 `Function`、`Builder`、`Serving` 等资源添加到 Component 中,使得用户可以在自己的 OAM Applications 中便捷使用 - 提供相关 Trait、Policy 资源的支持,以适应复杂环境中的工作负载变化 ## 设想的使用案例 假设我们向新用户推广 OpenFunction 作为企业内部 Serverless 平台解决方案,实施的步骤大体如下: 1. 部署 KubeVela 并准备以下 addon: - FluxCD - Cert Manager - 依赖组件 addon(即我们需要提供的 addon) - OpenFunction Operator(即我们需要提供的 addon) 2. 用 Cert Manager 插件在组件中部署 Cert Manager 3. 用依赖组件 addon 完成依赖组件的部署 4. 用 OpenFunction Operator addon 在组件中部署 OpenFunction Operator 5. 支持在 OAM Applications 定义中使用 `Function`、`Builder`、`Serving` 类型的 Component,以完成特定的 Serverless 平台(应用)建设 6. 在工作流中完成基础资源的准备(如 ConfigMap、Secrets、Ingress 等) 7. 暂停部署步骤,执行一个简单的函数演示,等待用户验证 8. 待用户验证后,手动恢复部署步骤 9. 随后在正式环境中完成整体平台(应用)的建设(过程中会根据 Policy 完成运维特征属性的变更) ## Addon 略 ## 总结 通过 KubeVela,我们可以向用户弱化 OpenFunction 的底层实现和依赖组件运维,让他们专注于 OpenFunction 的 Serverless 特性。同时,这种方法增强了 OpenFunction 的产品维度,有利于其独立交付。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up