CN108170448B - System for automatically and efficiently releasing software update version - Google Patents

System for automatically and efficiently releasing software update version Download PDF

Info

Publication number
CN108170448B
CN108170448B CN201711436644.5A CN201711436644A CN108170448B CN 108170448 B CN108170448 B CN 108170448B CN 201711436644 A CN201711436644 A CN 201711436644A CN 108170448 B CN108170448 B CN 108170448B
Authority
CN
China
Prior art keywords
software
update version
client
version
released
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.)
Active
Application number
CN201711436644.5A
Other languages
Chinese (zh)
Other versions
CN108170448A (en
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.)
CHEZHI HULIAN (BEIJING) SCIENCE & TECHNOLOGY CO LTD
Original Assignee
CHEZHI HULIAN (BEIJING) SCIENCE & 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 CHEZHI HULIAN (BEIJING) SCIENCE & TECHNOLOGY CO LTD filed Critical CHEZHI HULIAN (BEIJING) SCIENCE & TECHNOLOGY CO LTD
Priority to CN201711436644.5A priority Critical patent/CN108170448B/en
Publication of CN108170448A publication Critical patent/CN108170448A/en
Application granted granted Critical
Publication of CN108170448B publication Critical patent/CN108170448B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

The invention provides a system for automatically and efficiently releasing a software update version, which comprises a management end, a server end and a client end, wherein the management end is used for managing the software update version; the management terminal is used for creating a release template and filling release configuration information into the release template; the server side issues the task description information to a corresponding client side to be issued; the client is used for receiving the task description information from the server and executing the task description information. Has the advantages that: according to the system for automatically and efficiently releasing the software update version, the whole online process of the software update version is simple and efficient, the workload and the working strength of operation and maintenance personnel are effectively reduced, and the efficiency of releasing the software update version is improved. Meanwhile, by standardizing the release process of the software update version, the success rate of online of the whole software update version is greatly improved, the rollback speed is increased, and the service provided by online service is ensured to be stable for a long time.

Description

System for automatically and efficiently releasing software update version
Technical Field
The invention belongs to the technical field of information processing, and particularly relates to an automatic and efficient software update version release system.
Background
In an internet scenario, software often needs to be updated continuously, and online deployment of software update versions is very important. At present, many companies generally use manual login client-side online software to update version codes, and the following defects are caused: (1) frequent online work occupies a large amount of working time of operation and maintenance personnel, so that the software update version release efficiency is low; (2) in the online upgrading process of the software updating version, if the upgrading fails, manual rollback to the old software version is needed, and due to the fact that the manual rollback speed is low, the old software version cannot be rolled back quickly, service error time is delayed, and using experience of a user is affected. (3) The operation and maintenance personnel need to participate in the online process of the software update version in the whole process. A small miss may result in a total release failure and the service is not available.
Disclosure of Invention
Aiming at the defects in the prior art, the invention provides a system for automatically and efficiently releasing the software update version, which can effectively solve the problems.
The technical scheme adopted by the invention is as follows:
the invention provides a system for automatically and efficiently releasing a software update version, which comprises a management end, a server end and a client end, wherein the management end is used for managing the software update version;
the management terminal is used for creating a release template and filling release configuration information into the release template; wherein the publishing configuration information comprises: the method comprises the steps that information whether an updating version of software to be released automatically rolls back or not when upgrading fails is judged; then, the management terminal seals the release configuration information in the release template into task description information and issues the task description information to the server terminal;
the server is configured to receive the task description information from the management end, analyze the task description information, and obtain specific publishing configuration information, so that the server obtains the ID of the client to be published; then, the server side issues the task description information to the corresponding client side to be issued;
the client is used for receiving the task description information from the server and executing the task description information; the specific execution process comprises the following steps: (1) the client analyzes the task description information to obtain the code type of the update version of the software to be released, an installation directory of the update version of the software to be released, an execution folder path, the address of the update version of the software to be released, a starting script path and information on whether the software is automatically rolled back or not when the upgrading fails; (2) then, the client creates a corresponding operation class according to the code type of the update version of the software to be released; (3) the operation class checks the standardization of the release environment and the task description information, and if the check is not passed, the release of the software update version is stopped; if the check is passed, the operation class installs a directory according to the software update version to be released, and creates a deployment folder in the software update version installation directory to be released; (4) then, the operation class backups the existing old software version codes of the online environment by adopting a backup folder, and downloads the old software version codes to the update version of the software to be released according to the update version address of the software to be released; then, the operation class locates to an execution folder according to the execution folder path; then, the operation class copies the downloaded update version of the software to be released to the execution folder; copying the update version of the software to be released in the execution folder to the deployment folder; (5) then, the operation class calls the start script according to the start script path, the start script executes the update version of the software to be published in the deployment folder, and the update version of the software to be published is published to a corresponding client; if the automatic rollback information is configured to the automatic rollback information when the upgrade fails, in the process of publishing the updated version of the software to be published to the corresponding client, if the upgrade fails, the start script immediately reads the old software version code from the backup folder, copies the old software version code to the deployment folder, then executes the old software version code in the deployment folder, and publishes the old software version code to the corresponding client, so that the function of automatically rolling back the old version is realized.
Preferably, the to-be-released software update version code types include four types, which are respectively: tomcat code type, windows iis code type, windows service code type, and. net code type.
Preferably, the operation class corresponding to the tomcat code type is a multitomcat deplayer operation class; the operation class corresponding to the windows code type is ArchiveDeployer; the operation class corresponding to the windows service code type is RpmDeployer; the operation class corresponding to the net code type is ArchiveDeployer.
Preferably, the publishing configuration information further includes the following publishing configuration information: whether to disable the upgraded client from load balancing first, whether to disable the upgraded client from monitoring, whether to enable the corresponding client from monitoring after upgrading, and whether to enable the corresponding client from load balancing after upgrading.
Preferably, if the configuration is that the upgraded client is disabled from load balancing first, the upgraded client is disabled from monitoring, the corresponding client is enabled from monitoring after upgrading, and the corresponding client is enabled from load balancing after upgrading, the upgraded client is disabled from load balancing first, and the upgraded client is disabled from monitoring first, before the start script executes the software update version to be released in the deployment folder; and after the upgrade is successful, the starting script starts the corresponding client from the monitoring and starts the corresponding client from the load balancing.
The system for automatically and efficiently releasing the software update version has the following advantages:
according to the system for automatically and efficiently releasing the software update version, the whole online process of the software update version is simple and efficient, the workload and the working strength of operation and maintenance personnel are effectively reduced, and the efficiency of releasing the software update version is improved. Meanwhile, by standardizing the release process of the software update version, the success rate of online of the whole software update version is greatly improved, the rollback speed is increased, and the service provided by online service is ensured to be stable for a long time.
Drawings
FIG. 1 is a schematic structural diagram of a system for automatically and efficiently publishing a software update version according to the present invention;
fig. 2 is a schematic diagram of a specific implementation process of the client.
Detailed Description
In order to make the technical problems, technical solutions and advantageous effects solved by the present invention more clearly apparent, the present invention is further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
The invention provides a system for automatically and efficiently releasing a software update version, which comprises a management end, a server end and a client end, and is referred to in figure 1;
the management terminal is used for creating a release template and filling release configuration information into the release template; wherein the publishing configuration information comprises: the method comprises the steps that information whether an updating version of software to be released automatically rolls back or not when upgrading fails is judged; the types of the codes of the update versions of the software to be released include, but are not limited to, the following four types, which are respectively: tomcat code type, windows iis code type, windows service code type, and. net code type. Then, the management terminal seals the release configuration information in the release template into task description information and issues the task description information to the server terminal; in practical application, a webManager is adopted by a management end to configure a module for the front end of the system, and operation and maintenance personnel configure a release template through the management end. And after the release template is configured, storing the release configuration information into the mysql database. Therefore, for operation and maintenance personnel, the subsequent software update version release process does not need to be participated, and the operation and maintenance personnel only need to click a template to be released through the webManager to deploy codes, and click to confirm the release after the software update version to be released is selected.
The server is configured to receive the task description information from the management end, analyze the task description information, and obtain specific publishing configuration information, so that the server obtains the ID of the client to be published; then, the server side issues the task description information to the corresponding client side to be issued; specifically, the service end adopts a SaltMaster which is a central control machine of the release system, communicates with the webManager through an HTTP API, and receives task description information of deployment codes of developers. And meanwhile, the SaltMaster communicates with the client SaltMinion to control all clients to be released. The SaltMaster will forward the received task description information to saltnmion.
The client is used for receiving the task description information from the server and executing the task description information; the client side runs on each server needing to be released by adopting the SaltMinion, and the function of the client side is to receive the task description information transmitted by the SaltMaster, analyze and execute the task description information.
Referring to fig. 2, the specific implementation process of the client is as follows:
(1) the client analyzes the task description information to obtain the code type of the update version of the software to be released, an installation directory of the update version of the software to be released, an execution folder path, the address of the update version of the software to be released, a starting script path and information on whether the software is automatically rolled back or not when the upgrading fails;
(2) then, the client creates a corresponding operation class according to the code type of the update version of the software to be released; specifically, a class corresponding to different software update version code types is inherited through a BaseDeployer class, and an operation class corresponding to a tomcat code type is a MultiTomcat Deployer operation class; the operation class corresponding to the windows iis code type is ArchiveDeployer; the operation class corresponding to the windows service code type is RpmDeployer; the operation class corresponding to the net code type is ArchiveDeployer. The operation class is created by a factory class DeployerFactory according to the type field in the task description information.
The operation class divides each release task into four processes: preparing, before, during and after the release, the Prepare, the Pre-release, the release and the Post-release correspondingly.
(3) A preparation stage: the operation class checks the standardization of the release environment and the task description information, if the check is not passed, the release of the software update version is stopped, and error information is returned to the developer to the webManager; if the check is passed, the operation class installs a directory according to the software update version to be released, and creates a deployment folder in the software update version installation directory to be released;
(4) a pre-release stage: the operation class adopts the backup folder to backup the old software version codes existing in the online environment, which is very important, and if any problem exists in the system, the codes on the old version online environment can be ensured to be retrieved and the service can be stopped.
And a release middle stage: the operation class downloads the software update version to be released according to the address of the software update version to be released; then, the operation class locates to an execution folder according to the execution folder path; then, the operation class copies the downloaded update version of the software to be released to the execution folder; copying the update version of the software to be released in the execution folder to the deployment folder;
(5) then, the operation class calls the start script according to the start script path, the start script executes the update version of the software to be published in the deployment folder, and the update version of the software to be published is published to a corresponding client; if the automatic rollback information is configured to the automatic rollback information when the upgrade fails, in the process of publishing the updated version of the software to be published to the corresponding client, if the upgrade fails, the start script immediately reads the old software version code from the backup folder, copies the old software version code to the deployment folder, then executes the old software version code in the deployment folder, and publishes the old software version code to the corresponding client, so that the function of automatically rolling back the old version is realized.
After release: after the release, the script is started to return the final result of the release process to the webManager, and the whole release process is finished.
In practical application, the publishing configuration information further includes the following publishing configuration information: whether to disable the upgraded client from load balancing first, whether to disable the upgraded client from monitoring, whether to enable the corresponding client from monitoring after upgrading, and whether to enable the corresponding client from load balancing after upgrading.
If the configuration is that the upgraded client is disabled from load balancing first, the upgraded client is disabled from monitoring, the corresponding client is enabled from monitoring after upgrading, and the corresponding client is enabled from load balancing after upgrading, the upgraded client is disabled from load balancing first and the upgraded client is disabled from monitoring first before the start script executes the update version of the software to be issued in the deployment folder; and after the upgrade is successful, the starting script starts the corresponding client from the monitoring and starts the corresponding client from the load balancing.
The system architecture and the process of the SaltMinion parsing and issuing the task information in the steps are the key points of the technology. By dividing into four stages, different types of release tasks can be supported.
Therefore, through the invention, developers can select the version and the client to be released only after configuring different types of release templates, and the deployment can be finished by self. After the code is released, the system downloads the code file on the selected server according to the configured release template, executes the operation to be executed by different release types, starts the service, returns the release state to the developer, and completes the whole release process. Therefore, operation and maintenance personnel do not need to intervene in the whole release process in the whole process; one publishing template can be directly selected to be published to a plurality of clients, and the number of published clients is not a problem; for different release types, the system determines to execute corresponding release modes; when the release is in problem, the system can automatically select the old software version to release again, and a fast rollback flow is achieved.
According to the system for automatically and efficiently releasing the software update version, the whole online process of the software update version is simple and efficient, the workload and the working strength of operation and maintenance personnel are effectively reduced, and the efficiency of releasing the software update version is improved. Meanwhile, by standardizing the release process of the software update version, the success rate of online of the whole software update version is greatly improved, the rollback speed is increased, and the service provided by online service is ensured to be stable for a long time.
The foregoing is only a preferred embodiment of the present invention, and it should be noted that, for those skilled in the art, various modifications and improvements can be made without departing from the principle of the present invention, and such modifications and improvements should also be considered within the scope of the present invention.

Claims (5)

1. A system for automatically and efficiently releasing a software update version is characterized by comprising a management end, a server end and a client end;
the management terminal is used for creating a release template and filling release configuration information into the release template; wherein the publishing configuration information comprises: the method comprises the steps that a client ID, a code type of an update version of software to be released, an installation directory of the update version of the software to be released, an execution folder path, an address of the update version of the software to be released, a starting script path and information whether to automatically rollback or not when upgrading fails are determined; then, the management terminal seals the release configuration information in the release template into task description information and issues the task description information to the server terminal;
the server is configured to receive the task description information from the management end, analyze the task description information, and obtain specific release configuration information, so that the server obtains the client ID; then, the server side issues the task description information to the corresponding client side;
the client is used for receiving the task description information from the server and executing the task description information; the specific execution process comprises the following steps: (1) the client analyzes the task description information to obtain the code type of the update version of the software to be released, an installation directory of the update version of the software to be released, an execution folder path, the address of the update version of the software to be released, a starting script path and information on whether the software is automatically rolled back or not when the upgrading fails; (2) then, the client creates a corresponding operation class according to the code type of the update version of the software to be released; (3) the operation class checks the standardization of the release environment and the task description information, and if the check is not passed, the release of the software update version is stopped; if the check is passed, the operation class installs a directory according to the software update version to be released, and creates a deployment folder in the software update version installation directory to be released; (4) then, the operation class backups the existing old software version codes of the online environment by adopting a backup folder, and downloads the old software version codes to the update version of the software to be released according to the update version address of the software to be released; then, the operation class locates to an execution folder according to the execution folder path; then, the operation class copies the downloaded update version of the software to be released to the execution folder; copying the update version of the software to be released in the execution folder to the deployment folder; (5) then, the operation class calls a start script according to the start script path, the start script executes the update version of the software to be published in the deployment folder, and the update version of the software to be published is published to a corresponding client; if the automatic rollback information is configured to the automatic rollback information when the upgrade fails, in the process of publishing the updated version of the software to be published to the corresponding client, if the upgrade fails, the start script immediately reads the old software version code from the backup folder, copies the old software version code to the deployment folder, then executes the old software version code in the deployment folder, and publishes the old software version code to the corresponding client, so that the function of automatically rolling back the old version is realized.
2. The system for automatically and efficiently publishing the software update version according to claim 1, wherein the code types of the software update version to be published include four types, respectively: tomcat code type, windows iis code type, windows service code type, and. net code type.
3. The system for automatically and efficiently publishing the software update version according to claim 2, wherein the operation class corresponding to the tomcat code type is a multitomcat developer operation class; the operation class corresponding to the windows iis code type is ArchiveDeployer; the operation class corresponding to the windows service code type is RpmDeployer; the operation class corresponding to the net code type is ArchiveDeployer.
4. The system for automated, efficient software update version distribution according to claim 1, wherein the distribution configuration information further comprises the following distribution configuration information: whether to disable the upgraded client from load balancing first, whether to disable the upgraded client from monitoring, whether to enable the corresponding client from monitoring after upgrading, and whether to enable the corresponding client from load balancing after upgrading.
5. The system according to claim 4, wherein if the configuration is such that the upgraded client is disabled from load balancing, the upgraded client is disabled from monitoring, the corresponding client is enabled from monitoring after upgrading, and the corresponding client is enabled from load balancing after upgrading, the start script disables the upgraded client from load balancing before executing the software update to be distributed in the deployment folder, and simultaneously disables the upgraded client from monitoring; and after the upgrade is successful, the starting script starts the corresponding client from the monitoring and starts the corresponding client from the load balancing.
CN201711436644.5A 2017-12-26 2017-12-26 System for automatically and efficiently releasing software update version Active CN108170448B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711436644.5A CN108170448B (en) 2017-12-26 2017-12-26 System for automatically and efficiently releasing software update version

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711436644.5A CN108170448B (en) 2017-12-26 2017-12-26 System for automatically and efficiently releasing software update version

Publications (2)

Publication Number Publication Date
CN108170448A CN108170448A (en) 2018-06-15
CN108170448B true CN108170448B (en) 2020-06-09

Family

ID=62521228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711436644.5A Active CN108170448B (en) 2017-12-26 2017-12-26 System for automatically and efficiently releasing software update version

Country Status (1)

Country Link
CN (1) CN108170448B (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984193A (en) * 2018-06-21 2018-12-11 深圳伊泉净品科技有限公司 Software service dispositions method
CN111444285A (en) * 2018-12-29 2020-07-24 北京奇虎科技有限公司 Operation data configuration method and device
WO2021051341A1 (en) * 2019-09-19 2021-03-25 深圳市大疆创新科技有限公司 System operation method, system, mobile platform and storage medium
CN110941446B (en) * 2019-11-06 2021-06-18 深圳市云网万店科技有限公司 Version release method and device based on multi-environment offline task
CN111078249B (en) * 2019-11-08 2023-06-02 泰康保险集团股份有限公司 Software updating method, system, equipment and storage medium
CN111240925A (en) * 2019-12-30 2020-06-05 昆明尚禾农业科技有限公司 Agricultural automation equipment monitoring operation and maintenance system
CN111367564B (en) * 2020-03-20 2023-05-16 成都药王科技股份有限公司 Program iteration wire management system for operation and maintenance platform
CN111506455B (en) * 2020-03-31 2021-06-25 拉扎斯网络科技(上海)有限公司 Checking method and device for service release result
CN113296828A (en) * 2021-05-26 2021-08-24 北京京东振世信息技术有限公司 Method, server and system for issuing application
CN115065595B (en) * 2022-08-17 2022-12-02 湖南云畅网络科技有限公司 Automatic release deployment method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915504A (en) * 2012-10-09 2013-02-06 中国联合网络通信集团有限公司 Software release method and device
US8924952B1 (en) * 2012-06-27 2014-12-30 Amazon Technologies, Inc. Updating software utilizing multiple partitions
WO2016144297A1 (en) * 2015-03-06 2016-09-15 General Electric Company Automatic deployment of control code
CN107315608A (en) * 2017-06-22 2017-11-03 上海艾融软件股份有限公司 Towards the hot update method of mobile terminal mixed mode
CN107391092A (en) * 2016-05-16 2017-11-24 北京京东尚科信息技术有限公司 The method and system of automatic deployment associated software

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924952B1 (en) * 2012-06-27 2014-12-30 Amazon Technologies, Inc. Updating software utilizing multiple partitions
CN102915504A (en) * 2012-10-09 2013-02-06 中国联合网络通信集团有限公司 Software release method and device
WO2016144297A1 (en) * 2015-03-06 2016-09-15 General Electric Company Automatic deployment of control code
CN107391092A (en) * 2016-05-16 2017-11-24 北京京东尚科信息技术有限公司 The method and system of automatic deployment associated software
CN107315608A (en) * 2017-06-22 2017-11-03 上海艾融软件股份有限公司 Towards the hot update method of mobile terminal mixed mode

Also Published As

Publication number Publication date
CN108170448A (en) 2018-06-15

Similar Documents

Publication Publication Date Title
CN108170448B (en) System for automatically and efficiently releasing software update version
CN106126273B (en) A kind of method of upgrading BIOS
CN108632375B (en) Online upgrading method for distributed deployment service software program
US9485151B2 (en) Centralized system management on endpoints of a distributed data processing system
CN106708740B (en) Script testing method and device
US20220276854A1 (en) Application Deployment Method, Apparatus, and System
CN113569987A (en) Model training method and device
CN114003312A (en) Big data service component management method, computer device and storage medium
CN111625245A (en) Inference service deployment method, device, equipment and storage medium
CN116820493A (en) Mirror image file deployment method, system, equipment and storage medium
CN113434180B (en) Data processing method and device for application, server and storage medium
CN112860251A (en) Method and system for constructing website front end
CN114546588A (en) Task deployment method and device, storage medium and electronic device
US9760364B2 (en) Checks for software extensions
US9207928B2 (en) Computer-readable medium, apparatus, and methods of automatic capability installation
US20190012161A1 (en) Distributed and self-deleting apparatus for fast software deployment and upgrade in a network
CN117055930A (en) System upgrading deployment method and system
CN114879977A (en) Application deployment method, device and storage medium
CN111984275A (en) System deployment method, system, terminal and storage medium based on CPU architecture type
CN114531443B (en) Container control method and system based on cluster
CN113190262B (en) Cloud-based distributed software version management and control system and control method
CN112732290B (en) Equipment upgrading method and device, storage medium and electronic device
US11729051B2 (en) Automated deployment of control nodes at remote locations
CN116360800B (en) Deployment method and device of code branching environment and electronic equipment
CN114240265B (en) Product deployment method and device based on mixed environment

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
GR01 Patent grant
GR01 Patent grant