RainBond 5.3.1 was released to support one-click delivery of large applications with 100+ components

On July 5, 2021, RainBond 5.3.1 was officially released.

RainBond is a cloud-native and easy-to-use application management platform. Best practices for cloud native application delivery. Focusing on the concept of application as the center, enabling enterprises to build cloud native development cloud and cloud native delivery cloud.

For enterprises: RainBond is an out-of-the-box cloud-native platform that enables rapid cloud-native transformation of enterprise R&D and delivery systems.

For developers: Develop, test and operate enterprise business applications based on RainBond, with full cloud-native capabilities right out of the box. Including, but not limited to, continuous integration, service governance, architecture support, multi-dimensional application observation, and traffic management.

For project delivery: Build a product versioning management system based on RainBond and build a standardized customer delivery environment that automates, simplifies and manages traditional delivery processes.

In the past year, open source users using the RainBond Cloud native application delivery process (see the figure below) have become mainstream, and the business complexity of different users has put new requirements on the performance of the RainBond delivery process. In the four months since the 5.3.0 release, RainBond developers have focused on the performance optimization of the delivery link as the main iteration direction.

In the fields of industrial Internet, smart park construction, smart city construction and so on, most application solutions have 50-100 service components. In these industries, it is common for multiple application vendors to collaborate on a solution. RainBond provides several capabilities in this process:

(1) Standardize the application delivery model, unify the application delivery standards of various application manufacturers, and enable industry integrators to integrate low-cost solutions.

(2) Unified delivery environment, one-key implementation of application delivery. Significantly reduce the cost of demo scenarios, POC scenarios and final delivery during the sales process.

(3) Intelligent application of operation and maintenance management to reduce the cost of operation and maintenance for final customers.

The key changes

Supports 100+ component scale application delivery

Based on the RainBond application delivery process described above, the current release is optimized in four dimensions: application model release, application model installation, application upgrade, and application lifecycle management. Taking the application model installation as an example, the installation process of 100 components requires the invocation of a large amount of computing resources, the control of component startup sequence, the control of microservice system registration and configuration distribution.

<center> Multicomponent Application Installation and Upgrade Demo </center>

HELM Application Installation and Management (BETA)

Rainbond’s lack of support for Helm’s application installation and management has long been a pain point. RainBond’s product form is cloud-based native application management centered on managing custom application specifications. Unlike other containerized platforms, we do not provide Kubernetes’s native resource management panel. Therefore, in the face of the flexible Helm application package, we do not have a good way to translate all Helm applications into RainBond application specifications. In the implementation pattern of the OAM specification, one idea is to define each HELM application as a custom component type, which can be identified as a resource type to achieve some operation and maintenance capability injection. We believe that this mode of fine management has advantages, but the user landing cost is very high.

In the current release we adopt a new schema for installing and managing Helm applications. We positioned it as a complement to RainBond’s native application, as a vehicle for deploying some middleware, so we focused on addressing the following issues:

(1) How to connect the applications installed by Helm to the Rainbond ServiceMesh microservice architecture so that native applications can call Helm applications?

(2) How to connect the applications installed by Helm to the Rainbond Gateway for external access and traffic governance.

(3) How much Helm’s application management capabilities support.

We define the Kubernets custom resource HelmApp to implement the multi-cluster deployment of HelmApp. Once you connect to the Helm App Store, you can select an app to install. In the installation process, the configuration specification of Helm application is fully supported for application configuration. Meanwhile, the configuration form specification defined by Rancher is also supported to realize the automatic generation of configuration form. Helm automatically identifies its Service resources after application deployment, registers the Service, and implements Rainbond micro-service and gateway system access.

Step by step adapt to the OAM application specification

Starting with version 5.3.1, we have been gradually adapting the OAM application specification to improve RainBond’s scalability. In the current version, we re-implement the third-party component type based on the OAM specification, define the ThirdComponent as the first ComponentDefinition, and implement the basic management mechanism of ComponentDefinition in the product. Next, the two existing built-in component types in RainBond are progressively defined based on ComponentDefinition implementations. It then opens up the ability for users to scale themselves. RainBond provides the entire support system, including common operational feature capability injection, configuration UI, common microservice governance and traffic management, application packaged delivery, etc.

Detailed change point

New features

  • 【 App Store 】 Support HELM application repository docking;
  • 【 Application Management 】 Support HELM application installation and configuration;
  • [Microservice Governance] Support access to Helm installed applications through gateways or internal components depending on two ways;
  • 【 micro-service governance 】 new GRPC protocol service governance capability;
  • [Microservice Governance] Added control of container start sequence under component, realizing Mesh container start before business container start;
  • [Component Management] Added third party component based on Kubernetes Service discovery type;
  • Go 1.14, 1.15, 1.16 Runtime support added to the Go language.
  • Go language added to the build module and start command configuration;
  • Java, Go, PHP and other languages added pre_build, post_build shell hook support;
  • 【 enterprise management 】 user management of the new user team and role of the batch management ability;
  • [Enterprise Management] The newly opened functional entrance of cluster in team management;
  • [Cluster installation] Support RKE cluster configuration to achieve flexible adjustment of cluster node configuration;

Optimization function

  • 【 Performance 】 Application upgrade system optimization, support 100+ components batch upgrade;
  • [Performance] Optimized by installing components from the App Store, supporting batch installation of 100+ components;
  • 【 Performance 】 Improve topology loading logic to speed up topology loading in large applications;
  • [Performance] Optimizes the performance of the application-level lifecycle operation API in the case of a large number of components;
  • [Stability] Apply gateway optimization to solve the fault of memory leakage caused by abnormal application access;
  • [Component Management] Support null environment variables and configuration group variables;
  • [Monitoring Alarm] Remove the wrong node health detection alarm policy;
  • [Component Management] Refactoring the implementation of local storage types of components to support reuse of cluster scheduling policies using local storage components;
  • [Internal Component Library] Added application model version management, support to display version introduction in the release page;
  • [Component Management] Support component setting custom hostname resolution record;

BUG fix

  • [source build] fix. NetCore source build task can not end fault;
  • [Console] Fixed the fault that the gateway policy search function is not available;
  • [source build] fix the failure of source build cannot be executed after Maven configuration is deleted;
  • [Stability] Fix the wrong gateway policy parameters leading to gateway failure;
  • [Component Management] Fix the fault of inconsistent number of component instances;
  • [Stability] Repair RBD-worker system component due to unstable ETCD abnormal restart fault;
  • [Application Management] Fix the fault that the application backup is not available when docking to the non-HTTPS mirrored warehouse;
  • [Cluster installation] Fixed the failure of inconsistent certificates in the cluster mirror warehouse;

community

If you are interested in the RainBond project, if you have some questions, if you are interested in cloud native, Kubernetes and other technologies, please join the RainBond community pinning group.

Please refer to the documentation for installation: quick installation

Upgrade from 5.3.0 to 5.3.1: Upgrade the reference documentation