IP Library › Granted Patent US 10,949,562
Granted Patent B2
US 10,949,562 · App. 17/020,771 · Granted Mar 16, 2021

Containerized build steps

Inventors: David Bendory (Livingston, NJ); John Asmuth (Rutherford, NJ); Scott Zawalski (New York, NY); Jason Hall (Brooklyn, NY); David Dopson (New York, NY)
Assignee: Google LLC
G06F21/6218G06F8/433G06F8/447G06F8/60G06F8/70G06F21/31G06F21/629
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 10,949,562
App. No.
17/020,771
Granted
Mar 16, 2021
Kind
B2
Abstract

A method includes receiving a build request containing build step instructions from a user. The build step instructions specify a usage of containers within memory hardware for building an output container. The containers include at least one private container having private contents and/or at least one public container having public contents. The method also includes authenticating the user initiating the build request and determining whether the user is authorized to access the private containers. When the user is authenticated and authorized to access the private containers, the method includes obtaining the containers specified by the build step instructions from the memory hardware, executing the build step instructions to build the output container while using the received containers, and outputting the built output container.

Claims (42)

1. A method comprising:

receiving, at data processing hardware, a user-defined pipeline from a user device associated with a user, the user-defined pipeline comprising a set of build steps with build step criteria for a build step process, the set of build steps comprising a compiling build step, a unit test build step, and a deployment build step, the build step process configured to generate, as output, a deployment container using the set of build steps, the deployment container comprising a software application configured to execute on a distributed system;

receiving, at the data processing hardware, a notification indicating that the user is authenticated and authorized to access one or more private registries identified by a respective build step of the set of build steps; and

based on the received notification:

executing, by the data processing hardware, the compiling build step to build executable code of the software application from source code originating from the one or more private registries;

executing, by the data processing hardware, the unit test build step to determine that the executable code of the software application satisfies the build step criteria; and

executing, by the data processing hardware, the deployment build step to package the executable code of the software application for the deployment container, the deployment container comprising a runtime environment for the executable code of the software application.

2. The method of claim 1 , wherein the set of build steps of the user-defined pipeline specifies both a pubic source and a private source to provide instructions for the build step process.

3. The method of claim 1 , wherein the user-defined pipeline further comprises a user identifier and wherein receiving the notification that the user is authenticated and authorized further comprises:

identifying an authorization identifier associated with each build step of the set of build steps; and

determining that the user identifier matches each authorization identifier associated with each build step of the set of build steps.

4. The method of claim 1 , further comprising:

associating a deployment container identifier with the deployment container; and

deploying the deployment container when the deployment container identifier of the deployment container is requested for deployment.

5. The method of claim 1 , wherein the build step criteria of the compiling build step comprises a dependency constraint that results in the compiling build step executing immediately upon initiation of the set of build steps.

6. The method of claim 1 , wherein the build step criteria of the deployment build step comprises a dependency constraint, the dependency constraint indicating to execute the deployment build step when the unit test build step determines that a build result of the compiling build step satisfies operation requirements of software application.

7. The method of claim 1 , wherein executing each of the compiling build step, the unit test build step, and the deployment build step uses one or more virtual machines, the one or more virtual machines executing each of the compiling build step, the unit test build step, and the deployment build step in an order of execution specified by the user-defined pipeline.

8. The method of claim 1 , wherein the deployment container comprises a build step record, the build step record comprising each build step of the set of build steps of the user-defined pipeline and an order of execution for the set of build steps.

9. The method of claim 8 , wherein the build step record further comprises a start timestamp indicating a time when execution of each build step began and an end timestamp indicating an ending time when each build step completed.

10. The method of claim 1 , wherein the one or more private registries comprise a proprietary software development kit for use in building the output container and the deployment container includes contents that exclude the proprietary software development kit.

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 by the data processing hardware cause the data processing hardware to perform operations comprising:

receiving a user-defined pipeline from a user device associated with a user, the user-defined pipeline comprising a set of build steps with build step criteria for a build step process, the set of build steps comprising a compiling build step, a unit test build step, and a deployment build step, the build step process configured to generate, as output, a deployment container using the set of build steps, the deployment container comprising a software application configured to execute on a distributed system;

receiving a notification indicating that the user is authenticated and authorized to access one or more private registries identified by a respective build step of the set of build steps; and

based on the received notification:

executing the compiling build step to build executable code of the software application from source code originating from the one or more private registries;

executing the unit test build step to determine that the executable code of the software application satisfies the build step criteria; and

executing the deployment build step to package the executable code of the software application for the deployment container, the deployment container comprising a runtime environment for the executable code of the software application.

12. The system of claim 11 , wherein the set of build steps of the user-defined pipeline specifies both a public source and a private source to provide instructions for the build step process.

13. The system of claim 11 , wherein the user-defined pipeline further comprises a user identifier and wherein receiving the notification that the user is authenticated and authorized further comprises:

identifying an authorization identifier associated with each build step of the set of build steps; and

determining that the user identifier matches each authorization identifier associated with each build step of the set of build steps.

14. The system of claim 11 , wherein the operations further comprise:

associating a deployment container identifier with the deployment container; and

deploying the deployment container when the deployment container identifier of the deployment container is requested for deployment.

15. The system of claim 11 , wherein the build step criteria of the compiling build step comprises a dependency constraint that results in the compiling build step executing immediately upon initiation of the set of build steps.

16. The system of claim 11 , wherein the build step criteria of the deployment build step comprises a dependency constraint, the dependency constraint indicating to execute the deployment build step when the unit test build step determines that a build result of the compiling build step satisfies operation requirements of software application.

17. The system of claim 11 , wherein executing each of the compiling build step, the unit test build step, and the deployment build step uses one or more virtual machines, the one or more virtual machines executing each of the compiling build step, the unit test build step, and the deployment build step in an order of execution specified by the user-defined pipeline.

18. The system of claim 11 , wherein the deployment container comprises a build step record, the build step record comprising each build step of the set of build steps of the user-defined pipeline and an order of execution for the set of build steps.

19. The system of claim 18 , wherein the build step record further comprises a start timestamp indicating a time when execution of each build step began and an end timestamp indicating an ending time when each build step completed.

20. The system of claim 11 , wherein the one or more private registries comprise a proprietary software development kit for use in building the output container and the deployment container includes contents that exclude the proprietary software development kit.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2024
From: DOPSON, DAVID
To: GOOGLE INC.
Reel/Frame 069422/0899 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2024
From: BENDORY, DAVID; ASMUTH, JOHN; ZAWALSKI, SCOTT; HALL, JASON
To: GOOGLE LLC
Reel/Frame 068368/0159 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2021
From: BENDORY, DAVID; ASMUTH, JOHN; ZAWALSKI, SCOTT; HALL, JASON
To: GOOGLE LLC
Reel/Frame 055292/0876 →
Continuity (3)
Continuation 16426447 · May 30, 2019
Continuation 15269411 · Sep 19, 2016
Related Publication 20210004476A1 · Jan 7, 2021