IP Library › Granted Patent US 12,353,439
Granted Patent B1
US 12,353,439 · App. 18/403,947 · Granted Jul 8, 2025

Deployment to cluster groups across multiple regions

Inventors: Fnu Pushkar Devanahalli (Bothell, WA); Jonathan Langefeld (Lathrop, CA); Stephen James Day (Kirkland, WA); Benjamin Flowers (Seattle, WA)
Assignee: GM Cruise Holdings LLC
G06F16/285
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,353,439
App. No.
18/403,947
Filed
Jan 4, 2024
Granted
Jul 8, 2025
Kind
B1
Art Unit
2165
USPC
707/737
Abstract

A company that develops software applications for operating and managing autonomous vehicles has an array of developer teams working on many different projects. Successful continuous delivery of software applications for the company can depend on reliability of the cluster infrastructure. Platform owners may be most knowledgeable when it comes to setting up cluster group that spans multiple regions. A developer working on a project can select, on a project management system, a cluster group for deployment of the project. A cluster group can specify a name for the cluster group, a plurality of environment-stack channels, and one or more clusters in deployment infrastructure associated with each environment-stack channel. The project management system can seamlessly provision resources for the project according to the selected cluster group.

Claims (75)

1. A computer-implemented method for continuous delivery, comprising:

receiving, via a user interface implemented by a computing device of a project management system, a selection of a cluster group from a plurality of cluster groups to be used for deployment of a project, wherein the selected cluster group specifies:

a name of the selected cluster group;

a plurality of environment-stacks; and

one or more clusters in deployment infrastructure associated with each environment-stack;

associating, by the project management system, the project to the selected cluster group; and

provisioning, by the deployment infrastructure, dedicated resources in the deployment infrastructure for the project according to the selected cluster group.

2. The computer-implemented method of claim 1 , wherein an environment-stack specifies an environment and a stack, and the environment-stacks correspond to different parts of the deployment.

3. The computer-implemented method of claim 2 , wherein the environment comprises one or more of: development, staging, production, and load-testing.

4. The computer-implemented method of claim 2 , wherein the stack comprises one or more of: default, research and development, bake, and stable.

5. The computer-implemented method of claim 2 , wherein the environment-stack further specifies a cell that groups one or more of: services and data.

6. The computer-implemented method of claim 1 , wherein an environment-stack has two or more clusters associated therewith, and the two or more clusters correspond to multiple regions.

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

receiving, from a cluster registry, information about clusters in the deployment infrastructure, the clusters in the deployment infrastructure including the one or more clusters specified in the selected cluster group;

wherein the information about a particular cluster of the clusters in the deployment infrastructure comprises:

a name of the particular cluster;

an environment-stack associated with the particular cluster; and

one or more cluster groups of the plurality of cluster groups to which the particular cluster belongs.

8. The computer-implemented method of claim 7 , further comprising:

compiling information for the plurality of cluster groups based on the information about the clusters in the deployment infrastructure.

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

generating a graphical user interface comprising a listing of the plurality of cluster groups;

wherein receiving the selection of the cluster group comprises receiving the selection via the graphical user interface.

10. The computer-implemented method of claim 1 , wherein provisioning the dedicated resources comprises:

provisioning namespaces for the project on the one or more clusters associated with each environment-stack, wherein the namespaces correspond to segregated resources for the project.

11. The computer-implemented method of claim 1 , wherein provisioning the dedicated resources comprises:

provisioning secrets usable for authenticating and/or authorizing actions associated with the deployment of the project.

12. The computer-implemented method of claim 1 , wherein provisioning the dedicated resources comprises:

provisioning workspaces for each environment-stack on the one or more clusters associated with each environment-stack, wherein the workspaces comprise copies of the same infrastructure configurations for the deployment of the project.

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

receiving, from a cluster registry, information about clusters in the deployment infrastructure;

detecting a change in the selected cluster group; and

modifying the dedicated resources in the deployment infrastructure for the project to reconcile the change.

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

receiving a request to promote the project to a particular environment-stack of the cluster group; and

triggering the project to be deployed to the one or more clusters associated with the particular environment-stack.

15. A computer-implemented system for continuous delivery, comprising:

a processor; and

a memory unit storing instructions that when executed by the processor, cause the computer-implemented system to implement:

a project management system to:

receive a selection of a cluster group from a plurality of cluster groups to be used for deployment of a project, wherein the selected cluster group specifies:

a name of the selected cluster group;

a plurality of environment-stacks; and

one or more clusters in deployment infrastructure associated with each environment-stack; and

associating the project to the selected cluster group; and

a deployment infrastructure to:

provision dedicated resources in the deployment infrastructure for the project according to the selected cluster group;

wherein the environment-stacks correspond to different parts of the deployment, and an environment-stack has two or more clusters associated therewith, and the two or more clusters correspond to multiple regions.

16. The computer-implemented system of claim 15 , wherein the project management system is further to:

receive, from a cluster registry, information about clusters in the deployment infrastructure, the clusters in the deployment infrastructure including the one or more clusters specified in the selected cluster group;

wherein the information about a particular cluster of the clusters in the deployment infrastructure comprises:

a name of the particular cluster;

an environment-stack associated with the particular cluster; and

one or more cluster groups of the plurality of cluster groups to which the particular cluster belongs; and

compiling information for the plurality of cluster groups based on the information about the clusters.

17. The computer-implemented system of claim 15 , wherein the project management system is further to:

generate a graphical user interface comprising a listing of the plurality of cluster groups;

wherein the project management system receives the selection of the cluster group by receiving the selection via the graphical user interface.

18. The computer-implemented system of claim 15 , wherein the deployment infrastructure provisions the dedicated resources by:

provisioning namespaces for the project on the one or more clusters associated with each environment-stack, wherein the namespaces correspond to segregated resources for the project;

provisioning secrets usable for authenticating and/or authorizing actions associated with the deployment of the project; and

provisioning workspaces for each environment-stack on the one or more clusters associated with each environment-stack, wherein the workspaces comprise copies of the same infrastructure configurations for the deployment of the project.

19. The computer-implemented system of claim 15 , wherein the project management system is further to:

receive, from a cluster registry, information about clusters in the deployment infrastructure;

detect a change in the selected cluster group; and

modify the dedicated resources in the deployment infrastructure for the project to reconcile the change.

20. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to:

receive a selection of a cluster group from a plurality of cluster groups to be used for deployment of a project, wherein the selected cluster group specifies:

a name of the selected cluster group;

a plurality of environment-stacks; and

one or more clusters in deployment infrastructure associated with each environment-stack;

associate the project to the selected cluster group;

provision dedicated resources in the deployment infrastructure for the project according to the selected cluster group;

receiving a request to promote the project to a particular environment-stack of the selected cluster group; and

triggering the project to be deployed to the one or more clusters associated with the particular environment-stack.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2024
From: DAY, STEPHEN JAMES; LANGEFELD, JONATHAN; DEVANAHALLI, FNU PUSHKAR; FLOWERS, BENJAMIN
To: GM CRUISE HOLDINGS LLC
Reel/Frame 066017/0209 →
References Cited (11)
US 11409820B1 · Gutierrez · 2022 [cited by examiner]
US 11880781B2 · Makhija · 2024 [cited by examiner]
US 20180060411A1 · Kanuri · 2018 [cited by examiner]
US 20180196867A1 · Wiesmaier · 2018 [cited by examiner]
US 20190171438A1 · Franchitti · 2019 [cited by examiner]
US 20210365479A1 · Reimann · 2021 [cited by examiner]
US 20220035800A1 · Dym · 2022 [cited by examiner]
US 20220092064A1 · Bremer · 2022 [cited by examiner]
US 20220269957A1 · Rangan · 2022 [cited by examiner]
US 20230065530A1 · Mohanty · 2023 [cited by examiner]
US 20240289251A1 · Stipanovich · 2024 [cited by examiner]