IP Library Granted Patent US 10,241,774
Granted Patent B2
US 10,241,774 · App. 14/964,969 · Granted Mar 26, 2019

Release lifecycle management system for multi-node application

Inventors: Vadim Spivak (Emerald Hills, CA); Kent Skaar (Stow, MA); Oleg Shaldibin (Palo Alto, CA)
Assignee: Pivotal Software, Inc.
G06F8/65G06F8/658G06F8/71G06F9/45558G06F9/5055H04L41/0806H04L47/70H04L67/10H04L67/34G06F9/45533G06F2009/4557G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,241,774
App. No.
14/964,969
Granted
Mar 26, 2019
Kind
B2
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.

Claims (50)

1. 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. The method of claim 1 , wherein the updated release comprises all job specifications for all components of the web application platform, and further comprising:

providing the update request to only a subset of virtual machines of the web application platform.

3. The method of claim 1 , wherein the update settings specify a watch time for each test instance, and further comprising:

waiting for at least the specified watch time before updating the existing job.

4. The method of claim 1 , wherein the web application platform includes a multi-node application.

5. The method of claim 1 , wherein each virtual machine of the cloud computing environment receiving the update request executes a lifecycle script for the existing job to transition the existing job executing on the virtual machine to the updated job.

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.

7. The system of claim 6 , wherein the updated release comprises all job specifications for all components of the web application platform, and wherein the operations further comprise providing the update request to only a subset of virtual machines of the web application platform.

8. The system of claim 6 , wherein the update settings specify a watch time for each test instance, and further comprising:

waiting for at least the specified watch time before updating the existing job.

9. The system of claim 6 , wherein the web application platform includes a multi-node application.

10. The system of claim 6 , wherein each virtual machine of the cloud computing environment receiving the update request executes a lifecycle script for the existing job to transition the existing job executing on the virtual machine to the updated job.

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.

12. The computer program product of claim 11 , wherein the updated release comprises all job specifications for all components of the web application platform, and wherein the operations further comprise providing the update request to only a subset of virtual machines of the web application platform.

13. The computer program product of claim 11 , wherein the update settings specify a watch time for each test instance, and further comprising:

waiting for at least the specified watch time before updating the one or more existing jobs.

14. The computer program product of claim 11 , wherein the web application platform includes a multi-node application.

15. The computer program product of claim 11 , wherein each virtual machine of the cloud computing environment receiving the update request executes a lifecycle script for the existing job to transition the existing job executing on the virtual machine to the updated job.

Assignments (3)
MERGER Recorded May 20, 2026
From: PIVOTAL SOFTWARE, INC.
To: VMWARE LLC
Reel/Frame 075614/0184 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2015
From: SPIVAK, VADIM; SKAAR, KENT; SHALDIBIN, OLEG
To: VMWARE, INC.
Reel/Frame 037264/0520 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2015
From: VMWARE, INC.
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 037264/0573 →
Continuity (4)
Continuation 14642650 · Mar 9, 2015
Continuation 13428125 · Mar 23, 2012
Provisional Application 61474669 · Apr 12, 2011
Related Publication 20160098262A1 · Apr 7, 2016
Cited By (1)
US 12,450,099