IP Library › Granted Patent US 11,669,334
Granted Patent B2
US 11,669,334 · App. 16/677,805 · Granted Jun 6, 2023

Just-in-time containers

Inventors: Dominic Kramer (Mountain View, CA); Ryan Day (Mountain View, CA)
Assignee: Google LLC
G06F9/4401G06F8/61G06F9/44505
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,669,334
App. No.
16/677,805
Granted
Jun 6, 2023
Kind
B2
Abstract

A method for configuring and deploying execution environments for software applications includes receiving a bootstrap execution environment from a data store, the bootstrap execution environment including a software application, the software application including a manifest of dependencies. The method includes executing the bootstrap execution environment and determining whether an enhanced execution environment is available from the data store. When the enhanced execution environment is available from the data store, the method includes receiving the enhanced execution environment from the data store and enhancing the bootstrap execution environment based on the received enhanced execution environment. When the enhanced execution environment is not available from the data, the method includes enhancing the bootstrap execution environment based on the manifest of dependencies to create the enhanced execution environment and storing the enhanced execution environment in the data store. The method also includes executing the software application.

Claims (46)

1. A method comprising:

receiving, at data processing hardware, a bootstrap execution environment from a data store, the bootstrap execution environment comprising a software application, the software application comprising a manifest of dependencies; and

executing, by the data processing hardware, the bootstrap execution environment, causing the data processing hardware to perform operations comprising:

determining whether an enhanced execution environment is available from the data store;

when the enhanced execution environment is available from the data store:

receiving the enhanced execution environment from the data store, the enhanced execution environment comprising a set of application dependencies; and

executing the software application using the manifest of dependencies and the set of application dependencies; and

when the enhanced execution environment is not available from the data store:

prior to executing the software application, creating the set of application dependencies using the manifest of dependencies;

creating the enhanced execution environment using the bootstrap execution environment and the set of application dependencies;

storing the set of application dependencies in the data store; and

executing the software application using the manifest of dependencies and the set of application dependencies.

2. The method of claim 1 , further comprising annotating, by the data processing hardware, the enhanced execution environment in the data store to indicate at least one of a version of the software application, an operating system version associated with the enhanced execution environment, or a processor architecture associated with the enhanced execution environment.

3. The method of claim 1 , wherein determining whether the enhanced execution environment is available from the data store comprises determining whether the enhanced execution environment is compatible with at least one of the software application, an operating system version associated with the bootstrap execution environment, or a processor architecture associated with the bootstrap execution environment.

4. The method of claim 1 , further comprising:

receiving, at the data processing hardware, a build request for the software application;

configuring, by the data processing hardware, the bootstrap execution environment based on the software application; and

storing, by the data processing hardware, the bootstrap execution environment in the data store.

5. The method of claim 1 , wherein the bootstrap execution environment comprises a container image and the data store comprises a container registry.

6. The method of claim 1 , wherein creating the set of application dependencies comprises executing the manifest of dependencies.

7. The method of claim 1 , wherein the application dependencies comprise at least one of a support library, an architecture-specific binary module, or a just-in-time compiled module.

8. The method of claim 1 , wherein the software application is one of a JavaScript application, a Python application, or a Ruby application.

9. A system comprising:

data processing hardware; and

memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:

receiving a bootstrap execution environment from a data store, the bootstrap execution environment comprising a software application, the software application comprising a manifest of dependencies; and

executing the bootstrap execution environment, causing the data processing hardware to perform further operations comprising:

determining whether an enhanced execution environment is available from the data store;

when the enhanced execution environment is available from the data store:

receiving the enhanced execution environment from the data store, the enhanced execution environment comprising a set of application dependencies; and

executing the software application using the manifest of dependencies and the set of application dependencies; and

when the enhanced execution environment is not available from the data store:

prior to executing the software application, creating the set of application dependencies using the manifest of dependencies;

creating the enhanced execution environment using the bootstrap execution environment and the set of application dependencies;

storing the set of application dependencies in the data store; and

executing the software application using the manifest of dependencies and the set of application dependencies.

10. The system of claim 9 , wherein the operations further comprise annotating the enhanced execution environment in the data store to indicate at least one of a version of the software application, an operating system version associated with the enhanced execution environment, or a processor architecture associated with the enhanced execution environment.

11. The system of claim 9 , wherein determining whether the enhanced execution environment is available from the data store comprises determining whether the enhanced execution environment is compatible with at least one of the software application, an operating system version associated with the bootstrap execution environment, or a processor architecture associated with the bootstrap execution environment.

12. The system of claim 9 , wherein the operations further comprise:

receiving a build request for the software application;

configuring the bootstrap execution environment based on the software application; and

storing the bootstrap execution environment in the data store.

13. The system of claim 9 , wherein the bootstrap execution environment comprises a container image and the data store comprises a container registry.

14. The system of claim 9 , wherein creating the set of application dependencies comprises executing the manifest of dependencies.

15. The system of claim 9 , wherein the application dependencies comprise at least one of a support library, an architecture-specific binary module, or a just-in-time compiled module.

16. The system of claim 9 , wherein the software application is one of a JavaScript application, a Python application, or a Ruby application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2019
From: KRAMER, DOMINIC; DAY, RYAN
To: GOOGLE LLC
Reel/Frame 050956/0051 →
Continuity (1)
Related Publication 20210141645A1 · May 13, 2021