IP Library › Granted Patent US 10,810,502
Granted Patent B2
US 10,810,502 · App. 15/829,717 · Granted Oct 20, 2020

Computing architecture deployment configuration recommendation using machine learning

Inventors: Renjith Pillai (Bangalore, IN); Sujith Henamagalur Dinakar (Bangalore, IN); Arul Jegadish Francis (Sunnyvale, CA); Anish Nair (Saratoga, CA); John Mitchell (Dublin, CA)
Assignee: SAP SE
G06N5/04G06N20/00
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 10,810,502
App. No.
15/829,717
Filed
Dec 1, 2017
Granted
Oct 20, 2020
Kind
B2
Art Unit
2114
USPC
714/38.1
Abstract

Data is received that characterizes a software system. Thereafter, using at least one machine learning model trained using historical testing data from a plurality of training software systems, a recommended computing architecture is generated for the software system. Data can then be provided that characterizes the software system. Related apparatus, systems, techniques and articles are also described.

Claims (45)

1. A method for implementation by at least one computing device comprising:

receiving or recording data characterizing a software system executing in a computing environment;

generating, using at least one machine learning model trained using historical testing data derived from testing of a plurality of training software systems according to pre-defined testing plans, a recommended computing architecture for the software system in light of one or more resource constraints of the computing environment; and

providing data characterizing the recommended computing architecture for the software system;

wherein:

the training software systems are tested to identify performance faults with such training software systems by selectively altering resources available to one or more software programs forming part of the corresponding training software system or the computing environment according to a respective test plan and monitoring, concurrent with the altering of the resources, performance of the respective training software system to identify performance faults;

changes to computing architectures for the training software systems are recorded in light of the identified performance faults;

the at least one machine learning model is trained using both the identified performance faults and the recorded changes;

the at least one machine learning model comprises at least one of: a neural network model, a logistic regression model, a support vector machine, a random forest, a nearest neighbor model, a Bayesian model, or a genetic algorithm.

2. The method of claim 1 , wherein the providing of data comprising at least one of: causing the data to be displayed in an electronic visual display, transmitting the data to a remote computing device, loading the data into memory, or storing the data in electronic physical persistence.

3. The method of claim 1 , wherein the selectively altered resources comprise at least one of: memory, I/O bandwidth, network, processor resources, or hardware capabilities or other configurations or aspects of the computing environment.

4. The method of claim 1 , wherein the test plan specifies a sequence of test events which cause the resources for specific software programs to be altered.

5. The method of claim 4 , wherein each test event quantifies an amount of variance for the corresponding altered resource.

6. The method of claim 1 , wherein the test plan specifies a decision tree of test events in which each test event is triggered based on an occurrence of a pre-defined condition.

7. The method of claim 1 , wherein the software system comprises a plurality of software programs executing within a plurality of containers across multiple computing nodes.

8. A system comprising:

at least one data processor; and

memory storing instructions which, when executed by the at least one data processor, perform operations comprising:

receiving or recording data characterizing a software system executing in a computing environment;

generating, using at least one machine learning model trained using historical testing data derived from testing of a plurality of training software systems according to pre-defined testing plans, a recommended computing architecture for the software system in light of one or more resource constraints of the computing environment; and

providing data characterizing the recommended computing architecture for the software system;

wherein:

the training software systems are tested to identify performance faults with such training software systems by selectively altering resources available to one or more software programs forming part of the corresponding training software system or the computing environment according to a respective test plan and monitoring, concurrent with the altering of the resources, performance of the respective training software system to identify performance faults;

changes to computing architectures for the training software systems are recorded in light of the identified performance faults;

the at least one machine learning model is trained using both the identified performance faults and the recorded changes;

the at least one machine learning model comprises at least one of: a neural network model, a logistic regression model, a support vector machine, a random forest, a nearest neighbor model, a Bayesian model, or a genetic algorithm.

9. The system of claim 8 , wherein the providing of data comprising at least one of: causing the data to be displayed in an electronic visual display, transmitting the data to a remote computing device, loading the data into memory, or storing the data in electronic physical persistence.

10. The system of claim 8 , wherein the selectively altered resources comprise at least one of: memory, I/O bandwidth, network, processor resources, or hardware capabilities or other configurations or aspects of the computing environment.

11. The system of claim 8 , wherein the test plan specifies a sequence of test events which cause the resources for specific software programs to be altered.

12. The system of claim 11 , wherein each test event quantifies an amount of variance for the corresponding altered resource.

13. The system of claim 8 , wherein the test plan specifies a decision tree of test events in which each test event is triggered based on an occurrence of a pre-defined condition.

14. A non-transitory computer program product storing instructions which, when executed by at least one data processor forming part of at least one computing device, perform operations comprising:

receiving or recording data characterizing a software system executing in a computing environment;

generating, using at least one machine learning model trained using historical testing data derived from testing of a plurality of training software systems according to pre-defined testing plans, a recommended computing architecture for the software system in light of one or more resource constraints of the computing environment; and

providing data characterizing the recommended computing architecture for the software system;

wherein:

the training software systems are tested to identify performance faults with such training software systems by selectively altering resources available to one or more software programs forming part of the corresponding training software system or the computing environment according to a respective test plan and monitoring, concurrent with the altering of the resources, performance of the respective training software system to identify performance faults;

changes to computing architectures for the training software systems are recorded in light of the identified performance faults;

the at least one machine learning model is trained using both the identified performance faults and the recorded changes;

the at least one machine learning model comprises at least one of: a neural network model, a logistic regression model, a support vector machine, a random forest, a nearest neighbor model, a Bayesian model, or a genetic algorithm.

15. The non-transitory computer program product of claim 14 , wherein the providing of data comprising at least one of: causing the data to be displayed in an electronic visual display, transmitting the data to a remote computing device, loading the data into memory, or storing the data in electronic physical persistence.

16. The non-transitory computer program product of claim 14 , wherein the selectively altered resources comprise at least one of: memory, I/O bandwidth, network, processor resources, or hardware capabilities or other configurations or aspects of the computing environment.

17. The non-transitory computer program product of claim 14 , wherein the test plan specifies a sequence of test events which cause the resources for specific software programs to be altered.

18. The non-transitory computer program product of claim 17 , wherein each test event quantifies an amount of variance for the corresponding altered resource.

19. The non-transitory computer program product of claim 14 , wherein the test plan specifies a decision tree of test events in which each test event is triggered based on an occurrence of a pre-defined condition.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2017
From: PILLAI, RENJITH; DINAKAR, SUJITH HENAMAGALUR; FRANCIS, ARUL JEGADISH; NAIR, ANISH; MITCHELL, JOHN
To: SAP SE
Reel/Frame 044279/0635 →
Continuity (1)
Related Publication 20190171948A1 · Jun 6, 2019
Cited By (1)
US 12,327,111