IP Library Granted Patent US 9,973,566
Granted Patent B2
US 9,973,566 · App. 14/541,877 · Granted May 15, 2018

Dynamic creation and execution of containerized applications in cloud computing

Inventors: Stephen M. Hebert (Houston, TX); Robert L. Sherrard (McKinney, TX); Leonardo E. Reiter (Allen, TX)
Assignee: Nimbix, Inc.
H04L67/10G06F9/4843G06F9/505G06F2209/549
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,973,566
App. No.
14/541,877
Granted
May 15, 2018
Kind
B2
Abstract

A method, system, and computer-readable storage medium for creating and executing containerized applications in cloud computing are disclosed. For example, one method involves identifying a command. Such a command indicates an application to be executed by a compute node. The method also involves generating a job for transmission to the compute node. The job indicates a container. The compute node, upon receipt of the job, is configured to create an environment for such a container, execute the application within the container, and generate results of the execution of the application.

Claims (132)

1. A method comprising:

receiving a command at a head node, wherein

the command is to be performed by the head node, and

the command indicates a requested application to be executed by a compute node; and

generating a job, wherein

the job is generated by the head node in response to the command,

the job indicates a container that is configured to provide an environment that supports execution of the requested application,

the job configures the compute node using an environment template for the environment that is configured to cause the compute node to create the environment within the container at the compute node, execute the requested application within the container, and generate a result of the execution of the requested application, and

the environment template identifies one or more resources of the compute node to be used in executing the requested application; and

transmitting the job to the compute node.

2. The method of claim 1 , further comprising:

determining the environment by selecting the environment template, wherein

the environment template is selected based, at least in part, on the requested application; and

selecting the compute node, wherein

the compute node is selected from a cluster of compute nodes,

the compute node is selected based on a set of parameters, and

the set of parameters comprises a parameter that identifies the environment.

3. The method of claim 1 , further comprising:

launching the container at the compute node;

creating the environment within the container, according to a second environment template for the requested application;

configuring the requested application; and

executing the requested application within the container.

4. The method of claim 3 , further comprising:

storing the result from the executing the requested application; and

de-provisioning the container.

5. The method of claim 3 , further comprising:

executing a second requested application within the container, after the requested application has completed.

6. The method of claim 3 , further comprising:

launching a second container at the compute node;

creating a second environment within the second container, according to the second environment template for a second requested application;

configuring a second requested application; and

executing the second requested application within the second container.

7. The method of claim 1 , further comprising:

identifying a second requested application to be executed as part of the command;

determining a second environment, based on the second requested application;

selecting a second compute node, wherein

the second compute node is selected based on the second environment; and

generating a second job for transmission to the second compute node, wherein

the second job indicates a second container,

the second compute node is configured to create the second environment within the second container, and

the second compute node is configured to execute the second requested application within the second container.

8. The method of claim 1 , further comprising:

prior to the generating the job, generating a second job for transmission to the compute node, wherein

the second job indicates an update to the environment,

the compute node is configured to update the environment, and

the compute node is configured to save the environment after the environment is updated.

9. The method of claim 1 , further comprising:

prior to the generating the job, generating a second job for transmission to the compute node, wherein

the second job indicates an update to the requested application,

the compute node is configured to update the requested application, and

the compute node is configured to save the requested application after the requested application is updated.

10. A system comprising:

a head node, comprising

one or more processors, and

a server module, wherein

the server module is configured to

receive a command, wherein

 the command is to be performed by the head node, and

 the command indicates a requested application to be executed by a compute node, and

generate a job for transmission to the compute node, wherein

 the head node generates the job in response to the command,

 the job indicates a container that is configured to provide an environment that supports execution of the requested application,

 the job is configured to configure the compute node to

 create the environment within the container at the compute node, according to an environment template for the requested application,

 execute the requested application within the container, and

 generate a result of the execution of the requested application, and

transmit the job to the compute node.

11. The system of claim 10 , further comprising:

a compute node, wherein

the compute node is configured to

launch the container,

create the environment within the container, according to a second environment template for the requested application,

configure the requested application, and

execute the requested application within the container.

12. The system of claim 11 , wherein

the compute node is further configured to

store the result from the execution of the requested application, and

de-provision the container.

13. The system of claim 11 , wherein

the compute node is further configured to

execute a second requested application within the container, after the requested application has completed.

14. The system of claim 11 , wherein

the compute node is further configured to

launch a second container,

create a second environment within the second container, according to a second environment template for a second requested application;

configure a second requested application; and

execute the second requested application within the second container.

15. The system of claim 10 , wherein

the server module is further configured to

identify a second requested application to be executed as part of the command,

determine a second environment, based on the second requested application,

select a second compute node, wherein

the second compute node is selected based on the second environment, and

generate a second job for transmission to the second compute node, wherein

the second job indicates a second container,

the second compute node is configured to create the second environment within the second container, and

the second compute node is configured to execute the second requested application within the second container.

16. A non-transitory computer-readable storage medium comprising:

a plurality of instructions, comprising

a first set of instructions, executable on a computer system, configured to receive a command, wherein

the computer system is a head node,

the command is to be performed by the head node, and

the command indicates a requested application to be executed by a compute node, and

a second set of instructions, executable on the computer system, configured to generate a job, wherein

the job is generated by the head node in response to the command,

the job indicates a container that is configured to provide an environment that supports execution of the requested application,

the job is configured to configure the compute node to

create an environment within the container the environment within the container at the compute node, according to an environment template for the requested application, and

execute the requested application within the container to generate a result of the execution of the requested application, and

transmit the job to the compute node.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the plurality of instructions further comprise:

a third set of instructions, executable on the computer system, configured to launch the container,

a fourth set of instructions, executable on the computer system, configured to create the environment within the container, according to a second environment template for the requested application,

a fifth set of instructions, executable on the computer system, configured to configure the requested application, and

a sixth set of instructions, executable on the computer system, configured to execute the requested application within the container.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the plurality of instructions further comprise:

a seventh set of instructions, executable on the computer system, configured to execute a second requested application within the container, after the requested application has completed.

19. The non-transitory computer-readable storage medium of claim 17 , wherein the plurality of instructions further comprise:

a seventh set of instructions, executable on the computer system, configured to launch a second container at the compute node,

an eighth set of instructions, executable on the computer system, configured to create a second environment within the second container, according to a second environment template for a second requested application,

a ninth set of instructions, executable on the computer system, configured to configure a second requested application, and

a tenth set of instructions, executable on the computer system, configured to execute the second requested application within the second container.

20. The non-transitory computer-readable storage medium of claim 16 , wherein the plurality of instructions further comprise:

a third set of instructions, executable on the computer system, configured to identify a second requested application to be executed as part of the command,

a fourth set of instructions, executable on the computer system, configured to determine a second environment, based on the second requested application,

a fifth set of instructions, executable on the computer system, configured to select a second compute node, wherein

the second compute node is selected based on the second environment; and

a sixth set of instructions, executable on the computer system, configured to generate a second job for transmission to the second compute node,

wherein

the second job indicates a second container,

the second compute node is configured to create the second environment within the second container, and

the second compute node is configured to execute the second requested application within the second container.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2022
From: NIMBIX, INC.
To: AGARIK SAS
Reel/Frame 060681/0171 →
RELEASE OF SECURITY INTEREST Recorded Jul 30, 2021
From: COMERICA BANK
To: NIMBIX, INC.
Reel/Frame 057040/0865 →
SECURITY INTEREST Recorded Mar 29, 2018
From: NIMBIX, INC.
To: COMERICA BANK
Reel/Frame 045381/0976 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2014
From: HEBERT, STEPHEN M.; SHERRARD, ROBERT L.; REITER, LEONARDO E.
To: NIMBIX, INC.
Reel/Frame 034176/0180 →
Continuity (2)
Provisional Application 61905259 · Nov 17, 2013
Related Publication 20150142878A1 · May 21, 2015