Release lifecycle management system for a multi-node application

US8997078B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-8997078-B2
Application numberUS-201213428125-A
CountryUS
Kind codeB2
Filing dateMar 23, 2012
Priority dateApr 12, 2011
Publication dateMar 31, 2015
Grant dateMar 31, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

We claim: 1. A computer processor-implemented method for updating an application having a plurality of functional components that are executed on a plurality of different virtual machines (VMs), the method comprising: receiving, by a deployment module, a specification for the application to be updated, wherein the specification identifies a set of software components representing an updated version of the application and containing machine architecture independent code which implements each of the functional components of the application; identifying at least one functional component that is to be updated by comparing the set of software components for the updated version of the application and a set of software components that have been deployed for a currently-deployed application; and directing an agent in each of the VMs that is executing as an instance of the identified functional component to install one or more software components in the VM, thereby causing the VM to execute as an updated instance of the functional component of the application; wherein the machine architecture independent code which implements each of the functional components of the application comprises a script configured to, when executed by an agent in one of the VMs executing as an instance of the functional component, cease acceptance of new work for the instance of the functional component and suspend operation of the instance of the functional component upon completion of any existing work. 2. The method of claim 1 , wherein the directing the agent in each of the VMs further comprises: directing each agent in a number of VMs executing as an instance of the identified functional component to install the one or more software components in the VM, wherein the number of VMs at a given time does not exceed a value provided by the specification for the application to be updated that specifies maximum number of instances of any one of the functional components that may be updated at a same time. 3. The method of claim 1 , wherein the directing the agent in each of the VMs further comprises: directing each agent in each of the VMs executing as an instance of the identified functional component to install the one or more software components in the VM; initiating, for each of the agents, a timer having a time interval, specified by the specification for the application to be updated, that indicates a time duration permissible for completing an update of the identified functional component; and responsive to expiry of the timer, determining whether each agent in each of the VMs has completed update of the identified functional component. 4. The method of claim 1 , wherein the directing the agent in each of the VMs further comprises: directing each agent in a subset of the VMs executing as an instance of the identified functional component to install the one or more software components in the VM, wherein the subset of VMs are specified by the specification for the application to be updated; and responsive to determining that each agent in the subset of VMs has successfully completed an update to the identified functional component, directing each agent in a remainder of the VMs executing as an instance of the identified functional component to install the one or more software components in the VM. 5. The method of claim 4 , wherein the directing the agent in each of the VMs further comprises: initiating, for each of the agents in the subset of VMs, a timer having a time interval, specified by the specification for the application to be updated, that indicates a time duration permissible for completing, at the subset of VMs, the update of the identified functional component. 6. The method of claim 1 , wherein the specification for the application specifies (i) a number of instances of each functional component of the application that is to be deployed, and (ii) hardware properties that would be required by any node executing any one of the functional components. 7. A non-transitory computer-readable storage medium comprising instructions that, when executed in a computing device, update an application having a plurality of functional components that are executed on a plurality of different virtual machines (VMs), by performing the steps of: receiving, by a deployment module, a specification for the application to be updated, wherein the specification identifies a set of software components representing an updated version of the application and containing machine architecture independent code which implements each of the functional components of the application; identifying at least one functional component that is to be updated by comparing the set of software components for the updated version of the application and a set of software components that have been deployed for a currently-deployed application; and directing an agent in each of the VMs that is executing as an instance of the identified functional component to install one or more software components in the VM, thereby causing the VM to execute as an updated instance of the functional component of the application; wherein the machine architecture independent code which implements each of the functional components of the application comprises a script configured to, when executed by an agent in one of the VMs executing as an instance of the functional component, cease acceptance of new work for the instance of the functional component and suspend operation of the instance of the functional component upon completion of any existing work. 8. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions for directing the agent in each of the VMs further comprising instructions for: directing each agent in a number of VMs executing as an instance of the identified functional component to install the one or more software components in the VM, wherein the number of VMs at a given time does not exceed a value provided by the specification for the application to be updated that specifies maximum number of instances of any one of the functional components that may be updated at a same time. 9. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions for directing the agent in each of the VMs further comprising instructions for: directing each agent in each of the VMs executing as an instance of the identified functional component to install the one or more software components in the VM; initiating, for each of the agents, a timer having a time interval, specified by the specification for the application to be updated, that indicates a time duration permissible for completing an update of the identified functional component; and responsive to expiry of the timer, determining whether each agent in each of the VMs has completed update of the identified functional component. 10. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions for directing the agent in each of the VMs further comprising instructions for: directing each agent in a subset of the VMs executing as an instance of the identified functional component to install the one or more software components in the VM, wherein the subset of VMs are specified by the specification for the application to be updated; and responsive to determining that each agent in the subset of VMs has successfully completed an update to the identified functional component, directing each agent in a remainder of the VMs executing as an instance of the identified functional component to install the one or more software components in the VM. 11. The non-transitory computer-readable storage medium of claim 10 , wherein the instructions f

Assignees

Inventors

Classifications

  • G06F9/5055Primary

    considering software capabilities, i.e. software resources associated or available to the machine · CPC title

  • Admission control; Resource allocation · CPC title

  • Updates (security arrangements therefor G06F21/57) · CPC title

  • H04L67/34Primary

    involving the movement of software or configuration parameters  (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US8997078B2 cover?
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 applicat…
Who is the assignee on this patent?
Spivak Vadim, Skaar Kent, Shaldibin Oleg, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/5055. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 31 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).