In today’s rapid expansion in the cloud native concept, mixed environment deployment (hybrid cloud/cloudy/distributed cloud/edge) has become the most enterprise applications, the inevitable choice of SaaS services, application of continuous delivery platform, and cloud native technology development trend is also towards “consistent, across different cloud, environment application delivery” stride forward. However, neither Kubernetes itself nor existing application delivery systems introduce a consistent upper level abstraction to model application delivery on top of today’s hybrid, distributed deployment environment. This lack of a unified upper level abstraction of the application delivery process is often tightly coupled with the underlying infrastructure, resulting in a heavy emotional burden on users and a heavy reliance on their personal experience and capabilities. Not only does this significantly affect user experience and productivity, but it can even lead to errors and failures.
Now, there is an open source, standard and flexible solution to the problem. It is:
KubeVela, an out-of-the-box application delivery and management platform for modern microservices architectures, launched version 1.1 today, marking an important milestone in “making application delivery in hybrid environments easier and more efficient” with a more user-friendly and comprehensive feature set.
Specifically, KubeVela 1.1 has significant differences and advantages over existing application delivery systems:
- Completely application-centric – Unlike any “building block” PaaS system or application platform, KubeVela project itself is built on a sound application delivery model and theory, which is “Open Application Model (OAM)” technology. OAM model can capture the whole process of microservice application delivery for mixed environment through declarative definition, including various operation and maintenance behaviors and characteristics of cloud service pull-up and binding, observability, multi-cluster distribution strategy, traffic allocation and rolling update. With such a unified, infrastructure-neutral superlayer model, KubeVela naturally enables users to focus on the business value and delivery process without having to worry about any infrastructure details, enabling a truly Serverless application management and delivery experience.
- Programmable delivery Workflow – On top of Kubernetes end-state oriented Workflow, KubeVela also supports process-oriented application delivery processes with “Delivery Pipeline (Workflow),” and Kubernetes end-state capabilities to ensure the correctness and idempotence of pipeline-based execution. In the kernel, the KubeVela pipeline is implemented through CUE. CUE is a data configuration language (borgCFG) derived from The Google Borg system. It can programmatically define all the steps, required resources, and associated operation and maintenance actions in the application delivery process into a DAG (directed acyclic graph), which can be used as the user’s final delivery plan. This makes KubeVela’s pipeline easy to use and scalable, and more in line with modern GitOps application delivery trends and requirements.
- Infrastructure Independent – In version 1.1, KubeVela has achieved 100% “control planarization”. This means that it becomes itself a delivery control plane running in a managed cluster, completely independent of the application running infrastructure. This new architecture of “Using Kubernetes as a governance plane for application delivery and management for any infrastructure” enables KubeVela to deliver and manage any type of application components for any environment according to user-defined workflow and delivery strategies, including: Containers, cloud functions, databases, cloud services, virtual machine instances, and more.
1.1 introduce KubeVela
Since the release of Kubevela 1.0, the Kubevela community has grown rapidly, with more than 100 developers contributing to the project, and just last month, the Kubevela and OAM projects were donated to the CNCF Foundation for hosting. In version 1.1, KubeVela focuses more on the application delivery process for a mixed environment, bringing multiple out-of-the-box capabilities such as multi-cluster delivery, delivery process definition, grayscale publishing, public cloud resource access, and a more user-friendly experience. There are two core competencies that deserve special attention:
- Natural support for multi-environment and multi-cluster application delivery: Kubevela standardized application-oriented abstraction of the infrastructure of the underlying environment, covering deliverables, computing power (basic computing, AI computing, cloud-side collaborative computing), operation and maintenance characteristics (monitoring, traffic governance, log collection, etc.) and other dimensions. Users can easily match application descriptions with different environments to be delivered (clusters) and define configuration patches in different environments, so that applications can be delivered to different environments or clusters in different ways.
- Natural support for declarative delivery workflows: It is well known that Kubernetes’ resource model is maintained in the final state, but the actual application delivery scenario is often a process-oriented series of operations (e.g. Declare component A – deploy component A to test cluster – cut 50% traffic to component A – run tests – publish to build cluster, etc.). Therefore, there is a strong desire in the community for simple and transparent control of the application delivery process, but there is often no desire to introduce a whole new and complete CI/CD system. To this end, KubeVela 1.1 adds Workflow semantics to the application model to describe the entire application delivery Workflow in detail, and provides built-in Workflow steps such as “manual approval,” “rollback,” “data delivery,” and “Slack/ pin notification.” More importantly, declarative Workflow, implemented at the application model level, is naturally integrated and can be easily integrated with existing CI/CD systems or GitOps tools in an extended manner, without the user having to choose between them.
With this design, KubeVela can help you move from the initial stage of “static configuration, templates, glue code” to the next generation of workflow-centric delivery experiences that are “automated, declarative, unified model, and naturally multi-environment oriented.”
Based on the above capabilities, users can now handle the following scenarios with KubeVela very easily:
Multi-environment, multi-cluster application delivery
Multi-environment, multi-cluster delivery for Kubernetes is a standard requirement. You may need to isolate the environment, develop, pre-ship, and produce three clusters; Perhaps you need to deliver different customers, each with a separate set of clusters; Perhaps it needs to be delivered to different regions, multiple clusters in Beijing and Guangzhou; Or maybe your business is too large for a single Kubernetes cluster to meet your resource needs. Since version 1.1, KubeVela not only enables multi-cluster application delivery, but also can work independently and directly manage multiple clusters, and integrate OCM, Karmada and other multi-cluster management tools for more complex delivery actions.
Multi-cluster Application Release Demo(Combined with Workflow)
In the example above, we delivered an application differently to different cluster environments. This “delivery variance” is a type of delivery Policy in KubeVela, which can be environment configuration variance, component number variance, and so on. It is worth mentioning that KubeVela supports Kustomize-style patches to define this difference without requiring the user to learn anything about Kustomize. In addition to the multi-cluster delivery strategy, users can define Workflow to control Workflow steps such as the order, conditions, and delivery to different clusters.
For further attempts at multi-cluster application delivery, refer to the best practices documentation.
In future releases, KubeVela will provide more advanced features for multi-cluster delivery such as global traffic distribution, multi-cluster automatic scheduling strategy, multi-cluster grayscale publishing and so on.
Defining delivery Workflow (Workflow)
Workflow’s background has been mentioned before, but it can be used in many scenarios. For example, in a multi-environment application delivery scenario, you can define the order and preconditions of delivery for different environments. For the simplest requirements, developers need to be notified when deployment is complete. For example, we need to control the grayscale publishing process and the proportion of traffic switching. For example, we need to perform E2E testing after application deployment. KubeVela’s workflow is oriented towards continuous delivery (CD) processes and is also declarative, so it can either be directly connected to CI systems (Jenkins, etc.) as a CD system, or embedded into existing CI/CD systems as enhancements and complements.
Workflow is composed of a series of steps on a model, and each Step is an independent capability module whose specific types and parameters determine the capabilities of a specific Step. In version 1.1, KubeVela built-in Step has been relatively rich, welcome to try, feedback. Also, Step is easy to scale up and allows for seamless migration with existing platform capabilities.
Connect the Service Mesh to provide advanced O&M operations, such as grayscale publishing
The integration of various underlying capabilities through a unified application model remains one of KubeVela’s greatest strengths. Specifically, KubeVela’s OAM model enables users to integrate with any cloud native technology or tool (such as Service Mesh) without the need for any “dirty” glue code or scripts, bringing more cloud native application o&M capabilities to the delivery process. In version 1.1, KubeVela already has a built-in case for integration with Istio. System administrators can easily enable Istio plug-ins through KubeVela’s plug-in management mechanism. KubeVela is responsible for encapsulating and abstracting Istio’s capabilities and delivering them to the user, enabling the user to use the canary published scenario without having to be an Istio expert (KubeVela provides the user with a encapsulated Rollout operation feature). This experience is quite user-friendly for developers, who do not need to spend a lot of time learning and mastering the use and configuration of Istio, and do not need to pay attention to the differences between Istio architecture and the various cloud hosted versions of Service Mesh, completely decoupled vendor locking.
Progressive Application Publishing Demo(with Workflow)
You can see the Rollout Demo for graphical effects, or best practices for isTIo-based incremental releases to experience full incremental releases and rollbacks of microservices.
Application-centric cloud resource delivery
Cloud vendor resources have become the computing resources used by most application developers to produce business, including infrastructure, SaaS services, middleware services, hosted services and so on. KubeVela is designed from an “application-centric” perspective to help developers manage cloud resources better and more easily in a completely Serverless way, rather than juggling a variety of cloud products and consoles. In terms of implementation, KubeVela integrates Terraform as a built-in cloud resource orchestration tool, and supports the deployment, binding and management of hundreds of different types of cloud services by various cloud vendors with a unified application model.
In terms of usage, we currently divide cloud resources into the following three categories:
• As components: such as databases, middleware, SaaS services, etc. For example, The Alibaba-RDS service in KubeVela falls into this category. • As operation and maintenance features: such as log analysis, monitoring visualization, monitoring and alarm services. • Run as application infrastructure: Kubernetes managed cluster, SLB load balancer, NAS file storage service, etc.
In the subsequent version, KubeVela will further increase the use of more abundant cloud services scenarios, effectively integrate the scattered resources and computing capacity of various cloud vendors, reduce the use threshold and service access path of developers, realize resource reuse and effective and safe recycling mechanism, and reduce user costs. KubeVela’s Terraform cloud service management is one of the most popular components in the community right now, with a large number of contributors from North America and Europe participating. We welcome everyone to try, contribute and request.
Easier landing of GitOps continuous delivery practices
As a declarative application delivery control plane, KubeVela is naturally available in the form of GitOps (either alone or with tools like ArgoCD), And it can provide more end-to-end capabilities and enhancements to GitOps scenarios, helping the GitOps concept land in the enterprise in a more user-friendly and practical way. These capabilities include:
• Define the application delivery workflow (CD pipeline) • That is, KubeVela supports describing procedural application delivery processes in GitOps mode, rather than simply declaring the end state; • Handle dependencies and topologies during deployment; • Simplify application delivery and management by providing a unified upper level abstraction over the semantics of existing GitOps tools; • Unified declaration, deployment and service binding of cloud services; • Provide out-of-the-box delivery strategies (Canary, Blue and green releases, etc.); • Provide out-of-the-box mixed environment/multi-cluster deployment strategies (placement rules, cluster filtering rules, cross-environment Promotion, etc.); • Provide Kustomize-style patches in multi-environment delivery to describe deployment differences without requiring users to learn any details of Kustomize itself; •… And so on.
Use KubeVela to practice GitOps, please refer to GitOps Best Practices.
Kubevela community and ecology
KubeVela is an open source project born in the cloud native community from day one. So far, KubeVela has been used by more than 35 leading enterprises in different industries, including Salesforce, Bytedance, Tencent and netease Games, in real production environments, helping them achieve more efficient delivery and management of cloud native applications in different scenarios. KubeVela’s large-scale practice among community users is also helping OAM become the de facto standard for application delivery in the hybrid/multi-cloud/distributed Cloud space, and is being adopted by many international vendors such as Microsoft and Oracle Cloud. Recently, the standard document “Cloud Computing Open Application Architecture” with OAM model as the core has been jointly launched by ali Cloud Computing Co., LTD., China Academy of Information and Communication Technology and other more than 10 units and released in the scene of “Cloud Native Industry Conference”.
In the future, KubeVela will continue to develop in the standardization of Delivery definition, diversification of operation and maintenance capabilities and ecological management system under the joint efforts of cloud native community and CNCF TAG App Delivery team. True implementation makes App delivery in a hybrid environment as easy as it is with the App Store today. We see the open source community coming up with more standardized components, operational features, plug-ins, and delivery Step capabilities around KubeVela’s delivery model, and welcome new and existing community users to visit: github.com/oam-dev/kub… Register and make every participant’s voice heard in the community.
Later Version Planning
Creating a natural enterprise application operating system for a hybrid environment and enabling developers to enjoy the process of delivering applications is the goal and vision of the Kubevela project:
- In version 1.0, KubeVela implemented the basic application delivery core model, solved the key capability problem of “deliver everything”, and built a programmable application delivery and management engine.
- In version 1.1, KubeVela further improves the capability set and workflow for delivering multi-environment applications, and makes the full experience available from the command line, with full Chinese documentation available online.
In version 1.2, KubeVela will bring application-centric control panel UI to facilitate enterprise application assembly, distribution, and delivery processes, providing developers with a simpler application delivery experience, while covering more usage scenarios such as edge application delivery.
See Kubevela Roadmap for more information about projects
The reference information
You can learn more about KubeVela and the OAM project in the following materials:
- Project code base: github.com/oam-dev/kub… Welcome to Star/Watch/Fork!
- Project official homepage and documentation: Kubevela. IO. Since version 1.1, Chinese and English documents have been provided. Developers are welcome to translate more language documents.
- Item Nail group: 23310022; Slack: CNCF #kubevela Channel
- To join a wechat group: Please add the following maintainer wechat signal to enter the KubeVela user group:
1) Best Practices documentation: kubevela. IO /docs/case-s… 2) Rollout Demo: github.com/oamdev/kube… 3) Progressive publishing based on Istio: kubevela. IO /docs/case-s… 4) GitOps Best Practice: kubevela. IO /docs/case-s… 5) Kubevela RoadMap: Kubevela. IO /docs/ Roadma… 6) Installation Guide: kubevela. IO /docs/instal…
Click the link (kubevela.io) to view the official home page and documents of Kubevela project!! *