IP Library Granted Patent US 11,126,448
Granted Patent B1
US 11,126,448 · App. 16/744,092 · Granted Sep 21, 2021

Systems and methods for using dynamic templates to create application containers

Inventor: Aaron Christensen (Apple Valley, MN)
Assignee: Veritas Technologies LLC
G06F9/455G06F8/60G06F9/44505G06F9/50
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 11,126,448
App. No.
16/744,092
Granted
Sep 21, 2021
Kind
B1
Abstract

The disclosed computer-implemented method for using dynamic templates to create application containers may include (i) identifying an application that is to be deployed in a container, (ii) creating a dynamic template that comprises at least one variable parameter and that defines at least a portion of an operating environment of the container (iii) generating a value of the variable parameter during deployment of the application, (iv) processing the dynamic template to create a configuration file that comprises the value of the variable parameter, and (v) triggering a container initialization system to create, based on the configuration file, the container such that the container isolates a user space of the application from other software on a host system while sharing a kernel space with the other software. Various other methods systems, and computer-readable media are also disclosed.

Claims (85)

1. A computer-implemented method, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a first application for deployment in a first container and a second application for deployment in a second container, the first application and the second application being included in a user space of a host system comprising the user space and a kernel space;

identifying at least one variable parameter for use by the first application and the second application;

creating a first dynamic template comprising a function for calculating a value for the at least one variable parameter;

deploying the first application in the first container by:

calculating the value of the at least one variable parameter using the function; and

processing, subsequent to calculating the value, the first dynamic template, by creating a first configuration file comprising the value of the at least one variable parameter;

creating a second dynamic template comprising the function for calculating the value for the at least one variable parameter; and

deploying the second application in the second container by:

calculating the value of the at least one variable parameter using the function; and

processing, subsequent to calculating the value, the second dynamic template by creating a second configuration file comprising the value of the at least one variable parameter.

2. The computer-implemented method of claim 1 , wherein

deploying the first application in the first container by calculating the value of the at least one variable parameter using the function comprises determining a path of an external resource on the host system based at least in part on data about the external resource stored in the first dynamic template.

3. The computer-implemented method of claim 1 , wherein deploying the first application in the first container further comprises receiving external input about the at least one variable parameter during the deployment of the first application.

4. The computer-implemented method of claim 3 , wherein calculating the value of the at least one variable parameter using the function is based at least in part on the external input.

5. The computer-implemented method of claim 1 , wherein the first configuration file further comprises at least one static parameter.

6. The computer-implemented method of claim 1 , further comprising:

identifying an additional application included in the user space for deployment in an additional container;

deploying the additional application in the additional container by:

calculating a new value of the at least one variable parameter using the function;

processing, subsequent to calculating the new value, the first dynamic template by creating an additional configuration file comprising the new value of the at least one variable parameter; and

triggering a container initialization system to create, based on the additional configuration file, the additional container for executing the additional application such that the additional container isolates the user space of the additional application from other software on the host system while sharing the kernel space of the host system with the other software.

7. The computer-implemented method of claim 1 , wherein:

creating the second configuration file comprises launching a resource;

deploying the first application in the first container further comprises triggering a container initialization system to create, based on the first configuration file, the first container for executing the first application;

deploying the second application in the second container further comprises triggering the container initialization system to create, based on the second configuration file, the second container for executing the second application; and

the method further comprises enabling the first container and the second container to access the resource that is external to the first container and the second container.

8. A system comprising:

an identification module, stored in memory, that:

identifies a first application for deployment in a first container and a second application for deployment in a second container, the first application and the second application included in a user space of a host system comprising the user space and a kernel space; and

identifies at least one variable parameter for use by the first application and the second application;

a creation module, stored in memory, that:

creates a first dynamic template comprising a function for calculating a value for the at least one variable parameter; and

creates a second dynamic template comprising the function for calculating the value for the at least one variable parameter;

a generation module, stored in memory, that:

calculates, during a deployment of the first application in the first container, the value of the at least one variable parameter using the function; and

calculates, during a deployment of the second application in the second container, the value of the at least one variable parameter using the function;

a processing module, stored in memory, that:

processes, during the deployment of the first application in the first container, the first dynamic template to create a first configuration file comprising the value of the at least one variable parameter; and

processes, during the deployment of the second application in the second container, the second dynamic template to create a second configuration file comprising the value of the at least one variable parameter; and

at least one physical processor configured to execute the identification module, the creation module, the generation module, and the processing module.

9. The system of claim 8 , wherein the creation module determines a path of an external resource on the host system based at least in part on data about the external resource stored in the first dynamic template.

10. The system of claim 8 , wherein the generation module during the deployment of the first application in the first container:

receives external input about the at least one variable parameter; and

calculates the value of the at least one variable parameter using the function based at least in part on the external input.

11. The system of claim 8 , wherein the first configuration file further comprises at least one static parameter.

12. The system of claim 8 , wherein:

the identification module identifies an additional application included in the user space for deployment in an additional container;

the generation module calculates, during a deployment of the additional application in the additional container, a new value of the at least one variable parameter using the function;

the processing module, processes, during the deployment of the additional application in the additional container, the first dynamic template to create an additional configuration file comprising the new value of the at least one variable parameter;

the system further comprises a triggering module, stored in memory, that triggers, during the deployment of the additional application in the additional container, a container initialization system to create, based on the additional configuration file, the additional container for executing the additional application such that the additional container isolates the user space of the additional application from other software on the host system while sharing the kernel space of the host system with the other software; and

the at least one physical processor is further configured to execute the triggering module.

13. The system of claim 8 , wherein:

creating the second configuration file comprises launching a resource;

the system further comprises a triggering module, stored in memory, that:

triggers, during the deployment of the first application in the first container, a container initialization system to create, based on the first configuration file, the first container for executing the first application;

triggers, during the deployment of the second application in the second container, the container initialization system to create, based on the second configuration file, the second container for executing the second application; and

enables the first container and the second container to access the resource that is external to the first container and the second container; and

the at least one physical processor is further configured to execute the triggering module.

14. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a first application for deployment in a first container and a second application for deployment in a second container, the first application and the second application included in a user space of a host system comprising the user space and a kernel space;

identify at least one variable parameter for use by the first application and the second application;

create a first dynamic template comprising a function for calculating a value for the at least one variable parameter; and

deploy the first application in the first container by:

calculating the value of the at least one variable parameter using the function; and

processing, subsequent to calculating the value, the first dynamic template by creating a first configuration file comprising the value of the at least one variable parameter;

create a second dynamic template comprising the function for calculating the value for the at least one variable parameter; and

deploy the second application in the second container by:

calculating the value of the at least one variable parameter using the function; and

processing, subsequent to calculating the value, the second dynamic template by creating a second configuration file comprising the value of the at least one variable parameter.

15. The non-transitory computer-readable medium of claim 14 , wherein deploying the first application in the first container by calculating the value of the at least one variable parameter using the function comprises determining a path of an external resource on the host system based at least in part on data about the external resource stored in the first dynamic template.

16. The non-transitory computer-readable medium of claim 14 , wherein deploying the first application in the first container further comprises receiving external input about the at least one variable parameter during the deployment of the first application.

17. The non-transitory computer-readable medium of claim 16 , wherein calculating the value of the at least one variable parameter using the function is based at least in part on the external input.

18. The non-transitory computer-readable medium of claim 14 , wherein the first configuration file further comprises at least one static parameter.

19. The non-transitory computer-readable medium of claim 14 , wherein the one or more computer-readable instructions further cause the computing device to:

identify an additional application included in the user space for deployment in an additional container;

deploy the additional application in the additional container by:

calculating a new value of the at least one variable parameter using the function;

processing, subsequent to calculating the new value, the first dynamic template by creating an additional configuration file comprising the new value of the at least one variable parameter; and

triggering a container initialization system to create, based on the additional configuration file, the additional container for executing the additional application such that the additional container isolates the user space of the additional application from other software on the host system while sharing the kernel space of the host system with the other software.

20. The non-transitory computer-readable medium of claim 14 , wherein:

creating the second configuration file comprises launching a resource;

deploying the first application in the first container further comprises triggering a container initialization system to create, based on the first configuration file, the first container for executing the first application;

deploying the second application in the second container further comprises triggering the container initialization system to create, based on the second configuration file, the second container for executing the second application; and

the one or more computer-readable instructions further cause the computing device to enable the first container and the second container to access the resource that is external to the first container and the second container.

Assignments (10)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0944 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052423/0596 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0460 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052423/0596 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 9, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052368/0272 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2020
From: CHRISTENSEN, AARON
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 051544/0031 →
Continuity (1)
Continuation 15465570 · Mar 21, 2017
Cited By (1)
US 12,596,541