×
Community Blog Simplify Cloud Application Delivery as KubeVela Becomes a CNCF Sandbox Project

Simplify Cloud Application Delivery as KubeVela Becomes a CNCF Sandbox Project

This article explains how KubeVela can make cloud application delivery easier.

By KubeVela Community

On June 22, 2021, KubeVela was voted and passed at the TOC meeting of the Cloud Native Computing Foundation (CNCF) and became the official sandbox project of CNCF. In the future, KubeVela, which is transparent, open, open-source, and neutral, will continue to strive to create a unified, standard, and cross-cloud application management and delivery experience.

"KubeVela is such a user-oriented upper platform project. Besides, KubeVela is a simple and easy-to-use tool that allows business developers to define and deploy applications on Kubernetes with a low mental burden and cost. More importantly, KubeVela is not a simple PaaS or a Serverless platform. It is a PaaS kernel that can be expanded freely in the native Kubernetes manner that platform engineers can build any vertical business system based on it," said Zhang Lei, a CNCF TOC member.

KubeVela Project Address

Project Introduction

Cloud-native technologies are using Kubernetes as their common abstraction layer and moving towards consistent application delivery across the cloud. Kubernetes performs well in the detailed abstraction of the underlying infrastructure, but it brings additional complexity. Different types of PaaS platforms based on Kubernetes are established and interconnected. Therefore, the platform team that serves for application development does not have a proper framework to build user-friendly and highly scalable abstractions. Meanwhile, application delivery is becoming fragmented in increasingly complex business scenarios, such as hybrid cloud, multiple clouds, and distributed cloud.

KubeVela, an application delivery engine developed with Go, can help us overcome all the challenges above. As an Open Application Model (OAM) implementation in Kubernetes, the KubeVela project has developed rapidly since oam-kubernetes-runtime. It has ranked first in the Go language trend on GitHub continuously, been featured at the top of the HackerNews homepage, and harvested end users from different industries worldwide quickly, including MasterCard, Springer Nature, 4Paradigm, SILOT, and Upbound. Various commercial products are built on it, such as Oracle Cloud and Napptive. At the end of March 2021, the KubeVela community announced the release of version 1.0 with all stable APIs, moving towards production availability at the enterprise level.

1
KubeVela Technical Architecture Diagram

Core Ideas

As a framework for platform developers, KubeVela reduces the cost of building a developer-centric platform by executing the following operations:

  • Perform Developer-Centric Operation: KubeVela abstracts infrastructure-level primitives by introducing the concept of the application, thus capturing the complete deployment of microservices. Then, it builds operational functions according to the requirements of applications.
  • Perform Local Extension: An application consists of modular building blocks that support CUELang [1] and Helm [2] as template engines. This enables you to abstract Kubernetes features in a Lego-style and publishes them to end-users through a simple Kubernetes apply -f. Changes to the abstract template take effect at runtime without recompiling or redeploying the KubeVela.
  • Perform a Simple and Reliable Abstraction Mechanism: Unlike most Infrastructure as Code (IaC) solutions, abstractions in KubeVela are built by Kubernetes Control Loop [3], so they never leave configuration drift in the cluster. As custom resources [4] of Kubernetes, KubeVela can work seamlessly with any CI/CD or GitOps tools without the need for integration.

With KubeVela, platform builders finally have tool support to design easy-to-use abstractions and deliver them to end-users with high confidence and low turnaround times.

For end-users like application developers, this abstraction with KubeVela will enable them to design and publish applications to Kubernetes with minimal effort. All they have to do is define a simple application that can be integrated easily with any CI/CD without managing some infrastructure details.

Furthermore, many current typical application scenarios of KubeVela include:

  1. Cloud-based hosting of SaaS software
  2. Application PaaS for hybrid cloud or distributed cloud
  3. DevOps platforms in hybrid environments, including multi-cluster and multi-environment CD/CD

Prospects

KubeVela uses the following roadmap to meet the faster, more changeable, and more complex application delivery requirements in the cloud-native environment:

  • Currently, Component access requires a CUE for docking conversion. In the next step, we plan to provide better support for the existing system, which includes the direct integration of the Helm Chart, Kustomize directory, and Terraform modules into the Component. Let’s take Helm Chart as an example. Its values.schema.json will be docked as properties, and the output resources are equivalent to the rendered result of the helm template.
  • An environment initializer is added to provide a public deployment environment for development teams, such as clusters, system operators, CRDs, and public services, including load balancers, VPC, and DB.
  • Workflow capabilities for the application release process are added, allowing users to define process-oriented O&M commands. All built-in operations will also be transformed in the direction of Workflow, including apply resources, grayscale upgrade, traffic management, and multiple clusters. It also provides new functions, such as configuration differentiation and data transmission. In addition, the overall design of Workflow capabilities is pluggable so users can add or replace their capabilities, such as grayscale release.
  • Vela provides the standalone mode for system deployment. You can run a project in a single container or VM without using Kubernetes as the runtime base, adapting to complex management and deployment environments.
  • On the part of the user experience, the velacp project will remove the MongoDB dependency and use CRD instead for storage directly. Add more vertical scenarios to realize one-click end-to-end delivery capabilities and produce scenario-based solutions like App Profile that can be shared and reused.
  • Perform better integration with CICD systems, including GitHub Actions and Jenkins, allowing users to publish applications through Git push.

On May 26, 2021, the Cloud Computing Open Application Architecture standard document, initiated jointly by more than ten units, including Alibaba Cloud Computing Co., Ltd. and the China Academy of Information and Communications Technology, was released at the Cloud Native Industry Conference. This architecture is based on the Open Application Model (OAM), initiated jointly by Alibaba Cloud and Microsoft Cloud. It aims to provide cloud application managers with unified application description specifications and open application capabilities. By doing so, the framework can promote the large-scale implementation of simple, efficient, and controllable cloud-native application management and delivery methods in more industries and enterprises.

We can see that OAM, the KubeVela API specification, is gathering industry consensus. The KubeVela community has also been recognized by achieving more than 22,000 stars on GitHub, attracting over three maintainers and over 85 contributors to build together. Besides, many other users, such as SheIn, Deepexi, HarmonyCloud, and ForChange, began to use KubeVela in the production environment.

We welcome all developers interested in application delivery to join us! Please visit the official KubeVela website and join the community group to learn how to use KubeVela. If you are already using KubeVela, you are welcome to register the issue in the community cases and leave your information to let the community know your demands.

As always, KubeVela will work with the community to make cloud application delivery easier!

References

[1] CUELang
https://github.com/cuelang/cue

[2] Helm
https://helm.sh/

[3] Kubernetes Control Loop
https://kubernetes.io/docs/concepts/architecture/controller/

[4] Kubernetes Custom Resources
https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/

0 0 0
Share on

Alibaba Developer

223 posts | 35 followers

You may also like

Comments

Alibaba Developer

223 posts | 35 followers

Related Products