Tencent Cloud's low-code platform is an efficient and high-performance enterprise-level low-code platform. Help developers quickly build small programs, H5, and PC WEB applications that support a variety of business scenarios. Through simple drag-and-drop operations, without writing complex code, you can write less code or no code, and you can quickly and efficiently complete business goals. .
This article will take you to talk about the technical architecture of Weida in depth to understand how Weida safely, stably, and reliably supports commercial-grade applications from construction to release.
01 Low-code platform evolution
1. Low code concept
Low-code is a development platform that can quickly generate applications without coding (0 code) or with a small amount of code.
Using a visual approach to application development, developers with different experience can create web pages and mobile applications with a user , -and-drop components, and model-driven logic.
2. Low-code derivative process
- In the 1980s, the fourth generation of programming languages appeared.
- The birth of the VPL visual programming language in 2000 is the precursor of low-code products, which can be operated through some visual interfaces.
- 2014 Industry consulting firm Forrester Low-Code/Zero-Code Concept.
- In 2016, domestic low-code platforms were released one after another.
- In 2018, Gartner, an industry consulting firm, proposed the concepts of aPaaS and iPaas.
- In 2021, the low-code ecosystem in the Chinese market will be gradually established.
3. Why use low code?
1) Cost reduction and efficiency increase, convenient development
Low-code development can reduce costs and improve efficiency for enterprises. In the past, before the emergence of low-code platforms, traditional native code development platforms required code development, and after the development was completed, a series of tedious tasks of testing and bug fixing were required.
In addition, the traditional native code development platform involves a serial development model in which some upstream and downstream partners are tightly coupled, the relying party does not provide an interface, and the upstream service has no way to develop the interface. This adds a lot of communication and time costs to the development process.
After the emergence of the low-code development platform, R&D personnel can realize the requirements through the front-end graphical drag-and-drop, which improves the R&D efficiency. The use of the low-code platform reduces the workload of the R&D personnel and the requirements for the development skills of the coders. The low-code platform applies encapsulated code, which basically eliminates the link of testing and fixing bugs. At the same time, the low-code development platform is a loosely coupled concurrent development model, which greatly reduces the dependence on partners in development, thereby reducing communication and time costs.
2) Breaking business silos and enhancing cross-functional communication
Under the traditional development model: business, product, design, development, testing and operation and maintenance personnel perform their own duties, and each has a set of tools and languages in the field. It has been easy to form "silos" for a long time, allowing cross-functional communication becomes difficult and inefficient.
With low code, we can develop quickly based on low code, and this situation will be improved. Because low-code is easy to get started with, without too much professional training, business personnel can also get started quickly and quickly generate applications based on templates or visual interfaces through "drag and drop", thereby breaking business barriers.
3) Improve product flexibility
Enterprises can take advantage of low-code platforms to easily change applications and business processes without spending a lot of time writing code. The flexibility, operability and changeability of applications and systems are greatly improved.
4) Accelerate digital transformation
In the new normal of the economy, in order to improve operational efficiency and performance, digital transformation is the goal of most traditional companies, and low-code technology can help companies complete digital transformation faster and better.
Compared with pure code development, using low-code to develop enterprise applications can greatly shorten the project delivery cycle, so that project delivery can be completed more agilely, and the speed of enterprise digitization can be greatly improved. Behind the agile delivery are more iterations and a substantial improvement in the degree of fit between the software system and the enterprise, which is the key to the success or failure of an enterprise's digital transformation.
full code & low code & no code
A quadrant diagram is used here to illustrate the evolution direction of low-code in the industry. First, from the arrows in the figure, from the lower left to the upper right, we gradually evolve from the traditional programming mode to codeless.
The code programming in the lower left is our traditional programming stage. The premise is that some relatively strong programming skills are required. From early low-level languages, to high-level languages, to the provision of class libraries, and the use of components.
The no-code operation on the upper right refers to the no-code, general-purpose SaaS products that allow us to operate and generate applications easily and quickly, but their flexibility is not enough. If we want to support flexibility and scalability, we often need to change. them.
Is there a better way to support this situation? I think the ideal situation is to develop a sufficiently flexible and versatile application even if the developer does not know the front-end language (JavaScript, etc.) or the back-end language (Php, Java, etc.). In my opinion, the low-code platform is the closest approach to this field, because it can take into account flexibility and business logic at the same time, so as to achieve the ideal state that is most suitable for the needs of developing Xiaobai.
5. Low Code Market Analysis
The low-code industry has been under the spotlight of the well-known consulting firm Gartner in recent years. At present, many companies at home and abroad are joining the construction of low-code platforms, which is enough to show the market recognition of this industry.
According to the market analysis of the consulting agency Gartner, in 2023, large and medium-sized enterprises with more than 50% will take the low-code application platform as one of the main occupation application platforms. It is expected that by 2024, low-code application development will account for more than 65% of total application development .
6. Low-code platform core capabilities
I think there are four core competencies for low-code platforms:
- Visual development
- data model driven
- Extensibility
- Engineering
The following analyzes the above four points one by one:
(1) Visual Development
Business personnel can simply drag and drop based on visual pages or tools to form a page of information.
They can also configure and define data sources and data models based on the visual interface, and simply define a process that can execute workflows.
All in all, the front-end drag and drop can form the front-end interactive language, and then generate the computer language that the back-end can execute.
(2) Data Model Driven
The low-code platform can define a model definition through operations on the page, flexibly define fields in the model, and perform associated operations on related data tables, as well as set the rules and indexes of the data model.
a. Model Definition
Design database models, add fields, set field types and indexes
b. Model Association
Establish the relationship between database tables and tables, which is specifically expressed as 1-to-n, n-to-n, n-to-1, 1-to-1 and other association relationships
c. Data manipulation
Provide a CRUD operation based on the database table, so that the application can operate the data model
(3) Extensibility
Refers to whether the low-code platform can provide some mechanism for extension.
There are three specific expansion methods:
a. Extended language
Can the low-code platform be extended with a language that I am familiar with? If I am a front-end developer, can I provide a front-end familiar language to expand? If I am a back-end developer, can I write some back-end code (Java, Go, etc.) ) to expand.
b. Logical extension
Whether the low-code platform can also expand the business logic by defining some flowcharts to execute the business if and else processes to make some business calls.
c. API integration
Whether the low-code platform can be integrated with the existing systems or services of third-party companies through the applications built on the low-code platform, and whether it can be integrated through the API in the low-code platform for my application to call for integration.
(4) Engineering
Whether the low-code platform can perform local development and debugging, version control, automatic build and release, free shipping, and some capabilities for monitoring. Simply put, whether it is a one-stop package on the platform.
a. Extended language
The low-code platform should be able to perform local development and debugging.
b. Version management
The low-code platform can perform version rollback operations, and has the ability to reserve the experience, and the rollback experience will not affect the product in the release state.
c. Automation
The low-code platform can automatically build one-stop capabilities for release, free shipping, and supporting monitoring
02 Micro-build low-code architecture and development introduction
1. Introduction to micro-build low-code
micro-build low-code platform is an efficient and high-performance drag-and-drop low-code development platform, which connects the front-end industry business upwards and the massive capabilities of cloud computing downwards, helping enterprises to vertically go to the cloud. Microtop uses cloud development as the underlying support, and cloud-native capabilities open up the entire link of application construction and provide a highly open development environment.
Microtop Low Code is a combination of Low Code Application Platform (LCAPS) + Multidimensional Experience Development Platform (MXDP).
We have the following capabilities:
1) Multi-terminal support
A set of codes that can support multi-terminal, applet, web, and pc at the same time.
2) Ecological integration
We have internally integrated Tencent documents, Tencent conference, WeChat payment, Qiwei and other capabilities, which can provide users with one-stop capabilities.
3) Higher order component
High-level components such as model components and enterprise workbenches are provided internally.
out of the box
It provides out-of-the-box capabilities, and can quickly conduct business development and release through our application market and template center.
Cloud integration
The bottom layer is the serverless cloud native technology , the business development is completed, the business is free of operation and maintenance and free of deployment.
Unified management
Provides the specification of framework development, which is convenient for unified management.
High scalability
Support high scalability, high scalability can customize components and third-party data sources to complete the expansion of custom logic.
mixed development
The business model supports visual development and low-code development capabilities.
2. Micro-build low-code product architecture
Microtop low-code provides a one-stop low-code development service for application development, from the iteration of underlying capabilities to industry-level solutions, cloud-native full-link support escorts your applications, allowing you to fully focus on business scenarios, Xiaobai You can also quickly build mature and professional applications.
3. Micro-build low-code backend practice
Let's take a look at the back-end practice of micro-build low-code, then we think about what problems need to be solved in the back-end low-code? I think there should be four points, and how it is practiced on the micro-build low-code platform:
1. How to store business data? How to implement custom data store?
Micro-build low-code abstracts the data model.
2. How to realize business process flow?
Micro-build low-code is based on workflow for business process flow.
3. Who can access and control business data and process flow?
We built a low-code user authority platform to control personnel roles.
4. How to customize the extension of server logic?
We build low-code through cloud functions to achieve custom expansion capabilities of back-end services.
Therefore, our micro-build low-code back-end development practices are divided into the following four types:
data model, workflow, role permissions, server extensions.
Let's take a look at how each is designed:
1. Data model
The data model is extended based on the industry standard capability JSONSchema. The data model is divided into two types: internal data sources and external data sources.
Data Model - Internal Data Source :
Provides us with data model definitions, indexes, and relationships between various data models.
We can flexibly customize data fields and field indexing functions.
It can also provide standard general capabilities, such as adding, deleting, querying, and updating.
Data Model - External Data Source
connector :
Connectors can access external application data or call services opened by external applications. Developers only need to authorize the connector or fill in a small amount of configuration information to use the service interface of the corresponding product.
We internally integrate some enterprise-level applications, such as Tencent Conference, Tencent Documents, Tencent Maps, WeChat Pay and other applications, to facilitate and quickly provide some enterprise-level capabilities to developers.
Custom Connector
Custom connectors support calling third-party service interfaces or using code to implement business logic. Developers can use it in applications, workflows, and custom data models.
Divided into http and cloud function modes:
http: Open API, users can link to external services and integrate with external APIs.
cloud function mode: fully customized , When users cannot meet all the above scenarios, they can manually write some code through cloud functions to customize some logic and realize business logic expansion.
2. Workflow
The workflow is extended based on the industry standard bpmn protocol, and the data display and storage are based on standard JSON for higher readability.
Trigger time of micro-take workflow:
- Configurable trigger timing:
Immediate timing and timing triggering are also supported. You can configure some nodes to perform business logic operations.
- Operation node:
We support operations such as approval nodes, automation nodes, data source change notifications, signing, and re-signing. The notification node is integrated with the message template, which can send system internal messages, get through with Qiwei, and send Qiwei system messages. We also support local debugging and version backtracking capability .
3. Role permissions
The role permissions are designed in accordance with the RBAC model as a whole, and can be flexibly extended in business. Which pages, data sources, and process permissions can specific users access, we also support setting some permission sets to flexibly expand business permissions.
As you can see from the figure below, we can control the access permissions of ordinary applications, page permissions, and button permissions under the page, as well as the permissions of model applications;
It can control the row records of the data source, the data source method permissions, the data source column permissions, the access permissions of the process, and the access and login permissions of the enterprise work.
4. Server extension
Server-side expansion is based on the capabilities of cloud functions, and server-side logic is expanded by writing code through page visualization. You can do some aggregation of data tables, as well as operation methods such as CRUD.
Cloud Function (Serverless Cloud Function, SCF) is a serverless execution environment provided by Tencent Cloud for enterprises and developers to help you run code without purchasing and managing servers. You only need to use the language supported by the platform to write the core code and set the conditions for the code to run, then you can run the code elastically and securely on the Tencent Cloud infrastructure.
4. Micro build application development process
Here, we will introduce the life cycle of quickly building an application based on micro-build, drag-and-drop, the entire life cycle of low-code application development and operation, and what low-code does in the design and running states.
In the application development process of micro-build, the life cycle of micro-build application is divided into design state and development state.
1) Design state
We use the front-end visual interface and components to define the form and define the model association. We can also configure users and permissions for forms, and configure some workflows through pages. We can drag and drop to configure some pages to generate the DSL of the pages. Configure the data model to generate the JSONSchema DSL for the data. Configure the BPMN extension of the process generation process, bind user permissions based on roles, and generate a DSL for the RBAC model.
At the time of release, our front-end H5 will generate Reat code, and the applet will generate applet code. After the release, the front-end code will be released in static hosting, and the server-side custom extension service logic will be deployed in cloud functions.
2) Running state
Customers will initiate calls from the web or applet, and will pass through our static hosting, cloud functions and cloud databases through access, and then divide the request into the back-end centralized service on the micro-build side and the third-party service of the enterprise.
5. Micro-build high availability service capability
A highly available service needs to be considered in terms of deployment, changes, plans, monitoring, and security. Achieving the goal of high availability of 99.99% services requires the joint efforts of engineers in all roles. This article briefly introduces the practice of Weichai in eliminating single points and elastic scaling.
Eliminate single point
There are two scenarios for a single point: one is that a module the second is that although a module deploys multiple instances, the of any instance will cause the service as a whole or a large area to be unavailable. . How to identify system single point? Find out if there is a single point in the system by troubleshooting the number of instances of the module and conducting destructive testing. For a known single point, you should try your best to make a plan to reduce the failure time.
In response to this situation, micro-build one is to deploy multiple PODs in each cluster to eliminate the single point in the cluster, and the other one is for the case of cluster 1 as a whole hangs up, you can also quickly switch the cluster to eliminate the single point and ensure the service. stability.
expansion
Elastic scaling is based on business needs and policies, for stateless services, through timing, threshold setting, etc., to automatically adjust the cluster size, for example, for disaster scenarios as big promotion, computer room failure, etc., it can be well improved. availability. Scaling, as the name suggests, has the characteristics of scaling and shrinking, which may allow the cluster to maintain a reasonable scale, thereby avoiding unnecessary waste of costs. Therefore, elastic scaling is also an important means for the system to maintain availability under normal conditions.
Microtop is based on the cloud-native capabilities of serverless automatic elastic scaling to ensure the overall high availability of our back-end services. When the traffic is high, it will automatically expand the machine, and when the traffic is low, it will shrink the server in real time.
03 The Future Trend of Micro Low Code
Since 2020, low-code has become a hot spot in the industry, and both the capital market and enterprise users have sought after. So how will low-code platforms develop in the future? In my personal understanding, low-code platform development will evolve along two dimensions:
1. Versatility , which is the dimension of language attributes; as the low-code development platform continues to mature and develop, the low-code development platform gradually has the ability to develop common scenarios, such as the development of websites, games, 3D scenarios, e-commerce, Enterprise applications, personal applications; the supported systems will be more comprehensive, such as WebApp, iOS/Android, Windows/Mac/Linux, applet and other applications.
2. Convenience , that is, the process of decreasing the amount of code, and will eventually realize 0-code programming.
However, it is very difficult to achieve universality and convenience at the same time, which is also an urgent problem and the next challenge for low-code development platforms. Finally, it is possible to "remove program syntax and keep program logic".
Finally, I will answer a question that everyone is more concerned about: low code replace programmers?
I think what low-code solves is abstract, general and reusable product capabilities. As high-end technical talents, programmers have a huge market gap. Low-code tools are to remove programmers from the existing repetitive and boring interface development. liberate. Programmers should pay more attention to technical research and development in business creation. Low-code is a tool. The relationship between low-code and programmers is like translation software and translators, data statistics systems and data analysts. The purpose of tools is to reduce repetitive work and invest human resources in more meaningful and valuable research. among.
Author of this article:
A senior engineer at Tencent Cloud Micro, focusing on the improvement of back-end R&D efficiency and the construction of an engineering system.
Have certain practical experience in performance optimization, R&D efficiency, high-availability design of architecture, etc.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。