US10241774B2

Release lifecycle management system for multi-node application

Summary by NHIP

Multi-node release switching method

The method switches a cloud web application to an updated release using a manifest specifying component roles and test instance counts. It determines current jobs, obtains updated manifests with version numbers and package specifications, and distributes changes to deployment agents on VMs.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

A deployment system provides the ability to deploy a multi-node distributed application, such as a cloud computing platform application that has a plurality of interconnected nodes performing specialized jobs. The deployment system may update a currently running cloud computing platform application according to a deployment manifest and a versioned release bundle that includes jobs and application packages. The deployment system determines changes to the currently running cloud computing platform application and distributes changes to each job to deployment agents executing on VMs. The deployment agents apply the updated jobs to their respective VMs (e.g., launching applications), thereby deploying an updated version of cloud computing platform application.

US10241774B2, drawing sheet 1
Sheet 1 of 11

Term

5.7 yearsleft in the term

Expires 19 May 2032, including 57 days of term adjustment.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

15 claims: 3 independent, 12 dependent

  1. 1
    Broadest claimClaim Score 20, narrow(NHIP)A computer-implemented method for switching to an updated release of a web application platform in a cloud computing environment, the method comprising:receiving a request to update a current deployment of the web application platform in the cloud computing environment using an updated release of the web application platform, wherein contents of the updated release are specified by an updated release manifest of the web application platform, wherein the request includes an updated deployment manifest for the web application platform, wherein the updated deployment manifest for the web application platform includes data representing a plurality of components of the deployed web application platform in the cloud computing environment, wherein the updated deployment manifest specifies a respective role for each component of the plurality of components of the web application platform, and wherein the updated deployment manifest specifies one or more update settings comprising a respective number of test instances for each job of a plurality of jobs of the web application platform;determining first jobs specified by a current release manifest for the current deployment of the web application platform;obtaining the updated release manifest of the web application platform, wherein the updated release manifest includes: respective version numbers for each job of the plurality of jobs, each job corresponding to a respective role to be performed by a respective component of the plurality of components of the web application platform, and package specifications for one or more respective packages required for each job of the plurality of jobs;comparing the first jobs specified by the current release manifest of the web application platform to second jobs specified by the updated release manifest of the web application platform to identify one or more existing jobs of the web application platform that are updated by the updated release of the web application platform;providing a respective update request to each virtual machine in the cloud computing environment executing an existing job that is updated by the updated release, wherein the update request specifies replacing the exiting job with an updated job of the updated release of the web application platform;deploying a particular number of test instances specified by the update settings for the job that is updated by the updated release of the web application platform;determining that a threshold number of test instances succeeded;and in response to determining that the threshold number of test instances succeeded, replacing the existing job with the updated job of the updated release of the web application platform.
  2. 6
    A system comprising:one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving a request to update a current deployment of a web application platform deployed in a cloud computing environment using an updated release of the web application platform, wherein contents of the updated release are specified by an updated release manifest of the web application platform, wherein the request includes an updated deployment manifest for the web application platform, wherein the updated deployment manifest for the web application platform includes data representing a plurality of components of the deployed web application platform in the cloud computing environment, wherein the updated deployment manifest specifies a respective role for each component of the plurality of components of the web application platform, and wherein the updated deployment manifest specifies one or more update settings comprising a respective number of test instances for each job of a plurality of jobs of the web application platform;determining first jobs specified by the current release manifest for the current deployment of the web application platform;obtaining the updated release manifest of the web application platform, wherein the updated release manifest includes: respective version numbers for each job of the plurality of jobs, each job corresponding to a respective role to be performed by a respective component of the plurality of components of the web application platform, and package specifications for one or more respective packages required for each job of the plurality of jobs;comparing the first jobs specified by the current release manifest of the web application platform to second jobs specified by the updated release manifest of the web application platform to identify one or more existing jobs of the web application platform that are updated by the updated release of the web application platform;providing a respective update request to each virtual machine in the cloud computing environment executing an existing job that is updated by the updated release, wherein the update request specifies replacing the existing job with an updated job of the updated release of the web application platform;deploying a particular number of test instances specified by the update settings for the job that is updated by the updated release of the web application platform;determining that a threshold number of test instances succeeded;and in response to determining that the threshold number of test instances succeeded, replacing the existing job with the updated job of the updated release of the web application platform.
  3. 11
    A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:receiving a request to update a current deployment of a web application platform deployed in a cloud computing environment using an updated release of the web application platform, wherein contents of the updated release are specified by an updated release manifest of the web application platform, wherein the request includes an updated deployment manifest for the web application platform, wherein the updated deployment manifest for the web application platform includes data representing a plurality of components of the deployed web application platform in the cloud computing environment, wherein the updated deployment manifest specifies a respective role for each component of the plurality of components of the web application platform, and wherein the updated deployment manifest specifies one or more update settings comprising a respective number of test instances for each job of a plurality of jobs of the web application platform;determining first jobs specified by the current release manifest for the current deployment of the web application platform;obtaining the updated release manifest of the web application platform, wherein the updated release manifest includes: respective version numbers for each job of the plurality of jobs, each job corresponding to a respective role to be performed by a respective component of the plurality of components of the web application platform, and package specifications for one or more respective packages required for each job of the plurality of jobs;comparing the first jobs specified by the current release manifest of the web application platform to second jobs specified by the updated release manifest of the web application platform to identify one or more existing jobs of the web application platform that are updated by the updated release of the web application platform;providing a respective update request to each virtual machine in the cloud computing environment executing an existing job that is updated by the updated release, wherein the update request specifies replacing the exiting job with an updated job of the updated release of the web application platform;deploying a particular number of test instances specified by the update settings for the job that is updated by the updated release of the web application platform;determining that a threshold number of test instances succeeded;and in response to determining that the threshold number of test instances succeeded, replacing the existing job with the updated job of the updated release of the web application platform.