Architecture
KubeVela orchestrates application components, cloud resources and pipeline over multiple clusters and hybrid environments. It is designed to be an application delivery and operation control plane instead of a runtime plugin.
In implementation, KubeVela relies on a dedicated Kubernetes cluster to achieve above goals. We chose to rely on Kubernetes as the control plane implementation because this approach is battle tested and brings determinism, convergence and automation to application management at scale. In detail, KubeVela is composed by several parts:
- KubeVela Core Controller that provides the core control logic of the entire system. For example, handling KubeVela API resources, orchestrating workflow, storing revisions, parsing and executing CUE code, garbage collecting, etc.
- Addons that register and manage definitions along with extended CRD controllers that KubeVela needed to work. For example, Flux and Terraform addons. The UI console called “App Delivery Platform” in the architecture is also one of the addon.
This control plane Kubernetes cluster will be referenced as the “control plane cluster” in the following documentation.
In real world, application deployment tends to be complex and varies from teams, environments and scenarios. Hence, KubeVela introduced the which is a fully programmable approach to implement its deployment model so it can adapt to every need of your application delivery use case in-place.
- Platform builders for PaaS, Serverless, Application Management/Delivery systems
- KubeVela works as an application delivery engine that you could build your advanced platform with.
- ISV, SaaS owners, and Application Architects who need to distribute software to anywhere
- Application Developers, Operators, DevOps Engineers
- VelaUX is an addon of KubeVela, with this addon enabled, it provides an out-of-box modern application Continuous Delivery (CD) and Management platform with an easy-to-use UI console.
- OAM(Open Application Model) is the model behind KubeVela, it provides a platform-agnostic application model including the best practices and methodology for different vendors to follow. The evolution of the model depends primarily on the practices of KubeVela currently.
- KubeVela is the control plane running on Kubernetes, it works as a and brings OAM model into your Cloud Native PaaS along with lots of addon capabilities.
- VelaUX is the app delivery platform, it’s also one of the KubeVela addons, which provides out-of-box application delivery and management capabilities with restful API and UI console.
The KubeVela team will mainly focus on the control plane. By building VelaUX, we aim to provide out-of-box solutions for small and medium sized companies, and also eat our own dog food and make the extension, integration and the addon system capabilities of KubeVela better.