IP Library › Granted Patent US 12,141,586
Granted Patent B2
US 12,141,586 · App. 18/308,029 · Granted Nov 12, 2024

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 12,141,586
App. No.
18/308,029
Filed
Apr 27, 2023
Granted
Nov 12, 2024
Kind
B2
Art Unit
2186
USPC
713/2
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 (41)

1. A computer-implemented method that when executed on data processing hardware causes the data processing hardware to perform operations comprising:

receiving, from a developer device, a request to build an execution environment for a software application developed locally at the developer device, the software application comprising a manifest of dependencies, the request comprising an identifier identifying a storage location of the software application at a data store;

obtaining the software application from the data store using the identifier;

determining that no associated execution environment exists for the software application at the data store; and

based on determining that no associated execution environment exists for the software application at the data store:

configuring a bootstrap execution environment for the software application using the manifest of dependencies;

executing the software application in the bootstrap execution environment to create an enhanced execution environment based on a set of application dependencies;

storing the enhanced execution environment at the data store; and executing the software application in the enhanced execution environment using the manifest of dependencies and the set of application dependencies.

2. The computer-implemented method of claim 1 , wherein configuring the bootstrap execution environment for the software application occurs without using a configuration file.

3. The computer-implemented method of claim 2 , wherein the configuration file comprises a Dockerfile.

4. The computer-implemented method of claim 1 , wherein the software application comprises a Ruby application.

5. The computer-implemented method of claim 1 , wherein the software application comprises a Node.js application.

6. The computer-implemented method of claim 1 , wherein the software application comprises a Python application.

7. The computer-implemented method of claim 1 , wherein obtaining the software application from the data store using the identifier comprises:

determining that the developer device is authorized to access the software application from the data store; and

based on determining that the developer device is authorized to access the software application from the data store, obtaining the software application from the data store.

8. The computer-implemented method of claim 1 , wherein the manifest of dependencies comprise one or more software libraries for the software application.

9. The computer-implemented method of claim 1 , wherein executing the software application in the enhanced execution environment comprises executing the software application at a remote system.

10. The computer-implemented method of claim 1 , wherein the data store comprises a container registry.

11. 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, from a developer device, a request to build an execution environment for a software application developed locally at the developer device, the software application comprising a manifest of dependencies, the request comprising an identifier identifying a storage location of the software application at a data store;

obtaining the software application from the data store using the identifier;

determining that no associated execution environment exists for the software application at the data store; and

based on determining that no associated execution environment exists for the software application at the data store:

configuring a bootstrap execution environment for the software application using the manifest of dependencies;

executing the software application in the bootstrap execution environment to create an enhanced execution environment based on a set of application dependencies;

storing the enhanced execution environment at the data store; and

executing the software application in the enhanced execution environment using the manifest of dependencies and the set of application dependencies.

12. The system of claim 11 , wherein configuring the bootstrap execution environment for the software application occurs without using a configuration file.

13. The system of claim 12 , wherein the configuration file comprises a Dockerfile.

14. The system of claim 11 , wherein the software application comprises a Ruby application.

15. The system of claim 11 , wherein the software application comprises a Node.js application.

16. The system of claim 11 , wherein the software application comprises a Python application.

17. The system of claim 11 , wherein obtaining the software application from the data store using the identifier comprises:

determining that the developer device is authorized to access the software application from the data store; and

based on determining that the developer device is authorized to access the software application from the data store, obtaining the software application from the data store.

18. The system of claim 11 , wherein the manifest of dependencies comprise one or more software libraries for the software application.

19. The system of claim 11 , wherein executing the software application in the enhanced execution environment comprises executing the software application at a remote system.

20. The system of claim 11 , wherein the data store comprises a container registry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2023
From: KRAMER, DOMINIC; DAY, RYAN
To: GOOGLE LLC
Reel/Frame 063593/0864 →
Continuity (2)
Continuation 16677805 · Nov 8, 2019
Related Publication 20240078116A1 · Mar 7, 2024