IP Library Granted Patent US 9,342,299
Granted Patent B2
US 9,342,299 · App. 14/189,610 · Granted May 17, 2016

Deployment optimization for activation of scaled applications in a multi-tenant platform-as-a-service (PaaS) system

Inventors: Andrew Goldstein (Raleigh, NC); Daniel McPherson (Raleigh, NC); Clayton Coleman (Raleigh, NC); Jay Johnson (Arlington, VA)
Assignee: Red Hat, Inc.
G06F8/71G06F8/60G06F8/61H04L67/10H04M1/72525
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 9,342,299
App. No.
14/189,610
Granted
May 17, 2016
Kind
B2
Abstract

A mechanism for optimization of deployment of applications for activation in a multi-tenant Platform-as-Service (PaaS) system is disclosed. A method of the disclosure includes receiving, by a processing device, a request for deployment of an application source code on a node. The node is provided by the PaaS system. The method also includes implementing, by the processing device, a build, prepare and distribute functionality to convert the application source code into a build result prepared for distribution as a deployment artifact code. The method further includes implementing, by the processing device, a deployment functionality to activate the deployment artifact for the deployment in the node by not incurring downtime.

Claims (38)

1. A method comprising:

receiving, by a processing device, a request for deployment of application source code in a node, wherein the node is provided by a multi-tenant Platform-as-a-Service (PaaS) system, wherein each gear of a plurality of gears is a resource-constrained process space on the node to execute functionality of an application, wherein a first gear hosts a currently-executing application;

converting the application source code into a build result prepared for distribution as a deployment artifact by implementing, by the processing device, a first functionality on the application source code; and

activating the deployment artifact for the deployment in the node without downtime by implementing, by the processing device, a deployment functionality on the deployment artifact, wherein the activating comprises:

creating a second gear to host the deployment artifact;

copying the deployment artifact into the second gear;

executing the deployment artifact in the second gear; and

deleting the first gear after execution of the deployment artifact in the second gear.

2. The method of claim 1 , wherein the deployment of the application source code comprises at least one of creation of a new application or updating the currently-executing application.

3. The method of claim 1 wherein time to activate the deployment artifact for the deployment comprises:

Tsp (deploy)=( N (gears)/ N (extra_ cap )−1)*( T ( gear _create)+ T ( gear _deploy)+ T ( gear _activate))

where N(gears) is a number of gears in the application, N(extra_cap) is an extra capacity in number of gears, T(gear_create) is a time to create the second gear with an instance of cartridges, T(gear_deploy) is a time to copy the deployment artifact onto disk from the source, and T(gear_activate) is a time to swap the artifact to a newly deployed version and start the second gear, wherein the time to activate the deployment artifact for the deployment is a minimum time that the application is not stopped for execution to not incur downtime.

4. A system comprising:

a memory;

a processing device communicably coupled to the memory to:

receive a request for deployment of an application source code in a node, wherein the node is provided by a multi-tenant Platform-as-a-Service (PaaS) system, wherein each gear of a plurality of gears is a resource-constrained process space on the node to execute functionality of an application, wherein a first gear hosts a currently-executing application;

convert the application source code into a build result prepared for distribution as a deployment artifact by implementing a first functionality on the application source code; and

activate the deployment artifact for the deployment in the node without downtime by implementing a deployment functionality on the deployment artifact, wherein the processing device to activate comprises the processing device to

store the deployment artifact in a temporary location, wherein the temporary location comprises a deployment directory;

stop execution of the currently-executing application in the first gear;

copy the deployment artifact from the temporary location into the first gear; and

restart the first gear for execution of the deployment artifact.

5. The system of claim 4 , wherein time to activate the deployment artifact for the deployment comprises:

Tinp (deploy)=( N (gears)/( N (extra_cap)+ N (fraction))−1)*( T (gear_activate))

where N(gears) is number of gears in the application, N(extra_cap) is extra capacity in number of gears, N(fraction) equals N(gears)*number of gears that are allowed to be down at any given point in time, and T(gear_activate) is a time to swap the artifact to a newly deployed version and restart the first gear, wherein the time to activate the deployment artifact for the deployment is a minimum time that the application is not stopped for execution to not incur downtime.

6. The system of claim 4 wherein the deployment of the application source code comprises at least one of creation of a new application or updating the currently-executing application.

7. A non-transitory machine-readable storage medium comprising data that, when accessed by a processing device, cause the processing device to:

receive, by the processing device, a request for deployment of an application source code in a node, wherein the node is provided by a multi-tenant Platform-as-a-Service (PaaS) system, wherein each gear of a plurality of gears is a resource-constrained process space on the node to execute functionality of an application, wherein a first gear hosts a currently-executing application;

convert the application source code into a build result prepared for distribution as a deployment artifact by implementing, by the processing device, a first functionality on the application source code; and

activate the deployment artifact for the deployment in the node without downtime by implementing, by the processing device, a deployment functionality on the deployment artifact, wherein the processing device to activate comprises the processing device to:

create a second gear to host the deployment artifact;

copy the deployment artifact into the second gear;

execute the deployment artifact in the second gear; and

delete the first gear after execution of the deployment artifact in the second gear.

8. The non-transitory machine-readable storage medium of claim 7 wherein the deployment of the application source code comprises at least one of creation of a new application or updating the currently-executing application.

9. The non-transitory machine-readable storage medium of claim 7 , wherein time to activate the deployment artifact for the deployment comprises:

Tsp (deploy)=( N (gears)/ N (extra_ cap )−1)*( T ( gear _create)+ T ( gear _deploy)+ T ( gear _activate))

where N(gears) is a number of gears in the application, N(extra_cap) is an extra capacity in number of gears, T(gear_create) is a time to create the second gear with an instance of cartridges, T(gear_deploy) is a time to copy the deployment artifact onto disk from the source, and T(gear_activate) is a time to swap the artifact to a newly deployed version and start the second gear, wherein the time to activate the deployment artifact for the deployment is a minimum time that the application is not stopped for execution to not incur downtime.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2014
From: GOLDSTEIN, ANDREW; MCPHERSON, DANIEL; COLEMAN, CLAYTON; JOHNSON, JAY
To: RED HAT, INC.
Reel/Frame 032299/0969 →
Continuity (1)
Related Publication 20150242199A1 · Aug 27, 2015