CN117785266A - Automatic release method of application program, scheduling server and low-code platform - Google Patents

Automatic release method of application program, scheduling server and low-code platform Download PDF

Info

Publication number
CN117785266A
CN117785266A CN202311814245.3A CN202311814245A CN117785266A CN 117785266 A CN117785266 A CN 117785266A CN 202311814245 A CN202311814245 A CN 202311814245A CN 117785266 A CN117785266 A CN 117785266A
Authority
CN
China
Prior art keywords
release
file
application program
middleware
container
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311814245.3A
Other languages
Chinese (zh)
Inventor
钱奕辰
左道会
熊亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Xuelang Shuzhi Technology Co ltd
Original Assignee
Wuxi Xuelang Shuzhi Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Xuelang Shuzhi Technology Co ltd filed Critical Wuxi Xuelang Shuzhi Technology Co ltd
Priority to CN202311814245.3A priority Critical patent/CN117785266A/en
Publication of CN117785266A publication Critical patent/CN117785266A/en
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention relates to the technical field of application program release, and particularly discloses an automatic release method, a scheduling server and a low-code platform of an application program, which comprise the following steps: the method comprises the steps that a release file generated by a release server is obtained, wherein the release server can generate the release file according to a release request of a user, and the release file at least comprises an sql file, a source data file and a configuration file; creating a container according to the configuration file, and starting all corresponding middleware in the container according to the release file; and after determining that all middleware is successfully started, executing the release file to finish the starting of the application program. The automatic release method of the application program can realize automatic release of the application program, and solves the problems that the release process of the current application program is too dependent on manual work and is complicated in configuration.

Description

Automatic release method of application program, scheduling server and low-code platform
Technical Field
The present invention relates to the field of application publishing technologies, and in particular, to an automatic application publishing method, a scheduling server, and a low-code platform.
Background
Currently, the release process of the Java Web application in the prior art mainly includes: (1) compiling and packaging. First, the source code of a Java Web application is compiled into an executable Java bytecode file and relevant static resources (e.g., HTML, CSS, javaScript file) are placed in the appropriate directory. The application is then packaged into WAR (Web Application Archive) files using a build tool (e.g., apache Maven or Gradle). (2) selecting a Web server. An appropriate Web server is selected to host the Java Web application. Common choices include Apache Tomcat, jetty, and WildFly, among others. And selecting a proper Web server according to the requirements and preferences, and installing and configuring the Web server. (3) configuring a Web server. Corresponding configuration is performed according to the selected Web server, and generally includes specifying a context path, a port number, log configuration, and the like of the application program. (4) deploying the application. And deploying the packaged WAR file into a Web server. By copying WAR files to a specific directory of the Web server, such as the Tomcat webapps directory. Once the WAR file is placed in the correct location, the Web server will automatically decompress and deploy the application. (5) configuring a front-end static file. If the Java Web application contains front-end static files (e.g., HTML, CSS, javaScript files), these files may be placed in a particular directory of the Web server so that they can be accessed through the browser. The specific directory location depends on the Web server and configuration used. For example, in Tomcat, a static file may be placed under the root directory or webapps/you-app-name directory of an application.
The following drawbacks are known from the above-mentioned prior art release procedure of Java Web application: (1) cumbersome configuration and deployment procedure: conventional project deployments typically require manual configuration and setup, including selection and configuration of appropriate Web servers, databases, network settings, and the like. These processes can be relatively complex, require familiarity with related techniques and tools, and are prone to configuration errors and conflicts. (2) expertise is required: conventional project deployment typically requires a developer to have some knowledge of system management and operation, including server configuration, network setup, database management, etc. This can be a strange area for pure developers, increasing the cost of learning and maintenance. (3) longer deployment time: conventional project deployment typically requires a long time, especially in large-scale projects or complex environments. This includes the steps of compiling code, packaging, uploading, configuring and starting up the server, which may take considerable time and resources. (4) difficult to expand and upgrade: traditional project deployment approaches may present challenges to the expansion and upgrade of the system. When it is desired to add servers, adjust configuration or upgrade dependent components, a series of manual operations may be required, prone to errors and inconsistencies. (5) depending on the particular circumstances: traditional project deployments typically rely on specific hardware and software environments, including operating systems, web servers, databases, etc. This results in the possible compatibility problems of deploying and operating the project in different environments, requiring additional configuration and adjustment.
Therefore, how to solve the problems that the current release process of the application program is too dependent on manual work and is complicated in configuration becomes a technical problem to be solved by those skilled in the art.
Disclosure of Invention
The invention provides an automatic release method, a scheduling server and a low-code platform for an application program, which solve the problems that the current release process of the application program in the related technology is too dependent on manpower and is complicated in configuration.
As a first aspect of the present invention, there is provided an automatic distribution method of an application program, including:
the method comprises the steps that a release file generated by a release server is obtained, wherein the release server can generate the release file according to a release request of a user, and the release file at least comprises an sql file, a source data file and a configuration file;
creating a container according to the configuration file, and starting all corresponding middleware in the container according to the release file;
and after determining that all middleware is successfully started, executing the release file to finish the starting of the application program.
Further, creating a container according to the configuration file, and starting all corresponding middleware in the container according to the release file, including:
generating a container creation command according to the configuration file;
executing the container creation command to obtain a container;
judging whether the release file is released for the first time;
if the release file is released for the first time, starting all corresponding middleware in the container;
and if the release file is not released for the first time, starting the middleware according to the current states of all the middleware in the container.
Further, the starting of the middleware is performed according to the current states of all the middleware in the container, including:
judging whether the states of all the current middleware in the container are available or not;
if the states of all the current middleware in the container are available states, starting all the corresponding middleware in the container;
if the state of any one of the currently available middleware in the container is the unavailable state, restarting the middleware corresponding to the unavailable container.
Further, after determining that all middleware is successfully started, executing the release file to complete starting of the application program, including:
after determining that all middleware is successfully started, reporting state information of all middleware to the release server;
executing the sql file and obtaining an sql execution result;
and determining whether the starting of the application program is completed or not according to whether the sql execution result is successful or not.
Further, determining whether to complete the starting of the application program according to the sql execution result comprises:
judging whether the sql execution result is successful or not according to the configuration file;
if the sql execution result is determined to be successful, checking the application state of the application program corresponding to the release file;
if the application state of the application program corresponding to the release file is stopped, starting the application program according to the relevant connection information corresponding to all the middleware in the configuration file;
and restarting the application program according to the relevant connection information corresponding to all the middleware in the configuration file if the application state of the application program corresponding to the release file is running.
Further, the method further comprises the following steps:
judging whether the starting result of the application program corresponding to the release file is successful or not;
if the starting result of the application program corresponding to the release file is successful, the starting of the application program is completed;
if the starting result of the application program corresponding to the release file is failure, error information is returned to the release server, and the sql execution result is deleted.
Further, if the sql execution result is determined to fail, error information is returned to the publishing server, and the sql execution result is deleted.
As another aspect of the present invention, there is provided a scheduling server for implementing the automatic publishing method of an application program described above, wherein the scheduling server includes:
the acquisition module is used for acquiring a release file generated by a release server, wherein the release server can generate the release file according to a release request of a user, and the release file at least comprises an sql file, a source data file and a configuration file;
the creation module is used for creating a container according to the configuration file and starting all corresponding middleware in the container according to the release file;
and the execution module is used for executing the release file to finish the starting of the application program after determining that all the middleware is successfully started.
As another aspect of the present invention, there is provided a low code platform comprising a publication server and the dispatch server described above, said publication server and said dispatch server being communicatively connected,
the publishing server is used for receiving a publishing request of a user and generating a publishing file according to the publishing request of the user, wherein the publishing file at least comprises an sql file, a source data file and a configuration file;
the dispatching server is used for creating a container according to the release file and completing the starting of the application program in the container.
Further, the publishing server is configured to receive a publishing request of a user, and generate a publishing file according to the publishing request of the user, including:
receiving a release request of a user;
generating a release result according to the release request of the user, wherein the release result at least comprises a release version of the application program, a release environment and identification information;
verifying the release result, and generating a release file after the release result passes the verification;
and sending the release file to a scheduling server based on a Restful API to finish the starting of the application program.
According to the automatic release method of the application program, the release file generated by the release server is obtained, and the container is created based on the configuration file in the release file, so that the middleware corresponding to the release file is started in the container, and the starting process of the application program in the container is completed. The automatic release method of the application program combines the container technology to realize the construction of the running environment of the application, and simultaneously, the packaging black box is realized for the complex steps of the release of the traditional application, and the user can finish the steps of release, running, access and the like of the application program by clicking on a page, so that the automatic release of the application program can be realized. In addition, the automatic release method of the application program can perform data forwarding and reporting, so that any data interaction between the development tool and the actual running application is not performed directly, and decoupling between the development tool and the application program is realized.
Drawings
The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification, illustrate the invention and together with the description serve to explain, without limitation, the invention.
Fig. 1 is a flowchart of an automatic publishing method of an application program provided by the invention.
Fig. 2 is a flowchart of a boot middleware provided by the present invention.
FIG. 3 is a flowchart of executing a published file to complete application startup provided by the present invention.
Fig. 4 is a block diagram of a scheduling server according to the present invention.
FIG. 5 is a block diagram of a low code platform provided by the present invention.
Fig. 6 is a schematic diagram of application publishing and iteration provided by the present invention.
Detailed Description
It should be noted that, without conflict, the embodiments of the present invention and features of the embodiments may be combined with each other. The invention will be described in detail below with reference to the drawings in connection with embodiments.
In order that those skilled in the art will better understand the present invention, a technical solution in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in which it is apparent that the described embodiments are only some embodiments of the present invention, not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the present invention without making any inventive effort, shall fall within the scope of the present invention.
It should be noted that the terms "first," "second," and the like in the description and the claims of the present invention and the above figures are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used may be interchanged where appropriate in order to describe the embodiments of the invention herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
In this embodiment, there is provided an automatic publishing method of an application, and fig. 1 is a flowchart of the automatic publishing method of an application provided according to an embodiment of the present invention, as shown in fig. 1, including:
s100, acquiring a release file generated by a release server, wherein the release server can generate the release file according to a release request of a user, and the release file at least comprises an sql file, a source data file and a configuration file;
in the embodiment of the invention, the release server receives the release request of the user, and the release request can specifically include some basic configuration information of the user, such as information of user settings or selected release versions, release environments and the like. The publishing server can generate a publishing result according to a publishing request of a user, wherein the publishing result can specifically comprise a publishing version of an application program, a publishing environment and some identification information based on the publishing operation. The publishing server preferably confirms the publishing environment when generating the publishing result, then confirms the publishing version, and generates the publishing result based on the confirmation information.
The issuing server needs to check the issuing result after generating the issuing result, and the issuing file can be generated only if the issuing result passes the checking. And if the verification of the release result is not passed, returning error information.
After the release file is generated, the release file is sent to a scheduling server based on a Restful API to finish the starting of the application program.
In the embodiment of the invention, the release file at least comprises an sql file, a source data file and a configuration file. It should be noted that, the configuration file may be specifically generated according to some basic configuration information in the publishing request, such as a publishing environment, a publishing version, a version name, a custom image repository, a custom image tag, and the like. In addition, the configuration file also includes middleware information such as a data source, a cache, a file storage service and the like, and the source data file in the release file needs to be written into the data source.
S200, creating a container according to the configuration file, and starting all corresponding middleware in the container according to the release file;
in the embodiment of the invention, a container is created according to the obtained configuration file, and the subsequent starting of the application program is realized in the created container.
In particular, the containers described herein may be specifically Kubernetes or Docker.
And S300, executing the release file to finish the starting of the application program after the starting success of all the middleware is determined.
After all middleware is started in the container, the release file is executed to finish the starting of the application program.
Therefore, the automatic release method of the application program provided by the invention is characterized in that the release file generated by the release server is obtained, and the container is created based on the configuration file in the release file, so that the middleware corresponding to the release file is started in the container, and the starting process of the application program in the container is completed. The automatic release method of the application program combines the container technology to realize the construction of the running environment of the application, and simultaneously, the packaging black box is realized for the complex steps of the release of the traditional application, and the user can finish the steps of release, running, access and the like of the application program by clicking on a page, so that the automatic release of the application program can be realized. In addition, the automatic release method of the application program can perform data forwarding and reporting, so that any data interaction between the development tool and the actual running application is not performed directly, and decoupling between the development tool and the application program is realized.
In the embodiment of the invention, the development environment specifically can comprise the following three environments.
Sandbox environment: the environment provided by the low code platform by default exists in the environment for all application programs generated by the sandbox release operation of the user; can be used for testing the application, such as whether the application is intended to be tried to log in after the application is built, and whether the character configuration is correct.
On-line environment: the user defines the added environment, the environment is reachable with the network of the low-code platform development tool, and the subsequent operation can be directly operated through pages; a pre-release environment for applications is available, which is a runtime environment that requires users to provide servers themselves and install corresponding dispatch servers on the servers to make them low code platform supported.
Offline environment: the user defines the added environment, the environment is not reachable with the network of the low-code platform development tool, and the subsequent operation requires the intervention of operation and maintenance personnel; the method can be used for the production environment of the application, wherein the environment is a runtime environment which needs a user to provide a server and install a corresponding scheduling server on the server to be supported by a low-code platform.
In the embodiment of the present invention, a container is created according to the configuration file, and all corresponding middleware in the container is started according to the release file, as shown in fig. 2, including:
s210, generating a container creation command according to the configuration file;
s220, executing the container creation command to obtain a container;
s230, judging whether the release file is released for the first time;
s240, if the release file is released for the first time, starting all corresponding middleware in the container;
s250, if the release file is not released for the first time, starting the middleware according to the current states of all the middleware in the container.
In order to enable the dispatch server to deviate from the limit of host environment dependence, deployment of the dispatch server is containerized, and since the dispatch server is in a container, an environment supporting the container can be created for the dispatch server by using a Docker-in-Docker (DinD).
In addition, in order to avoid using the privileged mode, the method can be implemented in a mode of mounting the socket, namely, the socket is mounted inside a container, and the base mirror image of the container supports the socket client. Since it only mounts the host's sock and since there is no duplicate Docker mirror, disk space is saved, while it is also secure since there is no need to provide privileged options.
In the embodiment of the present invention, further, the starting of the middleware according to the current states of all the middleware in the container includes:
judging whether the states of all the current middleware in the container are available or not;
if the states of all the current middleware in the container are available states, starting all the corresponding middleware in the container;
if the state of any one of the currently available middleware in the container is the unavailable state, restarting the middleware corresponding to the unavailable container.
It should be noted that, only when all the current middleware states in the container are available, all the corresponding middleware states in the container can be started, and if all the corresponding middleware states in the container are unavailable, the corresponding middleware states in the container need to be restarted.
In the embodiment of the present invention, after determining that all middleware is started successfully, executing the release file to complete starting of the application program, as shown in fig. 3, includes:
s310, after the fact that all middleware is successfully started is determined, reporting state information of all middleware to the release server;
it should be understood that, after all the middleware is started successfully, the status information of the middleware is reported to the publishing server, where the status information of the middleware reported here may be, for example, whether the current middleware is operating normally, resources are occupied, and operating time.
S320, executing the sql file and obtaining an sql execution result;
and after all middleware is successfully started, executing the sql file, and determining whether the application program is started according to the sql execution result.
S330, whether the starting of the application program is completed is determined successfully according to the sql execution result.
Specifically, determining whether to complete the starting of the application program according to whether the sql execution result is successful includes:
s331, judging whether the sql execution result is successful or not according to the configuration file;
in the embodiment of the invention, the execution of the sql file can be performed according to the data source client corresponding to the data source in the configuration file, and the execution result is output to the IO stream and is divided into a standard output IO stream and an error output IO stream. Judging whether the successful execution is performed according to the criterion that whether the content is output in the error output IO stream or not, if not, the successful execution is indicated; the determination may be made according to specific rules, if any.
S332, if the sql execution result is determined to be successful, checking the application state of the application program corresponding to the release file;
in the embodiment of the invention, the application state of the application program is checked to check whether the application state of the application program is normal or not, and the application state of the application program can be obtained by inquiring through an interface built in the application program by using an http protocol.
In the embodiment of the present invention, it should be noted that if it is determined that the sql execution result fails, an error message is returned to the publishing server, and the sql execution result is deleted.
S333, if the application state of the application program corresponding to the release file is stopped, starting the application program according to the relevant connection information corresponding to all the middleware in the configuration file;
in the embodiment of the invention, if the application state of the application program corresponding to the release file is stopped, the related connection information corresponding to the middleware in the configuration file is acquired, and the application program is started based on the acquired connection information.
And S334, restarting the application program according to the relevant connection information corresponding to all the middleware in the configuration file if the application state of the application program corresponding to the release file is running.
In the embodiment of the invention, if the application state of the application program corresponding to the release file is running, the related connection information corresponding to the middleware in the configuration file is acquired, and the application program is restarted based on the acquired connection information.
In the embodiment of the present invention, in order to determine whether the application completes the startup, the method further includes:
judging whether the starting result of the application program corresponding to the release file is successful or not;
if the starting result of the application program corresponding to the release file is successful, the starting of the application program is completed;
if the starting result of the application program corresponding to the release file is failure, error information is returned to the release server, and the sql execution result is deleted.
In the embodiment of the invention, the client can be executed according to the script to start the application program, and the starting result is output to the IO stream and is divided into a standard output IO stream and an error output IO stream. Judging whether the starting is successful or not according to the standard that whether the content is output in the error output IO stream or not, if not, indicating that the starting is successful; the determination may be made according to specific rules, if any.
It should be understood that if the application program start result is failure, the error information is reported to the publishing server, and meanwhile, the sql execution result is deleted, that is, the content executed by the sql is rolled back to a state in which the execution is not started.
It should be noted that, after the application program is automatically released and successfully started, a special application access address exists. In order to realize dynamic access of the application cluster and realize a scene of one-time configuration and multiple use, traefik is introduced as a gateway to solve the problem of dynamic proxy. Traefik is able to support dynamic loading of routing information from a variety of configurations (e.g., zookeeper, redis). The scheduling server automatically deploys the application program, dynamically splices url after taking the unique identifier of the instance, writes the url into a configuration center, carries out Traefik hot loading configuration and forwards the request according to a routing rule, combines the capability of Traefik dynamic routing, and can enter an access request through unified IP or domain name and carry out request forwarding according to the global unique cluster (instance system) ID through Traefik.
It should also be noted that most StatefulSet types of Pod (K8S schedule, management minimum unit), a Pod may contain one or more containers, each Pod has its own virtual IP, a working Node may have multiple pods, the master Node may consider to which Node the load is automatically scheduled to run) all involve the requirement of persistence, if data is stored in a Node (Node running container service, mainly classified into master and worker, where master is a master Node, and worker is a working Node) Node, because of the nature of Kubernetes (specifically an open source tool providing cluster deployment and management for containerized applications) schedule, in order to avoid Pod drift, the separation of middleware from persistence state needs to accomplish two things: (1) the data file may be saved to disk. In particular, storage may be shared by NFS, which is a network file system protocol based on TCP/IP transport, and by using the NFS protocol, clients may access shared resources in a remote server like local directories.
(2) The association between the executing application and the data file is preserved in some way. Specifically, the association between Pod and PV is bound using SC (storage class) by asserting PVC (specifically shown as a component provided by Kubernetes) on Pod. The Pod created by the middleware then takes the StatefulSet type so that the name of the Pod can be fixed and made to correspond to the PV.
Note that PV represents a persistent volume (PersistentVolume, PV), stored for a block in a cluster, may be prepared by an administrator, or dynamically prepared using storage classes. Persistent volumes are cluster resources as nodes are cluster resources. PV persistent volumes are implemented using Volume plug-ins as is common Volume, except that they are used for a lifecycle independent of any Pod using PV. Implementation details of storage, whether NFS, iSCSI, or cloud platform specific storage systems behind it are described in this API object.
In addition, PVC represents persistent volume claim (PVC for short), which expresses a user's request for storage. Conceptually, and in the Pod type, pod can consume node resources, while PVC claims consume PV resources. Pod can request a specific number of resources (CPU and content), as can PVC claims a specific size and access pattern.
An SC (storage class) that provides an administrator with a way to describe the storage "class" may be mapped to different quality of service levels or backup policies, or any policy established by the cluster administrator, and may also be understood as a configuration file.
If the copy is to be added elastically, the PV can be created by adding Pod and LocalPV, and the PV can be automatically created by a provisioner.
LocalPV represents a local persistent volume (localpersistence volume), representing a persistent storage solution for Kubernetes to map storage devices on local nodes (e.g., hard disks on nodes) to persistent volumes that are available to applications.
Provisitors represent a preparer, which belongs to a component in a storage class that uses the preparer to create a corresponding persistent volume according to a specific persistent volume claim definition.
In summary, the automatic release method of the application program provided by the invention has supported the running of the application on two container technologies of Kubernetes and Docker at present in terms of deployment mode; meanwhile, the container operation is carried out, the dind technology is adopted to realize the scheduling of the container, and the host machine environment is not relied on any more; in the aspect of heartbeat maintenance reporting, a mechanism of applying to reporting the heartbeat is optimized, and a previous HTTP mode is replaced by adopting an RPC long connection mode, so that more timely and efficient heartbeat acquisition is realized; when the application actively reports the heartbeat, the scheduling server can periodically poll all the applications, and find that an application is not reported for a long time and remark the application as an offline state; in terms of data sources, diverse non-relational databases are supported as data sources. Meanwhile, the data security capability is enhanced, various backup modes (local, different machines, OSS and the like) are supported, and cold and hot data backup is supported in the aspect of backup data storage; in the aspect of task execution, in order to avoid the occurrence of a black box condition, the functions of task execution record and task execution state query are provided by actively collecting logs and collecting various data such as logs, performance indexes and the like; meanwhile, the Logkit is introduced to collect and report the data such as the Log and the Metric of the environment.
As another embodiment of the present invention, a scheduling server is provided for implementing the automatic publishing method of an application program described above, wherein, as shown in fig. 4, the scheduling server 10 includes:
the acquisition module 100 is configured to acquire a release file generated by a release server, where the release server is capable of generating a release file according to a release request of a user, and the release file at least includes an sql file, a source data file and a configuration file;
the creation module 200 is configured to create a container according to the configuration file, and start all corresponding middleware in the container according to the release file;
and the execution module 300 is used for executing the release file to complete the starting of the application program after determining that all the middleware is successfully started.
According to the scheduling server provided by the invention, the issuing file generated by the issuing server is obtained, and the container is created based on the configuration file in the issuing file, so that the middleware corresponding to the issuing file is started in the container, and the starting process of the application program in the container is completed. The automatic release method of the application program combines the container technology to realize the construction of the running environment of the application, and simultaneously, the packaging black box is realized for the complex steps of the release of the traditional application, and the user can finish the steps of release, running, access and the like of the application program by clicking on a page, so that the automatic release of the application program can be realized. In addition, the scheduling server can forward and report data, so that any data interaction between the development tool and the actual running application is not directly performed, and decoupling between the development tool and the application program is realized.
The working process and principle of the scheduling server of the present invention can refer to the description of the automatic release method of the application program, and will not be repeated here.
As another embodiment of the present invention, there is provided a low-code platform 1, as shown in fig. 5, comprising a publication server 20 and the scheduling server 10 described above, the publication server 20 and the scheduling server 10 being communicatively connected,
the publishing server 20 is configured to receive a publishing request of a user, and generate a publishing file according to the publishing request of the user, where the publishing file at least includes an sql file, a source data file and a configuration file;
the dispatch server 10 is configured to create a container according to the published file, and complete the start of the application program in the container.
In the embodiment of the present invention, the publishing server is configured to receive a publishing request of a user, and generate a publishing file according to the publishing request of the user, including:
receiving a release request of a user;
generating a release result according to the release request of the user, wherein the release result at least comprises a release version of the application program, a release environment and identification information;
verifying the release result, and generating a release file after the release result passes the verification;
and sending the release file to a scheduling server based on a Restful API to finish the starting of the application program.
Specifically, during the multiple iteration requirement of the application program, the application program needs to realize continuous iteration and ensure the stability of the production version, and in order to meet the target, the low-code platform provides a version function.
Each version should be a stable version, and the user can choose whether to generate a new version when releasing, the new version represents an initialized new release, and the old version represents that the iterative update of the content is continued on the last operation of the version.
Here, it should be noted that, each application program can generate a plurality of unique identifiers (app_uuid) according to different information such as environment, operation type, offline, etc.; each application operation generates a unique operation identifier (app_action_id), which is a standard uuid; i.e. an application has multiple instances (auId is a unique identification of an instance), each instance corresponding to multiple operation identifications (aaId).
In the release process of the application program, particularly when releasing as a new version, a user can click to release at the upper right corner of the application editor, and after a specific environment is selected, the user can click to release as the new version; when performing iterative publishing, the user can click to publish at the upper right corner of the application editor, select a specific environment, then select an existing version (the selected version is highlighted), and click to the next step. A schematic diagram of a specific application release and iteration is shown in fig. 6.
According to the low-code platform, the automatic release of the application program can be realized due to the adoption of the automatic release method of the scheduling server based on the application program. In addition, the data forwarding and reporting can be performed based on the scheduling server, so that any data interaction between the development tool and the actual running application is not performed directly, and the decoupling between the development tool and the application program is realized.
The working process and principle of the low-code platform of the present invention can refer to the description of the automatic release method of the application program, and will not be repeated here.
It is to be understood that the above embodiments are merely illustrative of the application of the principles of the present invention, but not in limitation thereof. Various modifications and improvements may be made by those skilled in the art without departing from the spirit and substance of the invention, and are also considered to be within the scope of the invention.

Claims (10)

1. An automatic distribution method of an application program, comprising:
the method comprises the steps that a release file generated by a release server is obtained, wherein the release server can generate the release file according to a release request of a user, and the release file at least comprises an sql file, a source data file and a configuration file;
creating a container according to the configuration file, and starting all corresponding middleware in the container according to the release file;
and after determining that all middleware is successfully started, executing the release file to finish the starting of the application program.
2. The method for automatically publishing an application of claim 1, wherein creating a container from the configuration file and starting all corresponding middleware in the container from the published file comprises:
generating a container creation command according to the configuration file;
executing the container creation command to obtain a container;
judging whether the release file is released for the first time;
if the release file is released for the first time, starting all corresponding middleware in the container;
and if the release file is not released for the first time, starting the middleware according to the current states of all the middleware in the container.
3. The automatic application program distribution method according to claim 2, wherein the starting of the middleware according to the state of all the middleware currently in the container comprises:
judging whether the states of all the current middleware in the container are available or not;
if the states of all the current middleware in the container are available states, starting all the corresponding middleware in the container;
if the state of any one of the currently available middleware in the container is the unavailable state, restarting the middleware corresponding to the unavailable container.
4. A method for automatically publishing an application program according to any one of claims 1 to 3, wherein, when it is determined that all middleware is successfully started, executing the published file to complete the start of the application program, comprises:
after determining that all middleware is successfully started, reporting state information of all middleware to the release server;
executing the sql file and obtaining an sql execution result;
and determining whether the starting of the application program is completed or not according to whether the sql execution result is successful or not.
5. The automatic application program publishing method of claim 4, wherein determining whether to complete the startup of the application program based on the sql execution result comprises:
judging whether the sql execution result is successful or not according to the configuration file;
if the sql execution result is determined to be successful, checking the application state of the application program corresponding to the release file;
if the application state of the application program corresponding to the release file is stopped, starting the application program according to the relevant connection information corresponding to all the middleware in the configuration file;
and restarting the application program according to the relevant connection information corresponding to all the middleware in the configuration file if the application state of the application program corresponding to the release file is running.
6. The automatic distribution method of an application program according to claim 5, further comprising:
judging whether the starting result of the application program corresponding to the release file is successful or not;
if the starting result of the application program corresponding to the release file is successful, the starting of the application program is completed;
if the starting result of the application program corresponding to the release file is failure, error information is returned to the release server, and the sql execution result is deleted.
7. The method for automatically publishing an application of claim 5,
and if the sql execution result is determined to fail, returning error information to the release server, and deleting the sql execution result.
8. A scheduling server for implementing the automatic distribution method of an application program according to any one of claims 1 to 7, characterized in that the scheduling server comprises:
the acquisition module is used for acquiring a release file generated by a release server, wherein the release server can generate the release file according to a release request of a user, and the release file at least comprises an sql file, a source data file and a configuration file;
the creation module is used for creating a container according to the configuration file and starting all corresponding middleware in the container according to the release file;
and the execution module is used for executing the release file to finish the starting of the application program after determining that all the middleware is successfully started.
9. A low code platform comprising a publication server and the dispatch server of claim 8, said publication server and said dispatch server being communicatively coupled,
the publishing server is used for receiving a publishing request of a user and generating a publishing file according to the publishing request of the user, wherein the publishing file at least comprises an sql file, a source data file and a configuration file;
the dispatching server is used for creating a container according to the release file and completing the starting of the application program in the container.
10. The low code platform of claim 9, wherein the publishing server is configured to receive a publishing request of a user and generate a publishing file according to the publishing request of the user, and comprises:
receiving a release request of a user;
generating a release result according to the release request of the user, wherein the release result at least comprises a release version of the application program, a release environment and identification information;
verifying the release result, and generating a release file after the release result passes the verification;
and sending the release file to a scheduling server based on a Restful API to finish the starting of the application program.
CN202311814245.3A 2023-12-26 2023-12-26 Automatic release method of application program, scheduling server and low-code platform Pending CN117785266A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311814245.3A CN117785266A (en) 2023-12-26 2023-12-26 Automatic release method of application program, scheduling server and low-code platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311814245.3A CN117785266A (en) 2023-12-26 2023-12-26 Automatic release method of application program, scheduling server and low-code platform

Publications (1)

Publication Number Publication Date
CN117785266A true CN117785266A (en) 2024-03-29

Family

ID=90390402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311814245.3A Pending CN117785266A (en) 2023-12-26 2023-12-26 Automatic release method of application program, scheduling server and low-code platform

Country Status (1)

Country Link
CN (1) CN117785266A (en)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614138A (en) * 2018-12-03 2019-04-12 湖南舜康信息技术有限公司 A kind of application integration and dissemination method and system based on container cloud
CN112256399A (en) * 2020-10-28 2021-01-22 四川长虹电器股份有限公司 Docker-based Jupyter Lab multi-user remote development method and system
US20210382727A1 (en) * 2020-06-08 2021-12-09 Pivotal Software, Inc. Configuration container for container orchestration platform
CN114115857A (en) * 2021-10-29 2022-03-01 北京邮电大学 Method and system for constructing automatic production line of machine learning model
CN114385195A (en) * 2021-12-10 2022-04-22 杭州安恒信息安全技术有限公司 Third-party platform deployment method, third-party platform deployment device, computer equipment and medium
CN115599399A (en) * 2022-11-30 2023-01-13 广东省科技基础条件平台中心(Cn) Application program deployment method and device and storage medium
CN116755794A (en) * 2023-05-24 2023-09-15 北京无代码科技有限公司 Automatic deployment method and system for application program in cloud native
CN116775061A (en) * 2023-07-21 2023-09-19 中国建设银行股份有限公司 Deployment method, device, equipment and storage medium of micro-service application
CN116860266A (en) * 2023-07-10 2023-10-10 中国电信股份有限公司技术创新中心 Application containerized deployment method and device, electronic equipment and storage medium
CN116974716A (en) * 2023-01-31 2023-10-31 腾讯科技(深圳)有限公司 Scheduling task issuing method and device, electronic equipment and storage medium

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614138A (en) * 2018-12-03 2019-04-12 湖南舜康信息技术有限公司 A kind of application integration and dissemination method and system based on container cloud
US20210382727A1 (en) * 2020-06-08 2021-12-09 Pivotal Software, Inc. Configuration container for container orchestration platform
CN112256399A (en) * 2020-10-28 2021-01-22 四川长虹电器股份有限公司 Docker-based Jupyter Lab multi-user remote development method and system
CN114115857A (en) * 2021-10-29 2022-03-01 北京邮电大学 Method and system for constructing automatic production line of machine learning model
CN114385195A (en) * 2021-12-10 2022-04-22 杭州安恒信息安全技术有限公司 Third-party platform deployment method, third-party platform deployment device, computer equipment and medium
CN115599399A (en) * 2022-11-30 2023-01-13 广东省科技基础条件平台中心(Cn) Application program deployment method and device and storage medium
CN116974716A (en) * 2023-01-31 2023-10-31 腾讯科技(深圳)有限公司 Scheduling task issuing method and device, electronic equipment and storage medium
CN116755794A (en) * 2023-05-24 2023-09-15 北京无代码科技有限公司 Automatic deployment method and system for application program in cloud native
CN116860266A (en) * 2023-07-10 2023-10-10 中国电信股份有限公司技术创新中心 Application containerized deployment method and device, electronic equipment and storage medium
CN116775061A (en) * 2023-07-21 2023-09-19 中国建设银行股份有限公司 Deployment method, device, equipment and storage medium of micro-service application

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LEMUZHI_零度: "在docker的mysql容器内执行SQL文件", Retrieved from the Internet <URL:https://blog.csdn.net/qq_16065149/article/details/120670653> *
ZNPI: "docker compose 配置 mysql 容器启动时创建数据库", pages 1, Retrieved from the Internet <URL:https://www.cnblogs.com/zn-pi/p/17509152.html> *
芊宝宝: "Docker新功能曝光,一键自动生成 Dockerfile 和 Compose 文件", pages 1 - 3, Retrieved from the Internet <URL:https://juejin.cn/post/6844903632677109773> *

Similar Documents

Publication Publication Date Title
JP4524113B2 (en) Software distribution method and system
US8464228B2 (en) Binary library
JP5535484B2 (en) Automated software testing framework
RU2429529C2 (en) Dynamic configuration, allocation and deployment of computer systems
US8577937B1 (en) Repository including exclusion list
US8001083B1 (en) Repository including version management
US20040088397A1 (en) System and method for management of software applications
US10963236B2 (en) Creation of software images of software applications for image-based maintenance of the software applications
KR20070049166A (en) System and method for extraction and creation of application meta-information within a software application repository
US8490078B2 (en) System and method for application management
CN113434158B (en) Custom management method, device, equipment and medium for big data component
CA2789393A1 (en) Method, computer program product and computer-readable storage medium for the generic creation of a structure tree for describing an it process
US11392366B1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
US20070234328A1 (en) File handling for test environments
US11262996B2 (en) Repository including exclusion list
CN112486938A (en) Log collection method and system applied to kubernets cluster
van der Burg et al. A self-adaptive deployment framework for service-oriented systems
US9015180B1 (en) Repository including file identification
Cappos et al. Stork: Package Management for Distributed VM Environments.
CN115344273A (en) Method and system for running application software based on shelf system
CN117785266A (en) Automatic release method of application program, scheduling server and low-code platform
CN114500268B (en) Method and device for deploying char resources, server and storage medium
Zhang et al. Lifecycle Management
CN117931159A (en) Cloud native security-based low-code platform building system
CN118132372A (en) Log acquisition method, log acquisition system and electronic device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination