×
Community Blog KubeVela: One of the Hottest Golang Cloud Native and Open Source Project!

KubeVela: One of the Hottest Golang Cloud Native and Open Source Project!

This post introduces the open source KubeVela project and explores the reasons why this project became so popular in the cloud native field.

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:

  • Simple and easy-to-use syntax. The cloud native community attaches great importance to open source and contributors. Therefore, Golang, with few syntax rules, quickly became the best choice. Otherwise, many projects in the cloud native CNCF community will stick to various guidance and regulations, which may fail innovative designs such as Kubernetes CRD.
  • Rich Golang.org library. The modern software development pays attention to "library-oriented" programming. No one will construct a HTTP framework or concurrent library without using other libraries. The more available libraries there are, the higher the R&D efficiency will be. Because of this, Golang's inherent advantages have been further expanded, making it take the lead in cloud native field.
  • Easy deployment. After the Golang project is developed, a static file can be put into operation, especially for direct performance in Docker. You can imagine how troublesome the online deployment of Kubernetes would be, if it was developed in Python or Ruby.
  • Good performance and relatively simple optimization. Golang doesn't have the best performance, but it balances performance and the mental burden of programmers. For projects like Docker and Kubernetes, Golang is the best choice.

Popular Open Source Golang Projects

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!

1

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!"

2

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?

What Is KubeVela?

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.

Why Is KubeVela so Popular?

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

Can I Become a Contributor to the KubeVela Project?

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:

  • Golang developing environment: 1.13 +;
  • Ginkgo 1.14.0 +, the tool KubeVela depends for E2E testing;
  • Golangci-lint 1.31.0 +, the tool KubeVela depends for checking code style and specification.

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.

What Technologies of KubeVela Can I Contribute to?

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.

0 0 0
Share on

Alibaba Developer

202 posts | 33 followers

You may also like

Comments