IP Library Granted Patent US 11,403,199
Granted Patent B2
US 11,403,199 · App. 16/773,565 · Granted Aug 2, 2022

Secure detection and correction of inefficient application configurations

Inventor: Sebastian Laskawiec (Lipniki, PL)
Assignee: RED HAT, INC.
G06F11/3051G06F9/44505G06F9/5011G06F11/3006G06F11/3688G06F11/3692G06K9/6256G06K9/6267
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 11,403,199
App. No.
16/773,565
Granted
Aug 2, 2022
Kind
B2
Abstract

Methods and systems for detecting and correcting inefficient application configurations are presented. In one embodiment, a method is provided that includes receiving an application and executing the application multiple times according to different configurations. While executing the application, execution metrics may be measured associated with the different configurations. A classifier model may be trained based on the execution metrics and the different configurations. In particular, the classifier model may be trained to identify preferred configurations of the application. The classifier model may be provided to a second computing environment and may be used to identify inefficient configurations for subsequent deployments of the application within the second computing environment. The inefficient configurations may be identified without transmitting configurations or applications from the second computing environment.

Claims (50)

1. A method comprising:

receiving an application for execution in a first computing environment;

executing the application a plurality of times according to a plurality of configurations;

measuring a plurality of execution metrics associated with the plurality of configurations;

training, based on the plurality of execution metrics and the plurality of configurations, a classifier model to identify one or more preferred configurations for the application;

providing the classifier model to a second computing environment; and

detecting, using the classifier model, inefficient configurations for subsequent deployments of the application within the second computing environment.

2. The method of claim 1 , wherein the first computing environment is a testing environment configured to validate applications prior to deployment.

3. The method of claim 2 , wherein executing the application the plurality of times includes executing a plurality of predetermined tests prior to deployment of the application, and wherein measuring the plurality of execution metrics includes measuring the execution metrics during the predetermined tests.

4. The method of claim 2 , wherein the testing environment is associated with a first entity, and wherein the second computing environment is configured to execute applications on behalf of a second entity.

5. The method of claim 1 , wherein detecting inefficient configurations for subsequent deployments of the application further comprises:

receiving (i) a configuration for the application within the second computing environment and (ii) execution metrics of the application within the second computing environment;

identifying, with the classifier model, a corresponding preferred configuration and expected metrics associated with the corresponding preferred configuration;

identifying a difference between at least one of the execution metrics and at least one of the expected metrics; and

applying the corresponding preferred configuration to the application within the second computing environment.

6. The method of claim 5 , wherein the configuration and at least a subset of the plurality of configurations include an application-level configuration specifying at least one of (i) application-specific implementation details and (ii) system resources required for execution.

7. The method of claim 6 , wherein the configuration and the subset of the plurality of configurations further include a system-level configuration specifying an amount of one or more system resources available for execution of the function.

8. The method of claim 7 , wherein identifying the preferred configuration includes comparing both the application-level configuration and the system-level configuration to the subset of the plurality of configurations.

9. The method of claim 5 , wherein the configuration is received from an application programming interface service of the second computing environment, the application programming interface being configured to generate and apply configurations to applications executing within the second computing environment.

10. The method of claim 1 , wherein the plurality of configurations include configurations optimized for performance under heavy loads and configurations optimized for minimal resource utilization during execution of the application.

11. The method of claim 1 , wherein the execution metrics include at least one of a latency of the application, a throughput of the application, a processor utilization of the application, a memory utilization of the application, and a storage utilization of the application.

12. A system comprising a first computing environment and a second computing environment, the first computing environment comprising:

a first processor; and

a first memory storing instructions which, when executed by the first processor, cause the first processor to:

receive an application for execution in the first computing environment;

execute the application a plurality of times according to a plurality of configurations;

measure a plurality of execution metrics associated with the plurality of configurations;

train, based on the plurality of execution metrics and the plurality of configurations, a classifier model to identify one or more preferred configurations for the application; and

provide the classifier model to the second computing environment, the second computing environment comprising:

a second processor; and

a second memory storing instructions which, when executed by the second processor, cause the second processor to:

detect, using the classifier model, inefficient configurations for subsequent deployments of the application within the second computing environment.

13. The system of claim 12 , wherein the first computing environment is a testing environment configured to validate applications prior to deployment.

14. The system of claim 13 , wherein executing the application the plurality of times includes executing a plurality of predetermined tests prior to deployment of the application, and wherein measuring the plurality of execution metrics includes measuring the execution metrics during the predetermined tests.

15. The system of claim 13 , wherein the testing environment is associated with a first entity, and wherein the second computing environment is configured to execute applications on behalf of a second entity.

16. The system of claim 12 , wherein the second memory stores further instructions which, when executed by the second processor while detecting inefficient configurations for subsequent deployments of the application, cause the second processor to:

receive (i) a configuration for the application within the second computing environment and (ii) execution metrics of the application within the second computing environment;

identify, with the classifier model, a corresponding preferred configuration and expected metrics associated with the corresponding preferred configuration;

identify a difference between at least one of the execution metrics and at least one of the expected metrics; and

apply the corresponding preferred configuration to the application within the second computing environment.

17. The system of claim 16 , wherein the configuration and at least a subset of the plurality of configurations include an application-level configuration specifying at least one of (i) application-specific implementation details and (ii) system resources required for execution.

18. The system of claim 17 , wherein the configuration and the subset of the plurality of configurations further include a system-level configuration specifying an amount of one or more system resources available for execution of the function.

19. The system of claim 18 , wherein identifying the preferred configuration includes comparing both the application-level configuration and the system-level configuration to the subset of the plurality of configurations.

20. A non-transitory, computer-readable medium storing instructions which, when executed by at least one processor, cause the at least one processor to:

receive an application for execution in a first computing environment;

execute the application a plurality of times according to a plurality of configurations;

measure a plurality of execution metrics associated with the plurality of configurations;

train, based on the plurality of execution metrics and the plurality of configurations, a classifier model to identify one or more preferred configurations for the application;

provide the classifier model to a second computing environment; and

detect, using the classifier model, inefficient configurations for subsequent deployments of the application within the second computing environment.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2020
From: LASKAWIEC, SEBASTIAN
To: RED HAT, INC.
Reel/Frame 051639/0908 →