What is rapid development platform

Rapid development platform, as the name implies, can make the development of faster development platform, is a productivity tool to improve team development efficiency. In the past year or two, many domestic companies have paid more and more attention to the measurement and improvement of R&D efficiency. Based on the characteristics of software development, they cover four aspects: management and optimization, team engineering practice, individual engineering practice and optimization process. The rapid development platform mentioned in this paper can greatly shorten the demand cycle, and bring the advantages of fast development, fast online, low risk, low cost and low threshold to the research and development efficiency.

Take manufacturing industry as a comparison, known as the “mother of industry” mold can greatly improve production efficiency, and rapid development platform can also be completed in 1 minute demand development, online; In addition, 3D printers have brought important changes to manufacturing production, and rapid development platforms can also be used in a different way, using visual drag to complete requirements development. All industries are pursuing the ability to simplify and iterate quickly. So when low code exploded, we all thought we’d seen it in recent years, because companies and technologists were always looking for more productivity.

2. What we’re doing

At present, most of the rapid development products in the industry are aimed at solving enterprise-level application scenarios. Vivo browser, as the core product of the company’s Internet, requires more than 1000 management and control capabilities of operation background under the rhythm of agile development, and also requires high performance, high concurrency, high availability and fast response to demand. As a result, we are frequently given some tasks in our daily work: iterations do a lot of background development; Urgent needs need to complete the backstage development online within half an hour; A new feature needs to be added quickly to the online background.

In this context, in order to support rapid business iteration, rapid development products applied to the configuration and operations background are introduced. In general, we are constantly upgrading our architecture to enable rapid development around the following points:

  • Support background rapid design and development, as well as quick content delivery ability;

  • Support menu, user and other multi-dimensional permission control;

  • Support custom data flow;

  • Support developer secondary development and quick launch capabilities.

Three, product architecture two steps

Product architectures evolve to serve the business and evolve with business and technology trends. At the beginning, we started from the operation background development, and now we continue to provide high efficiency, high standard and fast response development solutions for the company’s business. Let’s start with the product and architecture.

3.1 Phase 1 (Platform Configuration)

At the end of 2017, with the upgrade of the kernel version, in order to cope with the cloud control requirements of the new kernel, the configuration platform came into being, and developed into one of the ten features of the kernel, and continued to provide services for dozens of businesses such as browsers, and entered the service club of ten billion requests within a year.

3.1.1 Platform Introduction

The biggest difference compared to jSON-editor, which generates pages quickly, is platformization and servitization. Based on a unified platform, it provides a form designer and data storage solution, supporting more than 20 component types and hundreds of component attributes. And provide a general background interface; And in the operation link preset anchor points, so that developers can easily do some customized needs of the development.

Therefore, platformization brings faster integration and upgrade capabilities to products, which enables users to continuously enrich form components and quickly enjoy powerful form DIY and cloud control capabilities. Servitization brings high-performance configuration delivery capability, and completes the entire configuration production, delivery and consumption life cycle through the SDK channels of each end. Let’s look at configuration build engines and code-free high performance services.

3.1.2 System Architecture

3.1.3 Form Designer and Rendering Engine

Form designer is a tool that abstracts background forms, summarizes, designs and defines components, and provides a set of visual operations to add design background components. Background generation engine is a powerful tool for us to quickly complete the development of the background. Based on this, we can complete a background development and online in 1 minute.

We abstract the background into layout, field and operation, and make infinite expansion based on the model of component + process to support complex and changeable business requirements. The following are briefly listed below:

1) Design a general template for the operation background on the main layout, and develop configurations based on it to be more rapid and standardized.

  • The main layout includes the global operation area, condition query area, operation rule area, table area, and configuration operation area.

  • Global operations are operations on forms, such as publish, add, batch modify, import, export, etc. Configuration operations include viewing details, editing, deleting, previewing, and approving a configuration.

2) Background definition can help complete a series of background design functions such as form name, permission control, data model definition, portal integration, background form operation and so on. Split the data structure into base components and composite components for orchestration.

  • The basic form fields are mainly composed of text, value, selection, picture, file, time, label and other components, and the corresponding components are enhanced in the configuration of attributes, such as text length verification, regular verification, picture size verification, whether the list is hidden, whether it can be exported, etc.

  • Composite components mainly include subform components that support tree data structure configuration, combination of multiple basic components, and a list of multiple composite components, etc.

3) The process operation section mainly creates the data process of editing, deleting, publishing, preview and review in the operation background.

3.1.4 No code platform service

If low code background is the first step for us to achieve rapid development, then the integration of low code capability with intelligent delivery and cloud control platform services is the core factor for transforming from tools to platforms.

3.1.4.1 Smart Placement

Intelligent delivery is an API technology of real-time data arrangement and dynamic calculation. Together with the channel construction of SDK of our client and server, it is a code-free solution to quickly realize the requirements. It can bring to platform development the ability to:

The content configured in form A can be delivered directly through the interface. The interface can also deliver the newly added or modified fields automatically.

Form A can be combined with form B, which can be arranged and packaged together for delivery, or it can be combined with the independent processing and stitching logic of infinite forms such as B, C and D.

Form A can be linked to form B data for logical processing (expression) and assembly and arrangement to achieve more complex business requirements;

There’s a lot of data choreography and gameplay that I won’t go over here.

3.1.4.2 Cloud Control

Cloud control is a solution to realize online intelligent operation. Currently, it supports but is not limited to customized control elements such as region, operator, crowd portrait, crowd gray scale, client version number, Android version and so on to control delivery.

3.1.4.3 Intelligent Push

By combining its own control and configuration capabilities and system push capabilities, it provides such a more real-time touch solution starting from the background for the operation.

3.2 Stage 2 (Low Code Platform)

In 2021, as the industry’s low code wave hit, we realized some of the limitations and wanted to move further toward productization and a broader management background, so we started again.

3.2.1 Platform Overview

Houyi is a product that fits the definition of a low-code platform, providing a development language with visual choreography capabilities. Compared with the first-stage configuration platform, the home page portal, operation platform, developer platform and technical document platform are designed to provide secondary development and ecological construction capabilities, support various data channel development methods, and greatly improve the product strength. Ultimately, it’s all about making the transition from a technology platform to a technology product and making low-code development easier to understand and faster to develop.

3.2.1 System Architecture Diagram

3.2.3 System Description

3.2.3.1 Developer platform & Operation platform subsystem

The developer platform is the core product of the whole platform, and the developer is also the core user of the platform. We provide the developer with one-stop project, module, menu and page making ability.

  • Users can create projects on the developer platform. Once created, a background portal is automatically generated;

    Then create a directory and menu to enter the editing platform and experience the ability to develop quickly and visually. In addition, you can also complete development quickly by presetting a variety of powerful templates.

3.2.3.2 General Storage Subsystem

General storage provides a set of standardized storage solutions for operational data, supporting users to flexibly use their own warehouses, onshore external warehouses and other data sources.

  • Different from the low code pure form driven, model driven; The corresponding data model can be intelligently generated after the visualized development.

  • The system has a series of general operation background operation interface to complete the corresponding operation behavior; It also provides some common data processing processes and uses secondary development to enhance the business.

3.2.3.3 Open Platform subsystem

The open platform is a link between our platform and external data. It is a two-way data synchronization channel, providing real-time reception, asynchronous batch and other synchronization methods, with authentication, frequency limit and other security measures. In addition, the system is also a window for us to adapt to third-party services.

3.2.3.4 Delivery platform subsystem

The distribution platform is a distribution channel to achieve flexible distribution of configuration. It retains the mature distribution ability and SDK integration ability of the configuration platform, and also integrates some business capabilities such as content library and advertisement more to enrich the business attributes of our distribution.

3.2.4 Product Display

1) Display of portal, operation and document platform

  • Portal: presents the introduction and capabilities of the platform, and synchronously integrates other Houyi products.

  • Operation platform: integrated access system, module, menu, TAB, to provide the most simplified operation for each operation team.

  • Documentation platform: Maintain houyi’s operational documents, design documents, deployment manuals, etc.

2) Display of editing platform

Provides wySIWYG visual development capabilities, but also provides a number of templates for quick and easy development.

Write at the end

After completing the capacity construction in the above two stages, we have the capability of rapid development of the operation background, which can quickly complete the development and go online, and greatly improve the research and development efficiency. At the same time, we also face whether the configuration language is standard, whether visual operation is easy to use, whether developers are easy to use, whether more complex background requirements can be achieved, and the impact of rapid development on the existing product development process and other problems and challenges. In spite of this, we will also keep simple, easy to use and boundary product characteristics in product design, and always adhere to the concept of rapid development.

This series will continue to update the general interface, data processing, storage solutions, ecological construction and secondary development capacity, high-performance API practice, disaster recovery capacity building and other articles, please look forward to it.

Author: Lu Xiaohu, Vivo Internet Server Team