Brief introduction:Kubevela is one such upper-level, user-oriented project. For business developers, Kubevela is simple and easy to use. It allows developers to define and deploy applications on Kubernetes at a very low mental burden and starting cost… But more importantly, to the platform team, Kubevela is not a simple PaaS or Serverless, it is a PaaS kernel that can be arbitrarily extended in the native Kubernetes way, and platform engineers can build any vertical business system on it.

Author: Kubevela Community

On June 22, 2021, Kubevela became an official CNCF sandbox project after a vote at the TOC of the Cloud Native Computing Foundation (CNCF). Kubevela is transparent, open, open source neutral and will continue to focus on creating a unified, standard, cross-cloud application management and delivery experience.

“Kubevela is such an upper platform project for users. For business developers, Kubevela is simple and easy to use. It allows developers to define and deploy applications on Kubernetes at a very low mental burden and starting cost… But more importantly, to the platform team, Kubevela is not just a PaaS or Serverless, it is a PaaS kernel that can be extended in a native Kubernetes manner and platform engineers can build any vertical business system on top of it.”

— Zhang Lei, CNCF TOC Member

Kubevela project address: \_https://github.com/oam-dev/kubevela

\ _

Project introduction

Cloud native technologies are moving toward consistent application delivery across the cloud, using Kubernetes as a common abstraction layer. Kubernetes, while excellent at abstracting the details of the underlying infrastructure, introduces additional complexity. The proliferation of Kubernetes-based PaaS has left the platform team serving application development without a proper framework to build user-friendly and highly extensible abstractions. At the same time, application delivery is becoming increasingly fragmented in increasingly complex business scenarios such as hybrid cloud, multi-cloud, and distributed cloud.

Kubevela, an application delivery engine developed in the Go language, helps us overcome all of these challenges. As the implementation of OAM (Open Application Model) on Kubernetes, Kubevela project has been evolving since OAM – Kubernetes-Runtime, with a very rapid development momentum. Not only has it been on the top of GitHub Go language trends and on the front page of HackerNews, but it has also quickly gained end-users from different industries and from all over the world, including MasterCard, Springer Nature, Fourth Paraherm, Silot, Upbound, etc. There are even commercial products built on it, like Oracle Cloud and Napptive. At the end of March 2021, the Kubevela community announced the release of V1.0 with all stable versions of the API, officially beginning the march toward enterprise-level production availability.

Kubevela technology architecture diagram

The core idea

For platform developers, Kubevela serves as a framework to ease the hassle of building a developer-centric platform by:

  • Dever-centric. Kubevela abstracts infrastructure-level primitives by introducing the concept of Application to capture the full deployment of micro-services and then build operational capabilities based on the requirements of the Application.
  • Local extensions. Application consists of modular building blocks that support Cuelang [1] and Helm [2] as template engines. This allows you to abstract the functions of Kubernetes in a Lego style and publish them to end users through simple Kubectl Apply-f. Changes made to the abstract template will take effect at run time without the need to recompile or redeploy Kubevela.
  • Simple and reliable abstraction mechanism. Unlike most IAC (infrastructure as code) solutions, the abstractions in Kubevela are built with Kubernetes Control Loop [3], so they never leave a configuration drift in the cluster. As a Kubernetes custom resource [4], Kubevela can work seamlessly with any CI/CD or Gitops tool, with no integration effort required.

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 time.

For end users (such as application developers), this abstraction built in 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 easily integrated with any CI/CD, Without having to manage some of the infrastructure details.

Further, there are many typical application scenarios for Kubevela, such as:

  1. Sass software cloud hosting
  2. Application PaaS for hybrid/distributed clouds
  3. DevOps platform for mixed environment, including multi-cluster/multi-environment CD/CD, etc

future

In order to better meet the business requirements of faster, more variable and more complex application delivery in cloud native, Kubevela will follow the following Roadmap for further evolution:

  • At present, Component access needs to realize docking conversion through CUE. Next, we plan to better support the existing system — including existing Helm Chart, Kustomize directory, and TerraForm Module that can be directly connected to Component. In the case of Helm Chart, its values.schema.json will be doctored into properties, and the output resources will be equivalent to the rendered Helm template.
  • Add the ability of environment Initializer to provide common deployment environment for the development team, such as cluster, system Operators & CRDS, common services (Load Balancer, VPC, DB), etc.
  • Add Workflow capabilities to the face application release process, allowing users to define process-oriented operational commands. All built-in operations will also be transformed to Workflow, including Apply Resources, Grayscale Upgrade, Flow Management, Multi-Clustering, and more. At the same time, new features such as configuration differentiation and data transfer will also be added. The overall design of the Workflow capabilities is also pluggable, allowing users to implement their own capabilities (such as grayscale releases) to add or replace.
  • Vela system deployment provides standalone mode, does not need K8S as the runtime base, can be run in a single container /VM, adapt to some more complex management and deployment environment.
  • On the user experience side, the Velacp project will remove the MongoDB dependency and use CRD directly for storage. Add more vertical scenarios and achieve end-to-end one-click delivery capability to produce a shared and reusable scenario artifact solution like App Profile.
  • Better integration with the CICD system, including GitHub Actions, Jenkins, etc., allows users to implement Git Push and publish applications.

On May 26, 2021, the standard file of “Cloud Computing Open Application Architecture” jointly initiated by more than 10 units including Ali Cloud Computing Co., Ltd., China Academy of Information and Communications Technology was released at the “Cloud Primary Industry Conference”. This architecture is based on the Open Application Model (OAM), an Open source project jointly initiated by Alibaba Cloud and Microsoft Cloud. It aims to provide a unified Application description specification and Open Application capability management framework for cloud Application managers. It is expected to promote simple, efficient and controllable cloud native application management and delivery in more industries and enterprises on a large scale.

We can see that OAM as the Kubevela API Specification is converging on the industry consensus, and the Kubevela community is currently receiving 2.2K + Star recognition on GitHub. It has attracted 3+ Maintainer, 85+ Contributor, and Shein, Dip, Harmony Cloud, and Fengchange Technologies to use Kubevela in their production environments.

We welcome all developers interested in app delivery to join us! Go to Kubevela. IO, join a community group, and learn to use Kubevela. If you are already using Kubevela, please leave your information in the Community Case Register Issue (https://github.com/oam-dev/kubevela/issues/1662) to let the community know what you really need.

Kubevela will continue to work with the community to make cloud application delivery easier!

A link to the

【 1 】 【 2 】 Helm CUELang https://github.com/cuelang/cue 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/

If you want to learn more about the Kubevela project, please search for the number 23310022

Copyright Notice:The content of this article is contributed by Aliyun real-name registered users, and the copyright belongs to the original author. Aliyun developer community does not own the copyright and does not bear the corresponding legal liability. For specific rules, please refer to User Service Agreement of Alibaba Cloud Developer Community and Guidance on Intellectual Property Protection of Alibaba Cloud Developer Community. If you find any suspected plagiarism in the community, fill in the infringement complaint form to report, once verified, the community will immediately delete the suspected infringing content.