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.
Legal claims defining the scope of protection, as filed with the USPTO.
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.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
December 1, 2017
October 20, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.