Watch the replay of the Apsara Conference 2022 at this link!
By Sun Jianbo (Tianyuan)
With the advent of the cloud-native era, developers have to use more and more complex APIs to build cloud-native-compliant application architectures from powerful Infrastructure and Clouds. It is difficult to use and has a high learning curve. This also brings great stability risks due to the direct operation of the underlying infrastructure. Kubernetes provides a unified API integration interface for the infrastructure, but it's a platform for platform developers. The application-centric interface is missing for upper-level application developers. Open Application Model (OAM) was born on demand. It was jointly released by Alibaba and Microsoft in 2019. The two companies brought a lot of practical experience in cloud-native application development and provided a theoretical basis for building an application platform in the cloud-native era.
After OAM was released, it was welcomed and adopted by many enterprises. However, for some enterprises, OAM is a theoretical model with no practical platforms that can be used directly. Thus, it is difficult to land. As a result, Alibaba Cloud engineers joined forces with enterprises that adopted OAM in the community and built an out-of-the-box OAM implementation engine based on common practice. Then, KubeVela was born.
KubeVela was officially released in November 2020 and has always adhered to the design principles of flexibility, scalability, and separation of concerns. The goal is to connect cloud-native technology components and enterprise-level applications to help developers in the enterprise quickly obtain an easy, secure, and reliable software delivery and management experience. Less than a year after becoming open-source, it has provided core features (such as multi-cluster unified orchestration, infrastructure independence, and application delivery workflow). It officially joined CNCF in June 2021 and was widely welcomed by community users.
Today, KubeVela has been adopted by more than 300 domestic and overseas enterprises, including China Merchants Bank, ByteDance, Li Auto, and Shein. The entire OAM and KubeVela community contains dozens of ecological projects, which have accumulated more than 8000 stars and received many contributions from more than 300 developers from dozens of countries worldwide.
Picture 1: Unified Application Delivery of KubeVela
KubeVela helps enterprises build unified application delivery capabilities. With KubeVela's unified architecture, enterprises can simultaneously deliver microservice containers, cloud database, frontend static pages, and their internal custom extensions in one configuration file, completing the orchestration and O&M management of diverse workloads. Developers of business applications no longer need to worry about the differences in Kubernetes resource versions or different disk specifications during delivery. KubeVela provides comprehensive version management, grayscale release, CI/CD docking, multi-cluster management, and other functions for the description of a unified application, significantly reducing the threshold for enterprises to use cloud-native technology.
With the development of the community, more enterprises use KubeVela as the core engine of the internal PaaS platform. Based on the unified model and addon extension mechanism at the upper layer of KubeVela, a series of advanced features have been developed, including security, observability, and GitOps. A large number of core contributors have emerged, including China Merchants Bank, Napptive, and JD Cloud. They contribute many new features and addons to the KubeVela ecosystem, gradually extending the boundaries of KubeVela from application delivery to application day-2 management.
Ding Yu (General Manager of the Alibaba Cloud-Native Application Platform) released the upgrade version of KubeVela during the 2022 Apsara Conference. This upgrade is a qualitative change in KubeVela from application delivery to application management. It also creates a precedent in the industry to build an application platform with delivery and management integrated based on a scalable model. The upgrade has four core directions.
Picture 2: Application Platform with Integrated Delivery and Management
Since KubeVela officially released version 1.0 in April 2021, OAM has been continuously verified by KubeVela and gradually stabilized. KubeVela's previous version iterations can always ensure the forward compatibility of the API, corresponding to OAM version 0.3.1. According to SemVer's international practice of naming versions, the version number released this time is 1.6. Although the version number has only increased by 0.1, this release is the overall presentation of KubeVela's application management capabilities since version 1.2 was released more than a year ago. Next, we will conduct an in-depth interpretation of the core functions one by one.
Based on the OAM concept, extensibility and abstraction are the two core features of KubeVela. However, abstraction often represents a black box. Once users encounter problems that are difficult to troubleshoot and can't see the progress and status of resource delivery, management will be more difficult. We have solved the problem of resource visualization based on scalability in this release. KubeVela automatically discovers Kubernetes native resources and helps users build resource topology maps. You can automatically generate a topology map for user-defined extended resources by describing the configuration of a resource association relationship.
This also means resource visualization is prioritized in the KubeVela system. KubeVela can fully describe the topology, view underlying container events and logs, and obtain the overall delivery status for any workload contained in an application. The following picture shows the resource topology of KubeVela.
Picture 3: VelaUX Resource Visualization Process
VelaUX Documentation: https://kubevela.net/docs/reference/addons/velaux
In addition, KubeVela provides a top interactive interface for command-line users, which allows users to easily view the status of delivered resources and fully meet the usage habits of different developers.
Picture 4: Diagram of Vela Top Command Line Operation
Vela Top Command Line Operation Documentation: https://kubevela.net/docs/tutorials/vela-top
Observability is the top priority in application management. This release of KubeVela has also comprehensively improved observability. Specifically, it consists of observability infrastructure construction, application-oriented observability, and observability as code.
KubeVela Observability Documentation: https://kubevela.net/docs/platform-engineers/operations/observability
KubeVela's addon system can help users that do not have observability infrastructure create the entire observability software stack with one click. As shown in the following picture, it includes common observability services (such as Prometheus and Grafana) and metrics and log collection for business scenarios (such as mysql-exporter). After the addon is installed, you can automatically see the built-in dashboards of the platform and quickly build the observability application platform.
Picture 5: Out-of-the-Box Observability Addons
KubeVela allows users that already have observability services to integrate the deployed Prometheus and Grafana services through standard APIs, including the stable, reliable, and unlimited observability services that are self-created or provided by cloud vendors, such as Alibaba Cloud ARMS.
A major feature of KubeVela is that it drives complete application delivery through a top-level application description (YAML). Observability is no exception. The KubeVela controller automatically generates a monitoring dashboard for the application by selecting the O&M features corresponding to logs or metrics.
Picture 6: Application-Oriented Observability
The user portal is an application-oriented dashboard. You can view the component status, version information, and the generated resources in the application. It also contains the dashboard links corresponding to various sub-resources. You can dive into the sub-resources and see detailed information as needed. You can easily understand the full picture of resources from the perspective of applications, whether they are Kubernetes native resources or custom resources.
The ability to support the application observability underlying layer is completed by Infrastructure as Code (IaC). This also means KubeVela has made the full link IaC from metric collection (including log collection), parsing, enrichment, storage, data source registration and the dashboard visualization.
The following picture shows how to create a Grafana dashboard using IaC. The IaC module allows you to ”create-dashboard”. Similarly, these include creating data sources, importing dashboards, etc. These routine actions are fully built-in in the KubeVela community, and you can use them directly without learning details. If you want to do some customization, you can orchestrate your process through IaC to customize observability for your platform.
Picture 7: Observability as Code
Development, testing, and production of different environment management are the problems of application management. KubeVela's unified application model can deliver applications and initialize the environment. It naturally supports the management of multi-cluster and can install infrastructure components of different clusters with one click. In version 1.4, we released the VelaD project, which can pull up the complete environment of KubeVela on the local machine without relying on Kubernetes. Developers can quickly build and validate applications locally (or in virtual machines) for an environment consistent with production. The management of different environments has been improved in this release.
This release adds an independent pipeline capability. Compared with the application-level workflows of KubeVela, the independent pipeline has the following features:
As shown in the following picture, when using it, we can obtain the built-in pipeline template, fill in the environment context parameters, and quickly execute. The following example shows multiple KubeVela platform addons opened through the pipeline. The KubeVela application is behind the addons.
Picture 8: KubeVela Pipeline UI Diagram
Configuration management is one of the cores of application management. KubeVela's configuration management mainly helps users share configurations between applications and integrate configurations with third-party external systems to realize unified configuration management. For example, you can connect to external systems (such as container image repositories and Helm repositories) and third-party cloud services (such as the ARMS observability suite mentioned above).
KubeVela configuration management uses the Secret API of Kubernetes as the carrier of configuration data. The application is used for multi-cluster distribution on demand. Applications can read configurations by mounting secrets commonly used in Kubernetes and connecting to the permission system. In addition, if a business application supports reading configurations from a third-party configuration management platform (such as Nacos), you can specify to export the configuration content to the services when defining configuration templates, thus reusing the configuration distribution capabilities of registries.
You can perform configuration management operations from UI/CLI and perform configuration reading and writing operations in application workflows and pipelines. It combines the data transfer capabilities and motion orchestration capabilities of a pipeline to implement diverse scenarios (such as configuration sharing and automatic configuration injection among applications).
Picture 9: Diagram of Configuration Management
This upgrade of KubeVela adds many application management capabilities to the original application delivery, which is a big step forward for the goal of helping application developers obtain an easy, reliable, and secure software development experience.
Today, KubeVela is a Kubernetes-based controller and a platform with many ecological projects. From the connectivity of the underlying infrastructure, and user-oriented interface at the upper layer, to the scalable ecosystem integration, KubeVela is growing rapidly, fulfilling the beautiful vision of OAM at the beginning of its release - to make the delivery and management of applications simpler, safer, and more reliable!
Picture 10: Tool Ecosystem of KubeVela
In the future, the KubeVela community will continue to enrich out-of-the-box system addons, enrich scenario-oriented application delivery and management solutions, and gradually settle community practices into OAM application standards, building a development, unified, and standardized cloud-native application ecosystem.
Trace and Visualize the Relationships Between the Kubernetes Resources with KubeVela
506 posts | 48 followers
FollowAlibaba Cloud Community - November 11, 2022
Alibaba Developer - November 17, 2021
Alibaba Cloud Native Community - March 8, 2023
Alibaba Cloud Native Community - March 20, 2023
Alibaba Cloud Native Community - February 9, 2023
Alibaba Cloud Native Community - March 1, 2023
506 posts | 48 followers
FollowAccelerate and secure the development, deployment, and management of containerized applications cost-effectively.
Learn MoreMulti-source metrics are aggregated to monitor the status of your business and services in real time.
Learn MoreAlibaba 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 MoreProvides a control plane to allow users to manage Kubernetes clusters that run based on different infrastructure resources
Learn MoreMore Posts by Alibaba Cloud Native Community