kubevela.github.io/docs/getting-started/separate-of-concern.md

34 lines
2.0 KiB
Markdown

---
title: Separation of Concerns
---
KubeVela designs for separation of concerns, as a result, there're two roles of users:
- **Platform Team**
- The platform engineers initialize the deployment environments, provide stable infrastructure capabilities (e.g. mysql-operator) and register them as reusable templates using [KubeVela Definitions](./definition) into the control plane. They should be experienced and skillful with the infrastructure.
- **End Users**
- The end users are usually app developers. They choose target environment, and choose capability templates, fill in values and finally assemble them as a [KubeVela Application](./core-concept). They don't need to understand the infrastructure details.
The KubeVela community has also maintained a bundle of infrastructure capabilities, they are called [addons](../reference/addons/overview).
The work flow is shown as below:
![alt](../resources/how-it-works.jpg)
## What's benefit?
The separation of concern benefit the end users most. They can enjoy the "Application-Centric" experience without learning any infrastructure details. To make it more concrete, they can be free from the following scenarios:
- No need to learn Kubernetes API deprecations from versions upgrade.
- No need to care about the difference between several ingress implementations.
- No need to understand the CPU limit or even deeper infrastructure knowledge such as pod disruption budget.
- Declare high availability or other operation requirements as application traits.
- Use the capability with more confidence as they're enforced with best practices provided by platform teams.
As to platform teams, the benefits are also obvious:
- They can provide reusable capabilities, enforce best practices and make application delivery safer.
- They can provide flexible template parameters to serve different application teams with the same platform per their needs.
- They can share and integrate capabilities with the whole open source community easily in a standard way.