About KubeVela is such a user-oriented upper platform project. For business developers, KubeVela is simple and easy to use. It allows developers to define and deploy applications on Kubernetes with a very low mental burden and hands-on cost... But more importantly, for the platform team, KubeVela It is not a simple PaaS or Serverless. It is a PaaS kernel that can be arbitrarily extended in the native way of Kubernetes. Platform engineers can build any vertical business system based on it.
Author: KubeVela Community
On June 22, 2021, at the regular TOC meeting of the Cloud Native Computing Foundation (CNCF), it was voted and passed, and KubeVela officially became the official sandbox project of CNCF. KubeVela, which is transparent, open, open source and neutral, will continue to devote itself to creating a unified, standard, and cross-cloud application management and delivery experience in the future.
"KubeVela is such a user-oriented upper-level platform project. For business developers, KubeVela is simple and easy to use. It allows developers to define and deploy applications on Kubernetes with a very low mental burden and hands-on cost... But More importantly, for the platform team, KubeVela is not a simple PaaS or Serverless. It is a PaaS kernel that can be arbitrarily extended in the native way of Kubernetes. Platform engineers can build any vertical business system based on it. "
—Zhang Lei, CNCF TOC Member
KubeVela project address:
\_https://github.com/oam-dev/kubevela
\_
Project Introduction
Cloud-native technology is using Kubernetes as a general abstraction layer, striding towards the pursuit of consistent application delivery across clouds. Although Kubernetes excels at abstracting the details of the underlying infrastructure, it brings additional complexity. The various PaaS built on Kubernetes are numerous but not interconnected. As a result, the platform team for service application development does not have a suitable framework to build a user-friendly and highly scalable abstraction. At the same time, application delivery is gradually becoming 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, can help us overcome all the above problems. As an implementation of OAM (Open Application Model) on Kubernetes, the KubeVela project has evolved from oam-kubernetes-runtime to the present day, and its development momentum has been very rapid. Springer Nature, Fourth Normal Form, SILOT, Upbound and other end users from different industries around the world, and even commercial products built on it such as Oracle Cloud and Napptive have appeared. At the end of March 2021, the KubeVela community announced the release of v1.0 version , which includes all stable APIs, officially starting to move towards enterprise-level production.
KubeVela technical architecture diagram
Core idea
For platform developers, KubeVela acts as a framework to alleviate the trouble of building a developer-centric platform by performing the following operations:
- Focus on developers. KubeVela abstracts infrastructure-level primitives by introducing the concept of Application to capture the complete deployment of microservices, and then build operational functions according to the needs of the application.
- Local expansion. Application is composed of modular building blocks, which support CUELang [1] and Helm [2] as template engines. This allows you to abstract the functions of Kubernetes in a Lego style and release them to end users through a simple kubectl apply -f. Changes made to the abstract template will take effect at runtime, without the need to recompile or redeploy KubeVela.
- Simple and reliable abstract 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 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 time.
For end users (such as application developers), this abstraction built with KubeVela will enable them to design and release applications to Kubernetes with minimal effort—all they have to do is define a simple application that can be easily Integrate with any CI/CD without needing to manage some infrastructure details.
Furthermore, KubeVela currently has many typical application scenarios, such as:
- SasS software cloud hosting
- Application PaaS for hybrid cloud/distributed cloud
- DevOps platform for hybrid environments, including multi-cluster/multi-environment CD/CD, etc.
Future outlook
In order to better meet the faster, more variable and complex business requirements of application delivery under cloud native, KubeVela will follow the following Roadmap to further evolve:
- At present, Component access requires CUE to achieve docking conversion. Next, we plan to provide better support for the existing system - this includes the existing Helm Chart, Kustomize catalog, and Terraform Module that can be directly connected to become Component. Taking Helm Chart as an example, its values.schema.json will be docked into properties, and the output resources are equivalent to the rendered result of the helm template.
- Add the ability to initialize the environment (Initializer) to provide development teams with a common deployment environment, such as clusters, system Operators & CRDs, public services (Load Balancer, VPC, DB), etc.
- Add the Workflow capability of the application publishing process, allowing users to define process-oriented operation and maintenance commands. All built-in operation and maintenance operations will also be transformed in the direction of Workflow, including apply resources, grayscale upgrade, traffic management, multi-cluster, etc. At the same time, new functions such as configuration differentiation and data transfer will be added. At the same time, the overall design of Workflow capabilities is pluggable, and users can implement their own capabilities (for example, gray release) to add or replace.
- The Vela system deployment provides a standalone mode. It does not require K8s as a runtime base, and can be run in a single container/VM to adapt to some more complex management and control deployment environments.
- On the user experience side, the Velacc project will remove the mongodb dependency and switch to directly using CRD for storage. Add more vertical scenes, realize end-to-end one-click delivery capabilities, and produce App Profile, a scene product solution that can be shared and reused.
- Better integration with the CICD system, including Github Actions, Jenkins, etc., allows users to implement git push to release the application.
On May 26, 2021, the "Cloud Computing Open Application Architecture" standard document jointly initiated by more than 10 units including Alibaba Cloud Computing Co., Ltd. and China Academy of Information and Communications Technology was released on-site at the "Cloud Native Industry Conference". The architecture is based on the open source project "Open Application Model (OAM)" jointly initiated by Alibaba Cloud and Microsoft Cloud, and aims to provide cloud application managers with unified application description specifications and open application capabilities The management framework aims to 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 the OAM as the KubeVela API Specification is converging industry consensus. The KubeVela community is also currently recognized by 2.2k+ Star on GitHub, attracting 3+ Maintainer, 85+ Contributor co-construction, as well as SheIn, Dipu, Harmony Cloud and Fengbian. Many users such as science and technology began to use KubeVela in the production environment.
We welcome all developers who are interested in application delivery to join us! Visit the official website kubevela.io, join the community group, and learn to use KubeVela. If you are already using KubeVela, please register an issue in the community case ( https://github.com/oam-dev/kubevela/issues/1662 ) and leave your information to let the community know your real needs.
KubeVela will continue to advance with the community to make cloud application delivery easier!
Related Links
【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/
If you want to better understand the KubeVela project, welcome to search Dingding group number 23310022
Copyright Statement: content of this article is contributed spontaneously by Alibaba Cloud real-name registered users. The copyright belongs to the original author. The Alibaba Cloud Developer Community does not own its copyright and does not assume corresponding legal responsibilities. For specific rules, please refer to the "Alibaba Cloud Developer Community User Service Agreement" and the "Alibaba Cloud Developer Community Intellectual Property Protection Guidelines". If you find suspected plagiarism in this community, fill in the infringement complaint form to report it. Once verified, the community will immediately delete the suspected infringing content.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。