Great news! KubeVela has been accepted as a CNCF incubation project, which means our favorite application delivery platform (it was already included in our Top 10 Kubernetes resources list) is more popular than ever. But what exactly is KubeVela?
What is KubeVela?
KubeVela is an open-source CNCF project that simplifies application delivery in Kubernetes environments providing support for multi-tenancy, multi-cluster, and multi-cloud scenarios.
Kubernetes’ versatility, as any cloud software engineer will tell you, comes with a price. Managing low-level entities such as Services, Deployments, Pods, etc., requires a global understanding of the entities, their relationships, and their overall impact on the cluster and the deployed applications. To address this issue, the Open Application Model specification was born aimed to provide a simpler method to describe today’s cloud-native applications.
By abstracting away the low-level details and introducing a first-level Application entity in Kubernetes, we can simplify how we deploy, manage and operate enterprise applications in Kubernetes. KubeVela provides an Open Application Model runtime for Kubernetes introducing new high-level entities such as Applications, Componentes, Traits, and Policies among others in Kubernetes. This abstracts away complicated Kubernetes artifacts from developers, and at the same time, provides a framework for platform builders to create user-friendly and extensive platforms with development teams in mind. For more information on this topic, check the OAM spec.
KubeVela is designed to work as a Control Plane System to enable simple yet robust app delivery across hybrid, multi-cloud environments. Its main features are:
- It is extensible: KubeVela abstraction layers allow you to easily extend the Open Application Model to tailor the application building blocks to your specific use case. Moreover, a collection of add-ons is available to easily integrate with existing tools in the Kubernetes ecosystem such as Prometheus, Grafana, ArgoCD, etc.
- It is app-centric. KubeVela doesn’t lose focus on what’s important, and thus there is a whole ecosystem around the apps with extra capabilities to enhance their delivery and management.
- It is infrastructure agnostic. The OAM specification makes applications provider agnostic so you will not need to write a specific version of the application depending on the target Kubernetes distribution. The implementation of the different traits, components, policies, and workflows is responsible for adapting the Kubernetes entities to the underlying provider if required.
KubeVela’s potent infrastructure is also able to connect with many Continuous Integration and Development (CI/CD) tools, like Jenkins, GitLab CI, or CircleCI: you can reuse the CI process you already adopted, and KubeVela will take over the CD process by empowering it with modern application delivery best practices.
How does KubeVela work?
Separation of concerns
One of the keys to KubeVela’s success is its design accommodating different user roles involved in the development process including developers and the platform team. The platform team is able to create new capabilities in the form of custom components, traits, policies, and/or workflow definitions. This combined with existing addons that enable the integration with other Kubernetes tools enables the creation of custom systems tailored to the specific needs of the team. Developers can then focus on using all the available components to simplify their day-to-day operations.
This separation helps the Dev Team follow an application-centric approach in a cloud environment without the need to dedicate a chunk of their working time to learning Kubernetes.
It also makes things easier for the Platform Team. We’ve already talked about platform engineering and the importance of making your dev team’s life easier with an internal development platform, and KubeVela can be a very valuable asset in this area since platform engineers can provide reusable capability templates and enforce best practices (by creating golden paths where the right thing to do is also the easiest).
KubeVela’s adaptability is supported by 4 main pillars:
- Deployment as Code, with the deployment workflow powered by OAM. Devs can declare their deployment plan as a workflow and run it automatically, and after that, they can extend or modify it as they see fit.
- Built-in security, compliance, and observability building blocks. There is a wide range of integrations already available, that developers can use as-is or customize for their specific needs.
- Native support of multi-cloud/hybrid-environments app delivery, taking into account realistic scenarios.
- Lightweight but highly extensible architecture, that can be tailored to each specific organization by adding and orchestrating many different infrastructure capabilities.
KubeVela not only supports the dev team until deployment but also after that. There are specific capabilities for application management after deployment, such as:
- Resource management: The developer establishes the desired application state in the application as well as the workflow required to achieve it. The KubeVela core monitors the state of the application and it is able to reconcile the associated Kubernetes entities when the current and desired state drifts. Also, the garbage collector recycles resources that are no longer necessary.
- Version control, to provide a fast recovery in case of a faulty new version.
- Observability. The Vela CLI provides in-time status info for the application at a fine-grain or aggregated level, and the VelaUX addon is the Web UI version.
Napptive enables developer self-service. We encourage you to try our playground and experience accelerated cloud-native development. It’s completely free, all you need to do is simply sign up and get started!
Napptive & KubeVela: a match made in the cloud
Putting the focus on the Applications is something that also defines Napptive since its conception. The only way of taming Kubernetes’ wild potential is to create a tool that lets you ease into it, a safety net that allows you to fail without catastrophic consequences.
The Napptive Playground uses KubeVela as the OAM runtime for Kubernetes deployments. One of the features that differentiate Napptive from other KubeVela adopters is the fact that our Playground provides an environment abstraction with multi-tenant guarantees, which means that the user can easily create different isolated environments to work in, and it also offers unparalleled transparency for its configuration, thanks to a higher abstraction level that does not involve any Kubernetes knowledge.
In the Playground, KubeVela manages the low-level application lifecycle, creating the appropriate Kubernetes entities after the application is deployed. The multi-tenant adaptation in Napptive is integrated with Kubernetes RBAC and offers a native user management layer, which allows KubeVela to capture the user identity of those who deploy an OAM application and ensure that each user can only access their allowed resources. Daniel Higuero, Napptive’s CTO, explains this process more in this article in KubeVela’s blog.
From passive members of the community to active contributors, especially in the field of the multitenant, RBAC compliance installation of KubeVela, Napptive’s love story with KubeVela has evolved over time. The Napptive Playground is the perfect entry to the Open Application Model paradigm, since there is no need to modify or expand your current infrastructure, and KubeVela fits perfectly in it. We’re also very excited about the new functionalities of KubeVela, like multi-cluster support, and already working on how we could adopt them. We don’t know what the future will bring, but it looks promising, and we’re thrilled to find out.
In case you have not yet tried Napptive, we encourage you to sign up for free and discover how we are helping propel the development of cloud-native apps.