IP Library Granted Patent US 12,737,169
Granted Patent B2
US 12,737,169 · App. 18/429,402 · Granted Sep 15, 2026

Autonomous configuration-based release orchestration

Inventors: Vijay Karani (Fremont, CA); Arunabha Ghosh (San Jose, CA); Firas Saltaji (Mississauga, CA); Varun Arvind Jobanputra (New York, NY); Brian Whitten (Burlingame, CA)
Assignee: Salesforce, Inc.
G06F8/65G06F11/0721G06F11/0793
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,737,169
App. No.
18/429,402
Granted
Sep 15, 2026
Kind
B2
Abstract

A method and apparatus for autonomous configuration-based release orchestration. A first engine obtains stagger configuration data that includes an indication of container clusters in each stagger and a stagger order, selects a current stagger based on the order, and attempts to deploy the feature release to the current stagger by causing an app config update to be sent to a second engine within each container cluster of the current stagger, and receives an indication of success or failure of the attempted deployment of the feature release to the current stagger. Responsive to the indication of success or failure, the first engine performs one of a plurality of actions that include attempting to deploy the feature release to a next one of the staggers according to the order responsive to the indication indicating success, and causing a roll back of the current stagger responsive to the indication indicating failure.

Claims (70)

1 . A method for autonomous configuration-based release orchestration that supports deployment of a staggered feature release to a plurality of container clusters in different staggers, wherein the container clusters include instances of an application having a plurality of features that each have a state that may be changed, the method comprising:

by a first engine outside of the container clusters, managing the deployment of the staggered feature release to a plurality of staggers, each stagger including a subset of the plurality of container clusters, the managing including:

obtaining stagger configuration data indicative of the subset of container clusters to be included in each of the plurality of staggers and indicative of an order of the staggers;

selecting one of the plurality of staggers as a current stagger based on the order;

sending data indicative of an application configuration update to a respective second engine within each container cluster of the subset of container clusters in the current stagger, wherein the data indicative of the application configuration update causes the respective second engine within each container cluster of the subset of container clusters in the current stagger to update the state of at least one of the features of the application to enabled or disabled;

receiving an indication of success or failure of the feature release to the current stagger; and

responsive to the indication of success or failure, performing one of a plurality of actions, wherein the plurality of actions includes i) processing a next one of the plurality of staggers according to the order responsive to the indication indicating success, and ii) causing a roll back of the current stagger responsive to the indication indicating failure.

2 . The method of claim 1 , wherein the data indicative of an application configuration update includes an indication of the application, and wherein the indication of the application enables the second engines within the container clusters to identify which containers within the container clusters are one of the containers including an instance of the application.

3 . The method of claim 1 , wherein the first engine includes a release manager and a third engine, wherein the release manager performs the selecting and the performing one of a plurality of actions, wherein the third engine performs the sending and the receiving, and wherein the method further comprises:

by the release manager, sending an indication of the current stagger to the third engine.

4 . The method of claim 1 , further comprising:

by one of the second engines within a respective one of the container clusters, attempting to deploy the feature release to the respective container cluster, by:

identifying which containers within the respective container cluster are ones of the containers including an instance of the application;

changing the state of the features as indicated in the application configuration update;

causing the change to be applied to the identified containers;

determining an indication of success or failure of the attempted deployment of the feature release to the respective container cluster;

responsive to the indication indicating failure, causing a roll back of the respective container cluster; and

providing, to the first engine, the indication of success or failure of the attempted deployment of the feature release to the respective container cluster.

5 . The method of claim 1 , further comprising:

by a monitor outside of the container clusters, collecting information regarding the deployment of the feature release to the current stagger based on logs generated by the container clusters and/or instances of the application in the current stagger, and wherein the indication of success or failure is based on the collected information.

6 . The method of claim 1 , wherein the stagger configuration data includes a stagger-level threshold associated with each stagger of the plurality of staggers, and wherein the first engine rolls back the staggered feature release responsive to a result of the deployment of the feature release to the current stagger being indicative of the stagger-level threshold associated with the current stagger not being met.

7 . The method of claim 1 , wherein the obtaining the stagger configuration data comprises:

generating the stagger configuration data based on a set of one or more inputs, wherein the set of one or more inputs includes at least indications of geographic regions where the container clusters are located.

8 . An article of manufacture comprising:

a non-transitory machine-readable storage medium that provides instructions that, if executed by a set of one or more processors, are configurable to cause the set of processors to perform operations for autonomous configuration-based release orchestration that supports deployment of a staggered feature release to a plurality of container clusters in different staggers, wherein the container clusters include instances of an application having a plurality of features that each have a state that may be changed, the operations comprising,

by a first engine outside of the container clusters, managing the deployment of the staggered feature release to a plurality of staggers, each stagger including a subset of the plurality of container clusters, the managing including:

obtaining stagger configuration data indicative of the subset of container clusters to be included in each of the plurality of staggers and indicative of an order of the staggers;

selecting one of the plurality of staggers as a current stagger based on the order;

sending data indicative of an application configuration update to a respective second engine within each container cluster of the subset of container clusters in the current stagger, wherein the data indicative of the application configuration update causes the respective second engine within each container cluster of the subset of container clusters in the current stagger to update the state of at least one of the features of the application to enabled or disabled;

receiving an indication of success or failure of the feature release to the current stagger; and

responsive to the indication of success or failure, performing one of a plurality of actions, wherein the plurality of actions includes i) processing a next one of the plurality of staggers according to the order responsive to the indication indicating success, and ii) causing a roll back of the current stagger responsive to the indication indicating failure.

9 . The article of manufacture of claim 8 , wherein the data indicative of an application configuration update includes an indication of the application, and wherein the indication of the application enables the second engines within the container clusters to identify which containers within the container clusters are one of the app containers including an instance of the application.

10 . The article of manufacture of claim 8 , wherein the first engine includes a release manager and a third engine, wherein the release manager performs the selecting and the performing one of a plurality of actions, wherein the third engine performs the sending and the receiving, and wherein the operations further comprise:

by the release manager, sending an indication of the current stagger to the third engine.

11 . The article of manufacture of claim 8 , the operations further comprising:

by one of the second engines within a respective one of the container clusters, attempting to deploy the feature release to the respective container cluster, by:

identifying which containers within the respective container cluster are ones of the containers including an instance of the application;

changing the state of the features as indicated in the application configuration update;

causing the change to be applied to the identified containers;

determining an indication of success or failure of the attempted deployment of the feature release to the respective container cluster;

responsive to the indication indicating failure, causing a roll back of the respective container cluster; and

providing, to the first engine, the indication of success or failure of the attempted deployment of the feature release to the respective container cluster.

12 . The article of manufacture of claim 8 , the operations further comprising:

by a monitor outside of the container clusters, collecting information regarding the deployment of the feature release to the current stagger based on logs generated by the container clusters and/or instances of the application in the current stagger, and wherein the indication of success or failure is based on the collected information.

13 . The article of manufacture of claim 8 , wherein the stagger configuration data includes a stagger-level threshold associated with each stagger of the plurality of staggers, and wherein the first engine rolls back the staggered feature release responsive to a result of the deployment of the feature release to the current stagger being indicative of the stagger-level threshold associated with the current stagger not being met.

14 . The article of manufacture of claim 8 , wherein the obtaining the stagger configuration data comprises:

generating the stagger configuration data based on a set of one or more inputs, wherein the set of one or more inputs includes at least indications of geographic regions where the container clusters are located.

15 . An apparatus comprising:

a set of one or more processors; and

a non-transitory machine-readable storage medium that provides instructions that, if executed by the set of one or more processors, are configurable to cause the apparatus to perform operations for autonomous configuration-based release orchestration that supports deployment of a staggered feature release to a plurality of container clusters in different staggers, wherein the container clusters include instances of an application having a plurality of features that each have a state that may be changed, the operations comprising,

by a first engine outside of the container clusters, managing the deployment of the staggered feature release to a plurality of staggers, each stagger including a subset of the plurality of container clusters, the managing including:

obtaining stagger configuration data indicative of the subset of container clusters to be included in each of the plurality of staggers and indicative of an order of the staggers;

selecting one of the plurality of staggers as a current stagger based on the order;

sending data indicative of an application configuration update to a respective second engine within each container cluster of the subset of container clusters in the current stagger, wherein the data indicative of the application configuration update causes the respective second engine within each container cluster of the subset of container clusters in the current stagger to update the state of at least one of the features of the application to enabled or disabled;

receiving an indication of success or failure of the feature release to the current stagger; and

responsive to the indication of success or failure, performing one of a plurality of actions, wherein the plurality of actions includes i) processing a next one of the plurality of staggers according to the order responsive to the indication indicating success, and ii) causing a roll back of the current stagger responsive to the indication indicating failure.

16 . The apparatus of claim 15 , wherein the data indicative of an application configuration update includes an indication of the application, and wherein the indication of the application enables the second engines within the container clusters to identify which containers within the container clusters are one of the containers including an instance of the application.

17 . The apparatus of claim 15 , wherein the first engine includes a release manager and a third engine, wherein the release manager performs the selecting and the performing one of a plurality of actions, wherein the third engine performs the sending and the receiving, and wherein the operations further comprise:

by the release manager, sending an indication of the current stagger to the third engine.

18 . The apparatus of claim 15 , the operations further comprising:

by one of the second engines within a respective one of the container clusters, attempting to deploy the feature release to the respective container cluster, by:

identifying which containers within the respective container cluster are ones of the containers including an instance of the application;

changing the state of the features as indicated in the application configuration update;

causing the change to be applied to the identified containers;

determining an indication of success or failure of the attempted deployment of the feature release to the respective container cluster;

responsive to the indication indicating failure, causing a roll back of the respective container cluster; and

providing, to the first engine, the indication of success or failure of the attempted deployment of the feature release to the respective container cluster.

19 . The apparatus of claim 15 , the operations further comprising:

by a monitor outside of the container clusters, collecting information regarding the deployment of the feature release to the current stagger based on logs generated by the container clusters and/or instances of the application in the current stagger, and wherein the indication of success or failure is based on the collected information.

20 . The apparatus of claim 15 , wherein the stagger configuration data includes a stagger-level threshold associated with each stagger of the plurality of staggers, and wherein the first engine rolls back the staggered feature release responsive to a result of the deployment of the feature release to the current stagger being indicative of the stagger-level threshold associated with the current stagger not being met.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2024
From: KARANI, VIJAY; GHOSH, ARUNABHA; SALTAJI, FIRAS; JOBANPUTRA, VARUN ARVIND; WHITTEN, BRIAN
To: SALESFORCE, INC.
Reel/Frame 067276/0230 →
Continuity (1)
Related Publication 20250244992A1 · Jul 31, 2025
References Cited (48)
US 10708420B2 · Karani · 2020 [cited by applicant]
US 10795662B2 · Gadgil et al. · 2020 [cited by applicant]
US 10810248B2 · Tang · 2020 [cited by examiner]
US 11245789B2 · Karani · 2022 [cited by applicant]
US 11354113B1 · Verma · 2022 [cited by examiner]
US 11507364B2 · Duvur et al. · 2022 [cited by applicant]
US 11544052B2 · Liljeback · 2023 [cited by examiner]
US 11593100B2 · Mathew · 2023 [cited by examiner]
US 11669510B2 · Baker et al. · 2023 [cited by applicant]
US 11734130B1 · Khanna · 2023 [cited by examiner]
US 11755400B2 · Karani et al. · 2023 [cited by applicant]
US 12050505B2 · Dande · 2024 [cited by examiner]
US 12333296B1 · Silakov · 2025 [cited by examiner]
US 12438773B2 · Karani et al. · 2025 [cited by applicant]
US 20090144728A1 · Felts · 2009 [cited by examiner]
US 20090183150A1 · Felts · 2009 [cited by examiner]
US 20140053150A1 · Barnett · 2014 [cited by examiner]
US 20140344810A1 · Wang · 2014 [cited by examiner]
US 20190130764A1 · Karani · 2019 [cited by applicant]
US 20190163664A1 · Karani et al. · 2019 [cited by applicant]
US 20200137159A1 · Karani et al. · 2020 [cited by applicant]
US 20200382365A1 · Verma · 2020 [cited by applicant]
US 20220012748A1 · Karani et al. · 2022 [cited by applicant]
US 20220050674A1 · Liljeback et al. · 2022 [cited by applicant]
US 20220206772A1 · Akiona · 2022 [cited by examiner]
US 20230044016A1 · Harper · 2023 [cited by examiner]
US 20230065431A1 · Kumar · 2023 [cited by examiner]
US 20230101551A1 · Jobanputra et al. · 2023 [cited by applicant]
US 20230168960A1 · Karani et al. · 2023 [cited by applicant]
US 20230315531A1 · Shen · 2023 [cited by examiner]
US 20240020107A1 · Beveridge et al. · 2024 [cited by applicant]
US 20240134624A1 · Allen · 2024 [cited by examiner]
US 20240143303A1 · Kholodkov et al. · 2024 [cited by applicant]
US 20240394035A1 · Verma et al. · 2024 [cited by applicant]
US 20240419511A1 · Tie · 2024 [cited by examiner]
US 20250244993A1 · Karani et al. · 2025 [cited by applicant]
US 20250244994A1 · Karani et al. · 2025 [cited by applicant]
US 20250247292A1 · Karani et al. · 2025 [cited by applicant]
“3 Tools to Automate your Kubernetes Cluster Deployment!”, blog, 10 pages, Medium, San Francisco, CA, USA, Retrieved from https://medium.com/buildpiper/3-tools-to-automate-your-kubernetes-cluster-deployment-cc727bc11159… [cited by applicant]
“Trusted Application Automated Deployment Solutions-Chef”, article, 11 pages, Progress Chef, Burlington, MA, Retrieved from https://www.chef.io/solutions/application-deployment (Year: 2024). [cited by applicant]
Silva Jr, Jairo DA, “Automating deployment strategies with Ansible”, article, Jan. 9, 2019, 9 pages, Opensource, Raleigh, NC, Retrieved from https://opensource.com/article/19/1/automating-deployment-strategies-ansible (… [cited by applicant]
Ran, Cohen, “Configuration-as-Code: Automating Application Configuration”, article, Jun. 14, 2023, 10 pages, DEV Community, New York, NY, Retrieved from https://dev.to/rannn505/configuration-as-code-automating-applicati… [cited by applicant]
“Deployment automation: What is it and how to start”, article, 11 pages, Atlassian, Sydney, Australia, Retrieved from https://www.atlassian.com/devops/frameworks/deployment-automation (Year: 2024). [cited by applicant]
“Puppet for Configuration Management Automation-Puppet”, article, 9 pgs, Perforce, Minneapolis, MN. Retrieved from https://www.puppet.com/why-puppet/use-cases/continuous-configuration-automation (Year: 2024). [cited by applicant]
“NPL-Gater, Gater Overview”, 3 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 18/429,381, Jun. 13, 2025, 11 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 18/429,412, Dec. 17, 2025, 16 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 18/429,415, Oct. 1, 2025, 14 pages. [cited by applicant]