With the rapid popularity of cloud native concepts, hybrid environment deployment (hybrid cloud/multi-cloud/distributed cloud/edge) has become the inevitable choice for most enterprise applications, SaaS services, and continuous application delivery platforms. The development trend of cloud native technology It is also moving towards "consistent, cross-cloud, and cross-environment application delivery". However, neither Kubernetes itself nor the various existing application delivery systems have introduced a consistent upper-level abstraction to model application delivery on top of today's hybrid and distributed deployment environment. This application delivery process, which lacks a unified upper-level abstraction, is often tightly coupled with the underlying infrastructure, resulting in a heavy burden on the user's mind and heavily dependent on the user's personal experience and abilities. This will not only greatly affect the user experience and reduce production efficiency, but also lead to errors and failures.
And now, this problem finally has an open source, standard, and flexible solution. It is:
As an out-of-the-box application delivery and management platform for modern microservice architecture, KubeVela officially released version 1.1 today. With a more user-friendly and complete feature set, it opens the way to "make hybrid environment application delivery easier and more efficient" Important milestones.
Specifically, the 1.1 version of KubeVela has significant differences and advantages compared with various existing application delivery systems:
- Fully application-centric-Unlike various "building blocks" PaaS systems or application platforms, the KubeVela project itself is built on a complete set of application delivery models and theoretical foundations. This is the "Open Application Model (OAM) )"technology. The OAM model can capture the entire process of microservice application delivery for hybrid environments through declarative definitions, even including the pull-up and binding of cloud services, observability, multi-cluster distribution strategies, traffic allocation, and rolling updates. Operation and maintenance behavior and characteristics. Through such a unified, infrastructure-independent upper-layer model, KubeVela can naturally allow users to focus on business value and delivery process without worrying about any infrastructure details, and truly realize a completely serverless application management and delivery experience.
- Programmable delivery workflow-On the basis of the final state-oriented Kubernetes, KubeVela also supports the process-oriented application delivery process through the "delivery pipeline (Workflow)", and at the same time guarantees the correctness and execution of the pipeline through the final state capability of Kubernetes Idempotence. In the kernel, the KubeVela pipeline is implemented through CUE. CUE is a data configuration language born from the Google Borg system (ie: borgcfg). It can programmatically define all steps, required resources, and associated operation and maintenance actions of the application delivery process into a DAG (directed Acyclic graph), and use this as the user's final delivery plan. This makes KubeVela's delivery pipeline not only simple to use and extremely scalable, but also more in line with the trends and requirements of modern GitOps application delivery.
- Infrastructure-independent-In version 1.1, KubeVela has completed 100% of the "control plane". This means that it itself becomes a delivery control plane that runs in the control cluster and is completely independent of the application operating infrastructure. This new architecture of "using Kubernetes as a control plane for application delivery and management for any infrastructure" enables KubeVela to deliver and manage any type of application components in any environment in accordance with user-defined workflow and delivery strategies, including: Containers, cloud functions, databases, cloud services, virtual machine instances, etc.
KubeVela 1.1 introduction
Since the release of Kubevela version 1.0, the KubeVela community has developed very rapidly. So far, more than 100 developers have participated in the contribution. And just last month, the KubeVela and OAM projects have also been donated to the CNCF Foundation for hosting. In version 1.1, KubeVela focuses more on the application delivery process for hybrid environments, bringing multiple out-of-the-box capabilities such as multi-cluster delivery, delivery process definition, grayscale release, public cloud resource access, and more user-friendly users Experience. Among them, there are two core capabilities that deserve special attention:
- Natural support for multi-environment and multi-cluster application delivery: Kubevela has carried out application-oriented standardized abstraction of the underlying environment infrastructure, covering deliverables, computing power (basic computing, AI computing, cloud-side collaborative computing), operation and maintenance features (monitoring , Traffic management, log collection, etc.) and other dimensions. Users can easily match application descriptions with different delivery environments (clusters), define configuration patches in different environments, and deliver applications to different environments or clusters in a differentiated manner.
- Naturally supports declarative delivery workflow: As we all know, the resource model of Kubernetes is maintained in the final state, but the actual application delivery scenario is often a series of process-oriented operations (for example: declare component A-deploy component A to test Cluster-cut 50% of the traffic to component A-run tests-publish to the spawning cluster, etc.). Therefore, in the community, users want a simple and transparent control of the application delivery process is very strong, but they often do not want to introduce a new and complete CI/CD system. To this end, KubeVela 1.1 adds Workflow semantics to the application model to finely describe the entire application delivery workflow, and provides built-in "manual approval", "rollback", "data transfer", "Slack/nail notification" Wait for multiple workflow steps (Step). More importantly, this declarative Workflow implemented at the application model layer has the ability to be integrated naturally, and it can be integrated naturally with the existing CI/CD system or GitOps tool in an extended way, without the user having to make a choice. pain.
It is through the above design that KubeVela can help you from the initial stage of "static configuration, template, glue code", directly upgrade to the next generation of "automation, declarative, unified model, naturally oriented to multiple environments" with workflow as the core In the delivery experience.
Based on the above capabilities, users can now easily handle the following scenarios through KubeVela:
Multi-environment, multi-cluster application delivery
Multi-environment, multi-cluster delivery for Kubernetes has become a standard requirement. You may need to isolate the environment, develop, pre-launch and produce three sets of clusters; perhaps you need to deliver to different customers, each customer has a separate set of clusters; perhaps you need to deliver to different regions, with multiple clusters in Beijing and Guangzhou; and Perhaps your business scale is large, and a single Kubernetes cluster cannot meet your resource needs. Starting from version 1.1, KubeVela not only realizes multi-cluster application delivery, but also can work independently and directly manage multiple clusters, and it can also integrate various multi-cluster management tools such as OCM and Karmada to perform more complex delivery actions.
Multi-cluster application release Demo (combined with Workflow)
In the above example, we delivered an application differentiated to different cluster environments. This "delivery difference" is a kind of delivery policy (Policy) in KubeVela, which can be a difference in environment configuration, a difference in the number of components, and so on. It is worth mentioning that KubeVela supports Kustomize-style Patch to define this difference, but does not require users to learn any Kustomize-related knowledge. On the basis of the multi-cluster delivery strategy, the user can also control the delivery sequence, conditions and other workflow steps of the delivery to different clusters by defining Workflow.
To further try multi-cluster application delivery, please refer to the best practice document.
In subsequent versions, KubeVela will provide more advanced features such as global traffic distribution, multi-cluster automatic scheduling strategy, multi-cluster grayscale release, etc. in terms of multi-cluster delivery.
Define the delivery workflow (Workflow)
The background of Workflow has been mentioned before, and its specific usage scenarios are many, such as: in a multi-environment application delivery scenario, users can define the order and preconditions of delivery in different environments; another example is the simplest requirement, deployment Developers need to be notified after completion; another example is that we need to control the process of grayscale release and the ratio of traffic switching, and another example is that we need to perform E2E testing after application deployment is completed. KubeVela’s workflow is oriented to the continuous delivery (CD) process and is also declarative, so it can be used as a CD system to directly interface with CI systems (such as Jenkins, etc.), or it can be embedded in the existing CI/CD system as a Enhanced and supplemented, the landing method is very flexible.
In the model, Workflow is composed of a series of Steps, and in terms of implementation, each Step is an independent capability module, and its specific types and parameters determine the capabilities of its specific steps. In version 1.1, KubeVela's built-in Step has been relatively rich, and you are welcome to try it out and give feedback. In addition, Step is very easy to expand, and it allows everyone to connect with existing platform capabilities and achieve seamless migration.
Connect to the service mesh to provide advanced operation and maintenance operations such as grayscale release
Integrating various low-level capabilities through a unified application model is still one of KubeVela's biggest highlights. Specifically, through the OAM model, KubeVela can enable users to integrate with any cloud native technology or tool (such as Service Mesh) without any "dirty" glue code or script, thereby bringing more to the delivery process. Cloud native application operation and maintenance capabilities. In version 1.1, KubeVela has built-in integration cases 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 users, so that users can directly use the scene published by the canary without being an Istio expert (KubeVela will provide users with a packaged Rollout operation and maintenance feature). This kind of experience is very friendly for developers. He does not need to spend a lot of time to learn and master the use and configuration of Istio, nor does he need to pay attention to the differences between the Istio system and various cloud-hosted Service Mesh, and completely decouple vendors. locking.
Application Progressive Release Demo (Combined with Workflow)
You can refer to Rollout Demo to achieve the graphical effect, or refer to the best practice of progressive release based on Istio to experience the complete microservice progressive release and rollback.
Application-centric cloud resource delivery
Cloud vendor resources have become the computing resources used by most application developers in their production businesses, including infrastructure, SaaS services, middleware services, managed services, etc. In this regard, KubeVela’s design is from an “application-centric” perspective, helping developers to manage cloud resources better and more conveniently in a completely serverless way, instead of struggling with various cloud products and consoles. . In terms of implementation, KubeVela integrates Terraform as a cloud resource orchestration tool, and can support the deployment, binding, and management of hundreds of different types of cloud services from various cloud vendors with a unified application model.
In terms of use, 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 an operation and maintenance feature: services such as log analysis, monitoring visualization, and monitoring alarms.
• As an application operating infrastructure: such as Kubernetes managed clusters, SLB load balancing, NAS file storage services, etc.
In subsequent versions, KubeVela will further add richer cloud service usage scenarios, effectively integrate the scattered resources and computing capabilities of various cloud vendors, reduce developers' use thresholds and service access paths, and achieve resource reuse and effectiveness , Safe recycling mechanism, reduce user fees. KubeVela's Terraform cloud service management is currently a very popular component in the community. There are a large number of contributors from North America and Europe participating in it. Everyone is very welcome to try, contribute and make demands.
GitOps continuous delivery practices that are easier to implement
As a declarative application delivery control plane, KubeVela can naturally be used in GitOps (can be used alone, or with tools such as ArgoCD), and can provide more end-to-end capabilities and enhancements for GitOps scenarios and help GitOps The concept is implemented in the enterprise in a way that is more friendly to the people and solves practical problems. These capabilities include:
• Define application delivery workflow (CD pipeline)
• That is: KubeVela supports the description of the procedural application delivery process in the GitOps model, rather than simply declaring the final state;
• Deal with various dependencies and topological structures in the deployment process;
• Provide a unified upper-level abstraction on top of the semantics of various existing GitOps tools to simplify the application delivery and management process;
• Unified declaration, deployment and service binding of cloud services;
• Provide out-of-the-box delivery strategies (canary, blue-green release, etc.);
• Provide out-of-the-box hybrid 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 users having to learn any details of Kustomize itself;
• …… and many more.
To use KubeVela to practice GitOps concepts, please refer to GitOps best practices.
Kubevela community and ecology
KubeVela is an open source project that was born in the cloud native community from the very first day. Up to now, KubeVela has been applied in the actual production environment by 35+ leading companies in different industries such as Salesforce, Bytedance, Tencent, and NetEase Games, helping them achieve more efficient delivery and management of cloud-native applications in different scenarios. The large-scale practice of KubeVela among community users is also promoting OAM to become the de facto standard for application delivery in the hybrid cloud/multi-cloud/distributed cloud field, and is being adopted by many international vendors such as Microsoft and Oracle Cloud. Recently, the "Cloud Computing Open Application Architecture" standard document centered on the OAM model has also been jointly initiated by more than 10 units including Alibaba Cloud Computing Co., Ltd. and China Academy of Information and Communications Technology and released on-site at the "Cloud Native Industry Conference".
In the future, under the joint promotion of the cloud native community and the CNCF application delivery working group (TAG App Delivery), KubeVela will continue to develop in three aspects: standardization of delivery definition, diversification of operation and maintenance capabilities, and ecological management of the management system. Application delivery in a hybrid environment is as simple as we use the App Store today. We see that the open source community is proposing more standardized components, operation and maintenance features, plug-ins, step delivery and other capabilities around KubeVela's delivery model. We also welcome new and old community users to visit: https://github.com/oam-dev/ kubevela/issues/1662 to register and let the community hear the voice of every participant.
Subsequent version planning
It is the goal and vision of the Kubevela project to create an enterprise application operating system that is naturally oriented to a hybrid environment and allow developers to enjoy the process of delivering applications:
- In version 1.0, KubeVela implemented the basic application delivery core model, solved the key capability problem of "delivering everything", and created a programmable application delivery and management engine.
- In version 1.1, KubeVela further improved the capability set and workflow for multi-environment application delivery, and allowed users to have a complete experience through the command line, and launched a complete Chinese document.
In the next version 1.2, KubeVela will bring an application-centric control panel UI to realize convenient enterprise application assembly, distribution, and delivery processes, providing developers with a simpler application delivery experience, while covering edge application delivery, etc. More usage scenarios.
For more project Roadmap information, please refer to Kubevela RoadMap
Reference Information
Install and use immediately, please refer to the [Installation Guide] in the relevant link in the article
You can learn more about KubeVela and the OAM project through the following materials:
- Project code base: https://github.com/oam-dev/kubevela Welcome to Star/Watch/Fork!
- Project official homepage and documentation: https://kubevela.io , starting from version 1.1, Chinese and English documents have been provided, and developers are welcome to translate documents in more languages.
- Project DingTalk: 23310022; Slack: CNCF #kubevela Channel
- Join the WeChat group: Please add the following maintainer WeChat account first to indicate that you have entered the KubeVela user group:
Related links in the article:
1) Best practice documentation:
https://kubevela.io/docs/case-studies/multi-cluster/
2)Rollout Demo:
https://github.com/oamdev/kubevela/tree/master/docs/examples/workflow/canary-rollout
3) Progressive release based on Istio:
https://kubevela.io/docs/case-studies/canary-blue-green/
4) GitOps best practices:
https://kubevela.io/docs/case-studies/gitops/
5)Kubevela RoadMap:
https://kubevela.io/docs/roadmap/README/
6) Installation guide:
https://kubevela.io/docs/install/
link (1616a47414d55d https://kubevela.io) to view the official homepage and documentation of the !
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。