Community Blog KubeVela v1.2 Focuses on the Developer Experience and Simplified Multi-Cluster Application Delivery

KubeVela v1.2 Focuses on the Developer Experience and Simplified Multi-Cluster Application Delivery

This article discusses the release of KubeVela v1.2.

As cloud-native technologies grow continuously, more infrastructure capabilities are becoming standardized PaaS or SaaS products. Nowadays, you don't need a whole team to build a product. Many services can help with software development, testing, and infrastructure operations. As the culture of agile development and cloud-native technologies expands, more roles can be shifted left to developers, such as testing, monitoring, and security. As emphasized by the DevOps concepts, it can be done in the development phase for the work of monitoring, security, and operations via open-source projects and cloud services. This also creates challenges for developers, as they might lack control of diverse products and complex APIs. They have to make choices, and they need to understand and coordinate the complex, heterogeneous infrastructure capabilities to satisfy the fast-changing requirements of the business.

This complexity and uncertainty have undoubtedly exacerbated the developer experience, reducing the delivery efficiency of the business system and increasing the operational risks. The tenet of the developer experience is simplicity and efficiency. Developers and enterprises must choose the appropriate developer tools and platforms to achieve their goals. This is also the focus of KubeVela v1.2, an upcoming release that will build a modern platform based on cloud-native technologies and cover development, delivery, and operations. The following diagram shows KubeVela architecture and how developers only need to focus on applications and use differentiated operational and delivery capabilities around the applications.

Pic 1 – KubeVela Architecture

The History of OAM and KubeVela

Let's review the history of OAM and KubeVela to understand how it was formed:

  • The Birth and Growth of Open Application Model (OAM)

If we want to create simplicity in a complex world, the first problem we need to solve is, "How can we make standard abstractions?" OAM creatively proposes two ways of separation:

  1. Separation between applications and resources
  2. Separation between development and operation

In an ideal world, the operation can be fully automated. It is a cloud-native application specification that provides everything-as-a-service, a complete modularity design. The spec has been getting traction from major vendors worldwide since its announcement. We all share a common goal -- to reduce the learning curve and provide Lego-style application invention for developers.

  • The Release of KubeVela v1.0 Offers OAM Spec Implementation

Advanced community users can create tools to build practical solutions using the application specification as a guide. However, it is inaccessible to most developers. KubeVela was born as the community standard implementation to solve this problem. It absorbs the good parts from the latest Kubernetes community development and provides automated, idempotent, and reliable application rollout controllers. KubeVela can empower developers to deploy OAM-compliant applications quickly with its features.

  • The Release of KubeVela v1.1 Provides Delivery Workflow, Making Multi-Cluster Rollout Controlled and Simplified

As more enterprises adopt the cloud, hybrid and distributed cloud will become the norm in the future. KubeVela has been designed and built based on hybrid cloud infrastructure as a modern application management system. We anticipate that the architecture of modern enterprise applications will be heterogeneous, considering the factors of availability, performance, and data security. KubeVela v1.1 added a new feature to achieve a programmable delivery workflow. It natively fits the multi-cluster architecture to provide modern multi-cluster application rollout.

By the time of 2022, on the road to serve developers, KubeVela has gone to the fourth phase. It will empower developers to conduct multi-cluster rollout easier.

The Core Features of KubeVela v1.2

The New GUI Project: VelaUX

The best choice to reduce the developer's learning curve is by providing an easy-to-use UI console. Since its inception, the KubeVela community has been asking for UI, and it was added to KubeVela v1.2. Providing GUI will help developers organize and compose heterogeneous applications in a standard way. This will also help them analyze and discover business obstacles quicker.

VelaUX is a frontend project of KubeVela with an extensible core design. It introduces a drag-and-drop form for low-code experience users that takes users' input based on dynamic components. We designed the frontend description spec UISchema with X-Definition and multi-dimensional query language VelaQL to achieve this. This design makes the foundation for the heterogeneous application delivery architecture of KubeVela.

Users can manage add-ons, connect Kubernetes clusters, distribute delivery targets, set up environments, deploy all kinds of apps, monitor runtime status, and achieve full lifecycle management of application delivery from the GUI.

Pic 2 – KubeVela Application Dashboard

Please refer to the Core Concepts documentation to learn more details about the GUI.

Unified Multi-Cluster Control

KubeVela will manage N Kubernetes clusters and N cloud vendor services in a big unified infrastructure pool. This way, our developers can set up different environments based on business requirements, workflow policies, and team collaboration needs. This will create separate environment workspaces from the big infrastructure resource pool. One application can be deployed into multiple environments, and environments are isolated in management and runtime.

Pic 3 – KubeVela Application Status

As shown above, an application can be deployed to the default environments or other custom environments, such as test or prod. Each environment can include multiple delivery targets. Each delivery target indicates an independent, separate Kubernetes cluster.

Heterogeneous Application Architecture

In terms of cloud-native technologies, we have many options to build application delivery solutions. Based on Kubernetes, we can use mature technologies, such as Helm Chart, to deliver middleware and third-party open-source software. We can deliver enterprise business applications via container images and use OpenYurt to deliver and manage edge applications. Based on the open technologies of cloud services, we can deliver database, message queues, cache, and middleware, including operational features, such as logging and monitoring.

KubeVela adopts OAM as the standard application definition to manage heterogeneous application architecture uniformly. KubeVela provides a highly extensible delivery core engine. Users can use the built-in plugins or install more to extend the platform and manage application deliveries consistently. On top of KubeVela, users see the modular, everything-as-a-service control plane.

Pic 4 – Cloud Resources Deploy

As shown above, users can deliver cloud resources on the application management page conveniently. Developers can read the following docs to understand the full delivery process of the heterogeneous application architecture:

  1. Deliver Docker Image
  2. Deliver Helm Chart
  3. Deliver Kubernetes Resources
  4. Deliver Cloud Resources

Extension System

KubeVela has been designed as an extensible system from the beginning. The aforementioned heterogeneous application architecture can be achieved via KubeVela's extension system. It can be extended via standard interfaces and plug in as many capabilities as you want. This will match the differentiated requirements of enterprises while reducing the cognitive burden incurred while learning new things. KubeVela's extension system includes component types, operational traits, workflow types, and delivery policies. We have the add-on management system in the current release. An add-on packages the extension capabilities for easy distribution.

Pic 5 – KubeVela Add-Ons

Currently, we provide an official catalog with the pre-packaged add-ons shown above. Meanwhile, we can collaborate with community users in the experimental catalog repo to create more capabilities.

KubeVela has grown into an application delivery platform that serves developers directly. Which enterprise scenarios can utilize KubeVela? The section below lists some common scenarios:

Enterprise Software Delivery Solutions

Multi-Cluster DevOps

Today, many enterprises' software delivery looks like the following diagram. They use the compute resources from cloud vendors for the demo and production environments, but they use their in-house server farm for the development and testing environments. If any business applications have multi-region disaster recovery requirements, the production environments can span multiple regions or clouds.

Pic 6 – DevOps Pipeline

The basic DevOps workflow includes code hosting and the CI/CD process. KubeVela can support the CD process. The practical steps for enterprises are listed below:

  1. Prepare local and cloud resources according to your needs. Make sure local and cloud resources are connected to the same network plane for unified resource management.
  2. Deploy KubeVela into the production environment and ensure its accessibility.
  3. Install a DevOps toolchain via KubeVela, such as Gitlab, Jenkins, or Sonar. Usually, the accessibility of code hosting and developer toolchain are critical, and we must deploy them to production environments. Unless your local clusters can ensure accessibility, can hope the business code to exist in local environment, then you can deploy them to local clusters.
  4. Set up local development environments via KubeVela and deploy testing middleware locally. Set up cloud middleware in production environments.
  5. Set up business code CI pipelines via Jenkins, generate a Docker image, and send it to KubeVela for multi-environment deployment. This will make up an end-to-end application delivery workflow.

Using the KubeVela multi-cluster DevOps solution will provide the following advantages:

  1. Developers don't need to know any Kubernetes knowledge to achieve heterogeneous cloud-native application delivery.
  2. Deploy multi-cluster applications natively with unified multi-cluster, multi-environment management in a single control plane
  3. Unified application management mode, regardless of business applications or developer toolchain
  4. Flexible workflow to help enterprises glue various software delivery processes in a single workflow

Unified Management of Heterogeneous Environments

Different enterprises face different infrastructure and business problems and requirements. On the infrastructure side, enterprises could build an in-house private cloud, buy some public cloud resources, and own some edge devices. On the business side, the variance of scale and requirements will lead to multi-cloud, multi-region application architecture, while keeping some legacy systems. On the developer side, developing software will need various environments, such as development, testing, staging, and production. On the management side, different business teams need isolation from each other while opening up connections between some business applications.

In the past, it was very easy to become fragmented between different business teams inside enterprises. This fragmentation exists in the toolchain, technical architecture, business management. We take this into account while being innovative with technologies. KubeVela brings a new solution that pursues unified management and extensible architecture with good compatibility:

  • On the infrastructure side, we support different API formats to model all kinds of infrastructure, including Kubernetes API, cloud APIs, and custom APIs.
  • On the business architecture side, the application model is open, and the platform is agnostic. KubeVela provides the ability to connect and empower businesses.
  • On the Developer toolchain side, there might be different toolchains and artifacts in the enterprises. KubeVela provides the extension mechanism and standard models to combine different kinds of artifacts into a standardized delivery workflow. Surely, its standards are shifting left and empowering enterprises to unify toolchain management. You don't need to focus on using Gitlab or Jenkins because KubeVela can integrate both.
  • On the operations side, the operational capabilities and toolchain solutions can be unified under KubeVela standards in the enterprises. Moreover, the community operational capabilities can be shared and reused easily via KubeVela extensions.

Thus, KubeVela can be used to connect different stages inside the enterprises and unify all capabilities in a single platform. It is a practical and future-proof solution.

An Enterprise Internal Application Platform

Many enterprises that have enough development power will build internal application platforms because they can customize the platform and make it very easy for their use cases. In the past, there were many PaaS platforms born from Cloud Foundry. We all know the stereotypes that say application platforms will not satisfy all enterprises. If the application package format and delivery workflow can be standardized inside enterprises, all users need to do is fill in the image name. However, in traditional PaaS platforms, developers have to understand a bunch of so-called general concepts. For example, if an enterprise wants to deploy AI applications, and there is some difference in AI application architecture, we have to create such AI PaaS. Then, enterprises have to pay more fees and learn more concepts.

Therefore, when general products cannot satisfy the needs of enterprises, they will consider developing one on their own. However, it takes many resources to build an internal platform from scratch. Sometimes, it surpasses the investment of their core business. This is not a feasible solution.

Are you more familiar with the motivations and history of KubeVela after reading our introduction? No product is a silver bullet, but our goal of creating a standardized model to empower more enterprises and developers to participate in the path towards building simple and efficient developer tools remains. KubeVela is still in the early development phase. We hope you can join us to develop it together. We want to thank the 100+ contributors who contributed to KubeVela.

Join the Community

Collaborate on OAM Specification

OAM spec is the cornerstone of modern application platform architecture. Currently, OAM spec is driven by the implementation of KubeVela for future improvement, but the spec did not rely on KubeVela. We highly encourage cloud vendors, platform builders, and end users to join us and define OAM spec together. We highly appreciate that vendors like Tencent, China Telecom, China Unicom have supported OAM spec and started collaborative work. Every person and organization is welcome to share ideas, suggestions, and thoughts.

Community Repo: https://github.com/oam-dev/spec

Collaborate on the Add-On Ecosystem

As mentioned above, we have created the add-on extension system, and we encourage community developers to contribute tools and share thoughts.

Community Repo: https://github.com/oam-dev/catalog

How to Contribute an Add-On: https://kubevela.net/docs/platform-engineers/addon/intro

Contribute Cloud Resources

KubeVela integrated the Terraform Module with Terraform controller to extend cloud resources. We have supported several cloud resources, and we encourage community developers or cloud providers to contribute more.

How to Contribute Cloud Resources: https://kubevela.io/docs/platform-engineers/components/component-terraform

Provide Your Feedback

We welcome everyone to participate in the KubeVela community discussion, whether you want to contribute code or learn more!

Community Repo: https://github.com/oam-dev/kubevela

KubeVela is a CNCF sandbox project. Learn more by reading the official documentation: https://kubevela.io/docs/

0 0 0
Share on

You may also like


Related Products