IP Library Granted Patent US 12,307,227
Granted Patent B1
US 12,307,227 · App. 18/661,997 · Granted May 20, 2025

Cloud instance selection based on automated performance metrics collection

Inventor: Leonid Kuperman (Toronto, CA)
G06F8/61G06F16/23
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,307,227
App. No.
18/661,997
Granted
May 20, 2025
Kind
B1
Abstract

A system or method for selecting an instance family for deploying a target application. The system accesses a configuration that specifies a target application, relevant performance metrics, and various instance families that are candidates for deployment. For each instance family, the target application is temporarily deployed during a specified test period, and the performance metrics are recorded and stored. These metrics are then analyzed to generate rankings corresponding to the instance families. Based on these rankings, a recommendation is generated for an instance family for the application deployment based on ranking metrics.

Claims (67)

1. A method for selection of an instance for an application, the method comprising:

accessing a configuration specifying a target application, one or more performance metrics, and a plurality of instance families that are candidates for deployment, where each of the plurality of instance families is a group of virtual machines having a different configuration of resources;

for each instance family of the plurality of instance families:

provisioning a test node by allocating resources based on configuration associated with a corresponding instance family;

temporarily deploying the target application on the provisioned test node during a test time range, and

collecting and storing values of the one or more performance metrics on a test node in a data store; and

identifying one of the plurality of instance families having a highest performance for the target application relative to other ones of the plurality of instance families, comprising:

inputting the values of the one or more performance metrics for each of the plurality of instance families into a model, the model outputting a ranking metric for each instance family based on a corresponding values; and

generating a recommendation of an instance family for deployment based on a corresponding ranking metric.

2. The method of claim 1 , wherein the one or more performance metrics comprise requests per second (RPS) and latency.

3. The method of claim 1 , wherein the model assigns weights to the one or more performance metrics and integrates the values of the one or more performance metrics into a weighted score.

4. The method of claim 1 , further comprising:

determining a time required for the application to be deployed onto the test node; and

waiting for the determined time before collecting the values of the one or more performance metrics.

5. The method of claim 1 , wherein collecting the values of the one or more performance metrics on the test node comprises:

generating a load against the test node, the load simulating user activities over a period; and

collecting the values of the one or more performance metrics on the test node over the period of time.

6. The method of claim 1 , the method further comprising:

conducting an autocorrelation analysis to the collected values of the one or more performance metrics to determine a seasonality of workload; and

setting the test time range based on the determined seasonality of the workload.

7. The method of claim 1 , wherein collecting the values of the one or more performance metrics on the test node comprises collecting values of the one or more performance metrics from a client system.

8. The method of claim 1 , wherein collecting the values of the one or more performance metrics on the test node comprises collecting values of the one or more performance metrics from a server system.

9. The method of claim 1 , the method further comprising:

for each instance family of the plurality of instance families,

visualizing the stored values of the one or more performance metrics;

sending the visualized values of the one or more performance metrics to a client system; and

causing the client system to present visualized values of the one or more performance metrics in a graphical user interface.

10. The method of claim 1 , the method further comprising:

generating a graphical user interface to present the ranking metrics of the plurality of the instance families.

11. A non-transitory computer readable storage medium having instructions encoded thereon that, when executed by one or more processors, cause the one or more processors to:

access a configuration specifying a target application, one or more performance metrics, and a plurality of instance families that are candidates for deployment, where each of the plurality of instance families is a group of virtual machines having a different configuration of resources;

for each instance family of the plurality of instance families:

provision a test node by allocating resources based on configuration associated with a corresponding instance family;

temporarily deploy the target application on the provisioned test node during a test time range, and

collect and store values of the one or more performance metrics on a test node in a data store; and

identify one of the plurality of instance families having a highest performance for the target application relative to other ones of the plurality of instance families, comprising:

inputting the values of the one or more performance metrics for each of the plurality of instance families into a model, the model outputting a ranking metric for each instance family based on a corresponding values; and

generating a recommendation of an instance family for deployment based on a corresponding ranking metric.

12. The non-transitory computer readable storage medium of claim 11 , wherein the one or more performance metrics comprise requests per second (RPS) and latency.

13. The non-transitory computer readable storage medium of claim 11 , wherein the model assigns weights to the one or more performance metrics and integrates the values of the one or more performance metrics into a weighted score.

14. The non-transitory computer readable storage medium of claim 11 , wherein the instructions further cause the one or more processors to:

determine a time required for the application to be deployed onto the test node; and

wait for the determined time before collecting the values of the one or more performance metrics.

15. The non-transitory computer readable storage medium of claim 11 , wherein collecting the values of the one or more performance metrics on the test node comprises:

generating a load against the test node, the load simulating user activities over a period; and

collecting the values of the one or more performance metrics on the test node over the period of time.

16. The non-transitory computer readable storage medium of claim 11 , wherein the instructions further cause the one or more processors to:

conduct an autocorrelation analysis to the collected values of the one or more performance metrics to determine a seasonality of workload; and

set the test time range based on the determined seasonality of the workload.

17. The non-transitory computer readable storage medium of claim 11 , wherein collecting the values of the one or more performance metrics on the test node comprises collecting values of the one or more performance metrics from a client systems.

18. The non-transitory computer readable storage medium of claim 11 , wherein collecting the values of the one or more performance metrics on the test node comprises collecting values of the one or more performance metrics from a server system.

19. The non-transitory computer readable storage medium of claim 11 , wherein the instructions further cause the one or more processors to:

for each instance family of the plurality of instance families,

visualize the stored values of the one or more performance metrics;

send the visualized values of the one or more performance metrics to a client system; and

causing the client system to present visualized values of the one or more performance metrics in a graphical user interface.

20. A computing system, comprising:

one or more processors; and

a non-transitory computer readable storage medium having instructions encoded thereon that, when executed by the one or more processors, cause the one or more processors to:

access a configuration specifying a target application, one or more performance metrics, and a plurality of instance families that are candidates for deployment, where each of the plurality of instance families is a group of virtual machines having a different configuration of resources;

for each instance family of the plurality of instance families:

provisioning a test node by allocating resources based on configuration associated with a corresponding instance family;

temporarily deploy the target application on the provisioned test node during a test time range, and

collect and store values of the one or more performance metrics on a test node in a data store; and

identify one of the plurality of instance families having a highest performance for the target application relative to other ones of the plurality of instance families, comprising:

inputting the values of the one or more performance metrics for each of the plurality of instance families into a model, the model outputting a ranking metric for each instance family based on a corresponding values; and

generating a recommendation of an instance family for deployment based on a corresponding ranking metric.

Assignments (2)
SECURITY INTEREST Recorded Sep 26, 2025
From: CAST AI GROUP, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 072393/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2024
From: KUPERMAN, LEONID
To: CAST AI GROUP, INC.
Reel/Frame 067888/0461 →
Continuity (1)
Provisional Application 63565550 · Mar 15, 2024
References Cited (10)
US 10140206B2 · Sapozhnikov · 2018 [cited by examiner]
US 20160034305A1 · Shear · 2016 [cited by examiner]
US 20190303127A1 · Krishnaswamy · 2019 [cited by examiner]
US 20200326923A1 · Kaler · 2020 [cited by examiner]
US 20210303582A1 · Boaz Costa Leite · 2021 [cited by examiner]
US 20220300280A1 · Rafey · 2022 [cited by examiner]
US 20220407915A1 · Kempanna · 2022 [cited by examiner]
US 20220413989A1 · Karri · 2022 [cited by examiner]
US 20230086361A1 · Wan · 2023 [cited by examiner]
US 20240231921A1 · Patel · 2024 [cited by examiner]