IP Library Granted Patent US 12,438,773
Granted Patent B2
US 12,438,773 · App. 18/429,381 · Granted Oct 7, 2025

Autonomous configuration-based release orchestration with autonomous runtime container management configuration

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.
H04L41/082G06F8/65G06F8/656H04L41/0863H04L43/062
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,438,773
App. No.
18/429,381
Granted
Oct 7, 2025
Kind
B2
Abstract

A method and apparatus for autonomous container management configuration changes to container clusters during runtime and autonomous configuration-based release orchestration. A release manager manages a staggered feature release that includes staggers, stagger order, and container clusters included in each stagger. A logging service manages logs generated by the container clusters and/or app containers. An update service determines container management configuration changes based on analysis of data provided by the logging service. A shared engine attempts to implement instructions provided by the release manager and the update service at different times. The release manager receives an indication of success or failure of the attempted deployment of the feature release to the current stagger. The release manager, responsive to the indication of success or failure, determines to perform one of a plurality of actions, including attempting to deploy the feature release to the next stagger, and rolling back.

Claims (59)

1. A method for both autonomous container management configuration changes to container clusters during runtime and autonomous configuration-based release orchestration that supports staggered feature releases across a plurality of container clusters, wherein an application in application (app) containers in the plurality of container clusters include features that each have a state that may be changed, the method comprising:

by a release manager outside of the container clusters, managing a staggered feature release that includes a plurality of staggers, an order for the staggers, and which subset of one or more of the plurality of container clusters is in each stagger;

by a logging service, managing logs generated by the plurality of container clusters and/or the app containers within the plurality of container clusters;

by an update service, outside of the container clusters and coupled to the logging service, determining container management configuration changes based on analysis of data, the data provided at least in part by the logging service;

by a shared engine, outside of the container clusters and coupled to the release manager and the update service, attempting to implement instructions provided by the release manager and the update service at different times, wherein instructions provided by the release manager pertain to one of the plurality of staggers selected by the release manager as a current stagger;

by the release manager, receiving an indication of success or failure of the attempted deployment of the feature release to the current stagger; and

by the release manager, responsive to at least the indication of success or failure of the attempted deployment of the feature release, determining to perform one of a plurality of actions, wherein the plurality of actions includes i) attempting to deploy the feature release to a next one of the plurality of staggers according to the order, and ii) rolling back.

2. The method of claim 1 , wherein the logs include one or more of volume of traffic being received by the app containers currently running in each of the container clusters, CPU load of electronic devices running the app containers, and storage requirements of the app containers, and wherein the data includes current status information indicative of one or more of current volume of traffic being received by each of the container clusters and current health status of the app containers currently running in each of the container clusters.

3. The method of claim 2 , wherein the data also includes one or more of configuration data and historical data.

4. The method of claim 1 , wherein the analysis of the data includes predictions of one or more events occurring in respect of one or more container clusters and/or one or more app containers within the one or more container clusters, wherein the one or more events include one or more of changes in traffic volume, changes in resource usage, and changes in resource availability.

5. The method of claim 1 , wherein the container management configuration changes pertain to runtime configuration of the container clusters and include one or more of a number of the app containers within one of the container clusters, and an allocation of resources between the app containers within one of the container clusters.

6. The method of claim 1 , wherein:

the determining the container management configuration changes comprises identifying a set of one or more of the plurality of container clusters to receive one or more of the container management configuration changes; and

the attempting to implement instructions provided by the update service comprises:

causing a runtime config update to be sent to a second engine within each of the set of the container clusters to receive one or more of the container management configuration changes, wherein each of the plurality of container clusters includes an instance of the second engine.

7. The method of claim 1 , wherein:

the attempting to implement instructions provided by the release manager comprises:

causing an app config update to be sent to a second engine within each of the container clusters in the current stagger, wherein the app config update includes an indication of the application to allow the second engine, in each container cluster of the subset of container clusters in the currently selected stagger, to determine which containers within that container cluster are one of the app containers, and wherein the app config update also includes indications of which of the features are to be changed to which state; and

receiving an indication of success or failure of the attempted deployment of the feature release to each of the container clusters in the current stagger.

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 both autonomous container management configuration changes to container clusters during runtime and autonomous configuration-based release orchestration that supports staggered feature releases across a plurality of container clusters, wherein an application in application (app) containers in the plurality of container clusters include features that each have a state that may be changed, the operations comprising,

by a release manager outside of the container clusters, managing a staggered feature release that includes a plurality of staggers, an order for the staggers, and which subset of one or more of the plurality of container clusters is in each stagger;

by a logging service, managing logs generated by the plurality of container clusters and/or the app containers within the plurality of container clusters;

by an update service, outside of the container clusters and coupled to the logging service, determining container management configuration changes based on analysis of data, the data provided at least in part by the logging service;

by a shared engine, outside of the container clusters and coupled to the release manager and the update service, attempting to implement instructions provided by the release manager and the update service at different times, wherein instructions provided by the release manager pertain to one of the plurality of staggers selected by the release manager as a current stagger;

by the release manager, receiving an indication of success or failure of the attempted deployment of the feature release to the current stagger; and

by the release manager, responsive to at least the indication of success or failure of the attempted deployment of the feature release, determining to perform one of a plurality of actions, wherein the plurality of actions includes i) attempting to deploy the feature release to a next one of the plurality of staggers according to the order, and ii) rolling back.

9. The article of manufacture of claim 8 , wherein the logs include one or more of volume of traffic being received by the app containers currently running in each of the container clusters, CPU load of electronic devices running the app containers, and storage requirements of the app containers, and wherein the data includes current status information indicative of one or more of current volume of traffic being received by each of the container clusters and current health status of the app containers currently running in each of the container clusters.

10. The article of manufacture of claim 9 , wherein the data also includes one or more of configuration data and historical data.

11. The article of manufacture of claim 8 , wherein the analysis of the data includes predictions of one or more events occurring in respect of one or more container clusters and/or one or more app containers within the one or more container clusters, wherein the one or more events include one or more of changes in traffic volume, changes in resource usage, and changes in resource availability.

12. The article of manufacture of claim 8 , wherein the container management configuration changes pertain to runtime configuration of the container clusters and include one or more of a number of the app containers within one of the container clusters, and an allocation of resources between the app containers within one of the container clusters.

13. The article of manufacture of claim 8 , wherein:

the determining the container management configuration changes comprises identifying a set of one or more of the plurality of container clusters to receive one or more of the container management configuration changes; and

the attempting to implement instructions provided by the update service comprises:

causing a runtime config update to be sent to a second engine within each of the set of the container clusters to receive one or more of the container management configuration changes, wherein each of the plurality of container clusters includes an instance of the second engine.

14. The article of manufacture of claim 8 , wherein:

the attempting to implement instructions provided by the release manager comprises:

causing an app config update to be sent to a second engine within each of the container clusters in the current stagger, wherein the app config update includes an indication of the application to allow the second engine, in each container cluster of the subset of container clusters in the currently selected stagger, to determine which containers within that container cluster are one of the app containers, and wherein the app config update also includes indications of which of the features are to be changed to which state; and

receiving an indication of success or failure of the attempted deployment of the feature release to each of the container clusters in the current stagger.

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 both autonomous container management configuration changes to container clusters during runtime and autonomous configuration-based release orchestration that supports staggered feature releases across a plurality of container clusters, wherein an application in application (app) containers in the plurality of container clusters include features that each have a state that may be changed, the operations comprising,

by a release manager outside of the container clusters, managing a staggered feature release that includes a plurality of staggers, an order for the staggers, and which subset of one or more of the plurality of container clusters is in each stagger;

by a logging service, managing logs generated by the plurality of container clusters and/or the app containers within the plurality of container clusters;

by an update service, outside of the container clusters and coupled to the logging service, determining container management configuration changes based on analysis of data, the data provided at least in part by the logging service;

by a shared engine, outside of the container clusters and coupled to the release manager and the update service, attempting to implement instructions provided by the release manager and the update service at different times, wherein instructions provided by the release manager pertain to one of the plurality of staggers selected by the release manager as a current stagger;

by the release manager, receiving an indication of success or failure of the attempted deployment of the feature release to the current stagger; and

by the release manager, responsive to at least the indication of success or failure of the attempted deployment of the feature release, determining to perform one of a plurality of actions, wherein the plurality of actions includes i) attempting to deploy the feature release to a next one of the plurality of staggers according to the order, and ii) rolling back.

16. The apparatus of claim 15 , wherein the logs include one or more of volume of traffic being received by the app containers currently running in each of the container clusters, CPU load of electronic devices running the app containers, and storage requirements of the app containers, and wherein the data includes current status information indicative of one or more of current volume of traffic being received by each of the container clusters and current health status of the app containers currently running in each of the container clusters.

17. The apparatus of claim 16 , wherein the data also includes one or more of configuration data and historical data.

18. The apparatus of claim 15 , wherein the analysis of the data includes predictions of one or more events occurring in respect of one or more container clusters and/or one or more app containers within the one or more container clusters, wherein the one or more events include one or more of changes in traffic volume, changes in resource usage, and changes in resource availability.

19. The apparatus of claim 15 , wherein the container management configuration changes pertain to runtime configuration of the container clusters and include one or more of a number of the app containers within one of the container clusters, and an allocation of resources between the app containers within one of the container clusters.

20. The apparatus of claim 15 , wherein:

the determining the container management configuration changes comprises identifying a set of one or more of the plurality of container clusters to receive one or more of the container management configuration changes;

the attempting to implement instructions provided by the update service comprises:

causing a runtime config update to be sent to a second engine within each of the set of the container clusters to receive one or more of the container management configuration changes, wherein each of the plurality of container clusters includes an instance of the second engine; and

the attempting to implement instructions provided by the release manager comprises:

causing an app config update to be sent to the second engine within each of the container clusters in the current stagger, wherein the app config update includes an indication of the application to allow the second engine, in each container cluster of the subset of container clusters in the currently selected stagger, to determine which containers within that container cluster are one of the app containers, and wherein the app config update also includes indications of which of the features are to be changed to which state; and

receiving an indication of success or failure of the attempted deployment of the feature release to each of the container clusters in the current stagger.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2024
From: KARANI, VIJAY; GHOSH, ARUNABHA; SALTAJI, FIRAS; JOBANPUTRA, VARUN ARVIND; WHITTEN, BRIAN
To: SALESFORCE, INC.
Reel/Frame 067284/0157 →
Continuity (1)
Related Publication 20250247292A1 · Jul 31, 2025
References Cited (26)
US 10795662B2 · Gadgil et al. · 2020 [cited by applicant]
US 11245789B2 · Karani · 2022 [cited by applicant]
US 11507364B2 · Duvur et al. · 2022 [cited by applicant]
US 11544052B2 · Liljeback · 2023 [cited by examiner]
US 11669510B2 · Baker et al. · 2023 [cited by applicant]
US 11755400B2 · Karani et al. · 2023 [cited by applicant]
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 20220012748A1 · Karani et al. · 2022 [cited by applicant]
US 20230101551A1 · Jobanputra et al. · 2023 [cited by applicant]
US 20230168960A1 · Karani et al. · 2023 [cited by applicant]
US 20240134624A1 · Allen · 2024 [cited by examiner]
US 20240419511A1 · Tie · 2024 [cited by examiner]
CN 11936070A · 2022 [cited by examiner]
U.S. Appl. No. 18/429,402, Pending. [cited by applicant]
U.S. Appl. No. 18/429,381, Pending. [cited by applicant]
U.S. Appl. No. 18/429,412, Pending. [cited by applicant]
U.S. Appl. No. 18/429,415, Pending. [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]