GB2516009A - Automated software deployment management - Google Patents

Automated software deployment management Download PDF

Info

Publication number
GB2516009A
GB2516009A GB1311790.8A GB201311790A GB2516009A GB 2516009 A GB2516009 A GB 2516009A GB 201311790 A GB201311790 A GB 201311790A GB 2516009 A GB2516009 A GB 2516009A
Authority
GB
United Kingdom
Prior art keywords
remote machines
software
user
server
remote
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.)
Withdrawn
Application number
GB1311790.8A
Other versions
GB201311790D0 (en
Inventor
Muntedhar Sahib Alhakim
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to GB1311790.8A priority Critical patent/GB2516009A/en
Publication of GB201311790D0 publication Critical patent/GB201311790D0/en
Publication of GB2516009A publication Critical patent/GB2516009A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Abstract

An automated software deployment management system for the distribution of software objects/updates from one server to another server. The servers may sit on the same network or on separate networks. The system comprising a process to receive and store code for managing the software deployment, a process to schedule instructions for remote machines, a process for communication instructions to and from remote machines, a process for remote machines to download prerequisites, a process for the remote machines to process said software and log data relating to said process. The installation of software objects/updates on remote machines can be scheduled for immediate action or for a later time and date, for one or more machines. If an error occurs the installation process can be stopped, the system may also instruct the remote machines to complete various tasks e.g. reboot or delete log files. The system will optionally perform backups of the application and all data it is replacing if required. The performance and health of the remote machine(s) may be monitored by the deployment management system.

Description

DEscmPToN This nventwn reates to an automated software depovment management system In some computer environments, applications are hosted remotely from where the end user is located. When there are new versions, updates) patches, or changes of this software available, the software hosted at each of the servers hosting the application will need to be updated. The updating of these servers manually is time consuming, is usually complex, requires significant resources, and is very error prone.
Additionally, some of these components may rely on other components sitting on the same infrastructure, these components will all have to be updated at the same time, without bringing the entire system down.
These components may have to be updated in a certain order, to ensure that there are no errors while attempting to update or install the application, as the application's components have interdependencies.
Furthermore, if there are problems encountered on multiple servers, aggregating all the log files and attempting to analyse them is usually problematic.
To overcome these issues, this invention proposes automating and managing the software deployment to these systems, in order to speed up the deployment, to require fewer resources, and to drastically reduce the number of errors.
The Deployment Management Service (DMS) typically sits on its own server, but can sit on the same server to which it is publishing (called the client server). These systems should be able to communicate with each other, either over Local Area Network (LAN), Wide Area Networks (WAN), or over the Internet. The Deployment Management Service can sit on the same network as the client servers, or on separate networks, as long as there is a valid communications channel or link between them.
It should be noted that the steps below are not required to be performed in a specific order. Any of the steps below can be skipped, and the whole process can be abandoned at any point if the user wishes. The Deployment Management Service will come with workflow already provided, and the user can add, edit or remove any steps in the workflow as required. A workflow includes computer-executable code, for managing the deployment and other processes, and can include if-then-else statements, loops, references and other scripts or steps that are required to complete the deployment. In some situations for example the full and successful completion of one workflow is required before starting another, but not in all situations.
The Deployment Management Service can typically manage the deployment of code from two starting points: receiving human readable code (101), or receiving machine readable code (201). when human readable code is received (101), the Deployment Management Service will compile the code from human readable code to machine readable code (105), then the worlcflow for receiving machine readable code will be executed (201).
If the DM5 receives human readable code, and there is a configuration already set up, then the DM5 will build only the applications that are set up to be deployed through the DM5 (104).
when the DMS receives the machine readable code (201). additional information should be passed to it with the files, but this is not required for all cases. This additional information details which project this code refers to, as the DMS can manage deployments for multiple projects across multiple servers, in multiple geographic locations. There may be additional information, regarding the software version numbers, the authors, the change log (a list of all changes that were performed on the code), but again this is not necessarily required (206). The machine readable code may be compressed in a single file (203), containing multiple projects that require deployment, or the files may arrive singularly (205). The files received may include installation scripts, programs or executables, or they may just be the application files. The files also may contain environment specific configuration instructions (206).
Once the DM5 receives the machine readable code (be it over TCP or UDP connection, HTTP/HTTPS transfer, FTP, FHe Copy, or other methods), then the DM5 will communicate with the File Storage module (204), located typically in the DMS but potentially external to it, and store the machine readable code there, typically compressed in a single file (203), but it also may be stored singularly (205). The File Storage module may store the data locally on the same computer, on a different computer, on a virtual computer, or on another storage medium such as removable hard drives, flash drives, CD ROM drives, remote storage locations or cloud storage. Once this file is successfully uploaded, the user can elect to receive an optional email or other form of notification confirming that the file has been received successfully (207).
If the user has set it up before-hand, this deployment can be performed automatically once a file has been received in the File Storage module (301, 302). Otherwise, the user will login to the DMS (401), and choose which server or servers they wish to deploy this application to (402), and then schedule the deployment (404).
Optionally, the user can go to File Storage module (403), and choose to publish it to a server from this route (405). The user can also elect to publish the machine readable code from one DMS to another DMS (407), located in another location, such as a separate geographical region.
If the user has provided an installation program with the code, then an instruction will be created for the target server in the DMS (406). This information will contain instructions such as when to execute, which server or servers this action should be performed on, and which files to download from the File Storage module. These instructions may optionally contain additional information such as specific configuration details, or additional steps that are required. If the user has not provided an installation program, then the DMS will require the user to detail the location on the remote servers where the files should be installed -this can be for each run of the installation, be set up before-hand, or will use the previously selected values unless they are changed. From here, a server instruction will be created, using the same method as described above.
The client server will be connected to the DMS, either via TCP or UDP connection, HTTP/HTTPS, FTP or other methods, and will periodically check for any new instructions for that client server (501). The remote server will identify itself to the DMS either by machine name, IP Address, a unique ID placed on the server, or by other means. The DMS will hold a corresponding record of the client server machine against its identifier, enabling the DMS to calculate which machine is requesting instructions. If there are any instructions for the server (502), then this will be transmitted to the remote server, along with all required information, such as the uniform resource locator (503) or paths to download or obtain the installation programs and or files, or where the remote server can ask for these locations, e.g. from a closer DMS or a closer File Storage Module.
If the user has specified that a backup is to be taken of the files that will be replaced (505), this is processed before any changes -these files will be backed up to the File Storage Module, in a separate container or location, detailing that they are back up files, from which server, taken at what time (506). Typically the files backed up are the ones replaced, but this may not always be the case, as the user can override what is to be backed up or not to be backed up. These backup files may be transmitted singularly, or as a compressed archive. Backups can be sent to either the same DMS and File Storage module, or a different one, if the user has configured it to do so. Alternatively, backup instructions may execute a specified third party program to perform the backup.
Once the remote server has these instructions and file locations, the remote server will then download all the files specified on to the local machine (504), into a folder specified in a configuration file, or alternatively use a randomly generated temporary location if no such pre-configuration exists. The remote server will then perform the instructions that it was passed, e.g. run this installation program (506) or install that website. The user can define any instructions that are to be processed prior or post the installation, and these will be executed automatically. Any and all log files resulting from the installation of files will be transmitted back to either the DMS (702) or another external service for storage (703), to be displayed to the user (705) for analysis (706), either automated or manual, in addition to these log files being maintained locally on the client server (707).
If an error occurs at any stage during the install process, and if configured to do so and depending on the severity of the error (602), then the installation process may be halted, and the backups restored, depending on the configuration. The user may opt to ignore any and all errors (601), to only ignore certain errors (603), or to ignore no errors (604), and may choose to restore full backups (607), only partial files from backups (606), or to not restore any files at all from backups, or to execute a different application or applications on errors (608). The user may optionally require that if the installation process has failed, to alert the user (609) via email, text message, or any other form of notification (611), and may require the execution of other applications, programs or other machine readable code, or third party applications (610).
The user, via the DMS, may instruct the remote servers to perform additional tasks, such as reboot the computer, or delete log files, by pushing commands or scheduling commands for the remote server to pick up.
These can be created and maintained by the user, by using the same mechanism as described above, and these instructions can either be already pre-installed on the remote server, or be instructed to be downloaded and executed as above.
The DM5 can also deploy applications as above, but instead of requiring the client servers to poll the DM5 for instructions, the DM5 can connect to the client server, and push instructions and files required for installation.
The DM5 may optionally interface with third party services to aid in the installation, update or maintenance of applications, to be run before, during, or after the above installation steps have finished executing.
The user can use the DM5 to monitor the performance of the servers and or the applications running on those servers (801), for example (but not limited to) the CPU usage, memory usage, disk usage and associated performance metrics. The user can set alerting in the DM5 to alert the user, or a third party, if any of the parameters being monitored exceed or miss defined limits (803). The user can optionally instruct the DM5 that if one or more of these alerts (or a specific number of them) is triggered (804), it is then to execute machine readable code (805). This code can be run on the remote server (802), the DM5 (801), or both, or be run against a third party, and there may be many configuration parameters set for each instruction, as there may be many instructions set for one configuration parameter.
Alternatively, the user may elect that the DM5 receives information from a 3rd party monitoring system (901), and act on the information and or alerting that it receives (902), again by setting limits (903) that will perform an action (as above) if the limits are exceeded or missed (904).
The user may choose to have a combination of monitoring from the DM5, and from third party monitoring systems, and act accordingly on these limits.
GB1311790.8A 2013-07-01 2013-07-01 Automated software deployment management Withdrawn GB2516009A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1311790.8A GB2516009A (en) 2013-07-01 2013-07-01 Automated software deployment management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1311790.8A GB2516009A (en) 2013-07-01 2013-07-01 Automated software deployment management

Publications (2)

Publication Number Publication Date
GB201311790D0 GB201311790D0 (en) 2013-08-14
GB2516009A true GB2516009A (en) 2015-01-14

Family

ID=48999347

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1311790.8A Withdrawn GB2516009A (en) 2013-07-01 2013-07-01 Automated software deployment management

Country Status (1)

Country Link
GB (1) GB2516009A (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031371A1 (en) * 2004-07-13 2006-02-09 International Business Machines Corporation Prioritization of application component distribution
US20060212865A1 (en) * 2005-03-16 2006-09-21 Microsoft Corporation Application programming interface for identifying, downloading and installing applicable software updates
US20080016186A1 (en) * 2006-07-12 2008-01-17 Ball Jonathan H Automated Deployment of Change and Configuration Management Software Tools
US20100281473A1 (en) * 2009-04-29 2010-11-04 Microsoft Corporation Automated software deployment triggered by state differences in distributed systems
GB2473946A (en) * 2009-09-25 2011-03-30 Fisher Rosemount Systems Inc Deployment of approved software updates
US20110302573A1 (en) * 2010-06-03 2011-12-08 Microsoft Corporation Metadata driven automatic deployment of distributed server systems
CN102970305A (en) * 2012-12-07 2013-03-13 成都康禾科技有限公司 Deployment method suitable for automatic software installation
US20130219383A1 (en) * 2012-02-16 2013-08-22 Israel Hilerio Using an Application Cache to Update Resources of Installed Applications

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031371A1 (en) * 2004-07-13 2006-02-09 International Business Machines Corporation Prioritization of application component distribution
US20060212865A1 (en) * 2005-03-16 2006-09-21 Microsoft Corporation Application programming interface for identifying, downloading and installing applicable software updates
US20080016186A1 (en) * 2006-07-12 2008-01-17 Ball Jonathan H Automated Deployment of Change and Configuration Management Software Tools
US20100281473A1 (en) * 2009-04-29 2010-11-04 Microsoft Corporation Automated software deployment triggered by state differences in distributed systems
GB2473946A (en) * 2009-09-25 2011-03-30 Fisher Rosemount Systems Inc Deployment of approved software updates
US20110302573A1 (en) * 2010-06-03 2011-12-08 Microsoft Corporation Metadata driven automatic deployment of distributed server systems
US20130219383A1 (en) * 2012-02-16 2013-08-22 Israel Hilerio Using an Application Cache to Update Resources of Installed Applications
CN102970305A (en) * 2012-12-07 2013-03-13 成都康禾科技有限公司 Deployment method suitable for automatic software installation

Also Published As

Publication number Publication date
GB201311790D0 (en) 2013-08-14

Similar Documents

Publication Publication Date Title
CN107729066B (en) Automatic construction and release method and device based on SVN (singular value decomposition) resource library
US11169815B2 (en) Method and system for automation tool set for server maintenance actions
CN108170448B (en) System for automatically and efficiently releasing software update version
US10228925B2 (en) Systems, devices, and methods for deploying one or more artifacts to a deployment environment
US8151257B2 (en) Managing different versions of server components regarding compatibility with collaborating servers
US8407690B2 (en) Method in a network of the delivery of files
CN108733380B (en) Application deployment method and device
US20140317229A1 (en) Automatic versioning and updating M2M network applications
CN103019757A (en) Method, device and system for synchronizing software among multiple clients
US20160350102A1 (en) Multivariate metadata based cloud deployment monitoring for lifecycle operations
US8997083B2 (en) Managing a network of computer systems using a version identifier generated based on software packages installed on the computing systems
US9645809B2 (en) Updating software components through online stores
CN103412768A (en) Zookeeper cluster automatic-deployment method based on script program
CN102025778A (en) Software version upgrading work method based on Shell
EP3444719A1 (en) Method and system for a client to server deployment via an online distribution platform
US9921882B2 (en) Information processing system, deployment method, processing device, and deployment device
US10218780B2 (en) Cloud based peer assisted updates in a device management environment
WO2015043407A1 (en) Method, system, and apparatus for online service inspection
CN105072398B (en) A kind of device updating method and device
CN111786893A (en) method and device for synchronizing software versions of wireless routers in mesh networking
CN109558147A (en) A kind of continuous integrating platform construction method based on Jenkins and Gitlab
WO2016026329A1 (en) Terminal upgrade method and apparatus
CN110912728A (en) Operating system patch batch automatic update management method and system
CN108616391A (en) Method and system for upgrading equipment firmware at server side
CN116820493A (en) Mirror image file deployment method, system, equipment and storage medium

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)