Over the past five years, the Internet and cloud computing technologies have been developing rapidly. Application developers have continuously pursued efficiency and agility, bringing the industry into a brand-new cloud-native era. The rapid popularization of the concept of cloud native has made Docker and Kubernetes popular, which indirectly turns one programming language into the "leader" of today's servers. This programming language, as the highlight in cloud native field, is Golang.
However, just as the opinion of "PHP is not necessarily the best programming language", Golang itself also is not a "master key". The reason why Golang can take full advantage of cloud native technology lies on following characteristics:
So, by 2020, Golang has become the most important "ticket" for the "cloud native circle". If you don't understand Linux kernel, you still have a chance to learn slowly. But if you have no idea of Golang, it may be really difficult to make practices.
As the saying goes, if you want to learn a language well, enough practice is necessary! One of the biggest benefits of the cloud native community is that there are many high quality Golang open source projects. For example, there are containerd in the bottom-layer, Kubernetes in the orchestration layer, and the current blockbuster, Istio. Each of them is worth studying for quite a while.
However, most of these well-known projects are now relatively mature and rarely accept fine-grained features. In addition, even if the Pull Request (PR) is submitted, the merging speed is extremely slow. Therefore, here comes a question. Whether there are earlier and popular Golang projects in the cloud native field that allow YAML engineers to realize their ambition?
The answer lies in the surprising KubeVela open source project. It is published by the Open Application Model (OAM) community in KubeCon North America Summit 2020, the most authoritative summit in cloud native field.
What is even more amazing is that, on the fourth day after its open source announcement, KubeVela directly ranks first in Golang section of the GitHub trend list, fully demonstrating its development potential!
In three OAM's KubeVela-related technical speeches in KubeCon, KubeVela project received attention and favorable comments from all sides. For example, when the CNCF application delivery team was introducing the KubeVela project, Melanie, a "cyber celebrity" cloud native engineer from Airbnb, live-broadcasted the whole speech and greatly appreciated the KubeVela project!
"If I want a Heroku based on Kubernetes, what should I do? Use KubeVela!"
If you've never heard of KubeVela, I believe you must be curious about this project now. What exactly is this project about, and how did it rank first in Golang section of GitHub trend list?
In a word, KubeVela is a simple, easy-to-use, and highly extensible application management platform and core engine. KubeVela is built based on Kubernetes and OAM's technologies.
To be more specific, KubeVela is a cloud native application management platform requiring less effort. Its core function is to allow developers to easily and quickly define and deliver modern microservice applications on Kubernetes, with no need to know details about Kubernetes itself. Thus, KubeVela can be considered as Heroku in the cloud native community.
In other words, an application developer no longer needs to learn complex Kubernetes knowledge to deploy applications on Kubernetes. Instead, only applying KubeVela enables us to simply operate various Kubernetes functions.
In addition, for PaaS platform teams, KubeVela is a powerful and highly extensible core engine for the cloud native application platform. It allows platform teams to quickly and efficiently implant application management capabilities from the cloud native community as native in Kubernetes. Then, personalized cloud native platforms based on KubeVela can be built, such as cloud native database PaaS, cloud native AI platform, and even Serverless services.
In this regard, KubeVela can be considered as the published version of Kubernetes, centering on applications. With the OAM as the core, platform teams can quickly build their own PaaS, Serverless, and even any user-oriented cloud native platform projects based on KubeVela.
In a recent interview with a Chinese technical media, the head of the KubeVela project mentioned: "At present, many business users generally have less insights into the value of 'cloud native' and Kubernetes. This brings troubles to the whole community. The most fundamental reason is that there is still a layer of abstraction to be filled between Kubernetes and users, called 'the application layer'."
Nevertheless, various core concepts of Kubernetes and cloud native technologies are far away from business users. Through the actual implementation of these technologies, it can be seen that there are only abstractions in the infrastructure layer. There is still a huge gap between these technologies and smooth cloud application management and delivery experience.
OAM and Kubernetes-based KubeVela projects are exactly the cloud native application layer projects jointly launched by Alibaba Cloud, Microsoft, and other cloud native communities. OAM and KubeVela aim at "solving client issues". OAM is designed to provide a unified, end-user-oriented application definition model for any cloud infrastructure. KubeVela is the complete implementation of this unified model on Kubernetes.
As Zhang Lei said, "Only when R&D teams comes into contact with the 'code' and 'application', rather than 'Pod' and 'StatefulSet', can R&D teams really focus on writing codes."
Of course you can!
The basic requirement to contribute to KubeVela is to command Golang. To be specific, KubeVela depends on the following Golang tools:
In addition, KubeVela requires some basic understanding of Kubernetes. Of course, you don't have to be a Kubernetes expert. As long as you command Golang, there is no need to worry.
What's more, before contributing to KubeVela, please read its Contributor Document, in which KubeVela's Detailed Design Document is attached. This document is expected to be a must as reference materials.
Firstly, as a "highly extensible" cloud native application platform, almost each feature of KubeVela is extensible and pluggable.
On the second day of KubeVela open source, contributors from the community added a PR called Support for Contour Ingress Controller. This PR has been merged, which means that in the next version, KubeVela will natively support Envoy-based application access routing. Similarly, other features in KubeVela, such as Autoscaler, provide large extensible space in Kubernetes natively.
Secondly, the entire KubeVela platform is designed with workload types and traits. Therefore, you can freely add various workload types and traits to KubeVela, such as StatefulSet workloads, CloneSet workloads, trait for blue green deployment and traffic management. Its application management capabilities have everything that one expects to find. All designs and capabilities of KubeVela in the future aim to meet your imagination.
Thirdly, there is the user interface and model layer, namely, the Appfile of KubeVela and the OAM model engine behind it. These are the core parts of KubeVela, which are generally stable and suitable for intermediate developers with certain understanding of KubeVela and OAM. For those who have implemented the OAM in internal scenarios, it's just an opportunity for them to show capacities.
Last and most importantly, the key is KubeVela-related sharing and case articles. In fact, you don't need to start with the code if contributing to the KubeVela project. Any sharing of KubeVela's application, integration, and even criticism is a great contribution to the entire community, and we look forward to it!
Following the CNCF contributor classification, KubeVela has set two maintainer levels. Project contributors with a certain amount of contribution will be nominated as Reviewers by the existing maintainers. They will become members of the KubeVela project after obtaining certain maintenance permissions. The outstanding Reviewers will be nominated as Approvers and become the core maintainers of the project.
KubeVela is the core engine of Alibaba's current Internet-level application platform products, such as Alibaba Cloud EDAS. It is also an open source project in the cloud native community. Once it is stable, the KubeVela project will be wholly donated to CNCF.
Alibaba Developer - February 7, 2021
Alibaba Developer - December 23, 2021
Alibaba Developer - December 9, 2020
Alibaba Developer - November 17, 2021
Alibaba Developer - June 21, 2021
Alibaba Cloud Native Community - January 27, 2022
Accelerate and secure the development, deployment, and management of containerized applications cost-effectively.Learn More
Alibaba Cloud Container Service for Kubernetes is a fully managed cloud container management service that supports native Kubernetes and integrates with other Alibaba Cloud products.Learn More
Provides a control plane to allow users to manage Kubernetes clusters that run based on different infrastructure resourcesLearn More
A low-code development platform to make work easierLearn More
More Posts by Alibaba Cloud Native Community