Optimizing the execution of an application executing on a programmable execution service
First Claim
1. A computer-implemented method for optimizing execution of a programmable execution service (“
- PES”
) application, the method comprising performing computer-implemented operations for;
creating a test environment for optimizing the execution of the PES application by programmatically replicating a production network and by replicating one or more production virtual machine instances located within the production network executing the PES application to create a plurality of test virtual machine instances executing the PES application, wherein the test environment receives a copy of network traffic received by the production network;
generating a plurality of sets of test values for one or more application parameters utilized by the PES application;
utilizing the plurality of test virtual machine instances in the created test environment and the plurality of sets of test values to determine a plurality of sets of optimized values for the one or more application parameters, the plurality of sets of optimized values determined by;
applying one of the plurality of sets of test values to the application parameters by updating the test environment according to the one of the plurality of sets of test values,measuring an impact of the one of the plurality of sets of test values on an output of one or more fitness functions based upon one or more direct and indirect performance metrics associated with the PES application,adding the one of the plurality of sets of test values to the plurality of sets of optimized values based on the measuring indicating a positive impact on the output of the one or more fitness functions,discarding the one of the plurality of sets of test values based on the measuring indicating a negative impact on the output of the one or more fitness functions, andrepeating the applying, the measuring, and one of adding or discarding, without destroying the test environment, until all permutations of the plurality of sets of test values have been measured;
ranking the plurality of sets of optimized values according to their respective improvement to the one or more fitness functions to determine a top-ranked set of optimized values, the top-ranked set of optimized values having a highest positive impact on the output of the one or more fitness functions; and
applying the top-ranked set of optimized values to one or more production application parameters of the one or more production virtual machine instances executing the PES application in the production network, wherein the one or more production application parameters include a value for a number of resources utilized by the PES application.
1 Assignment
0 Petitions
Accused Products
Abstract
A test environment is created for optimizing the execution of a programmable execution service (“PES”) application. The test environment is created in one embodiment by replicating a production network and one or more production virtual machine instances executing the PES application. Once the test environment has been created, the test environment is utilized to identify optimized values for one or more application parameters consumed by the PES application. The optimized values may be selected to optimize the output of a fitness function that is based upon one or more direct and/or indirect performance metrics associated with the PES application. Once the optimized values for the application parameters have been identified, the generated values are applied to production virtual machine instances executing the PES application.
55 Citations
17 Claims
-
1. A computer-implemented method for optimizing execution of a programmable execution service (“
- PES”
) application, the method comprising performing computer-implemented operations for;creating a test environment for optimizing the execution of the PES application by programmatically replicating a production network and by replicating one or more production virtual machine instances located within the production network executing the PES application to create a plurality of test virtual machine instances executing the PES application, wherein the test environment receives a copy of network traffic received by the production network; generating a plurality of sets of test values for one or more application parameters utilized by the PES application; utilizing the plurality of test virtual machine instances in the created test environment and the plurality of sets of test values to determine a plurality of sets of optimized values for the one or more application parameters, the plurality of sets of optimized values determined by; applying one of the plurality of sets of test values to the application parameters by updating the test environment according to the one of the plurality of sets of test values, measuring an impact of the one of the plurality of sets of test values on an output of one or more fitness functions based upon one or more direct and indirect performance metrics associated with the PES application, adding the one of the plurality of sets of test values to the plurality of sets of optimized values based on the measuring indicating a positive impact on the output of the one or more fitness functions, discarding the one of the plurality of sets of test values based on the measuring indicating a negative impact on the output of the one or more fitness functions, and repeating the applying, the measuring, and one of adding or discarding, without destroying the test environment, until all permutations of the plurality of sets of test values have been measured; ranking the plurality of sets of optimized values according to their respective improvement to the one or more fitness functions to determine a top-ranked set of optimized values, the top-ranked set of optimized values having a highest positive impact on the output of the one or more fitness functions; and applying the top-ranked set of optimized values to one or more production application parameters of the one or more production virtual machine instances executing the PES application in the production network, wherein the one or more production application parameters include a value for a number of resources utilized by the PES application. - View Dependent Claims (2, 3)
- PES”
-
4. A system for optimizing execution of a programmable execution service (“
- PES”
) application, the system comprising;a plurality of server computers executing the PES application; and a computer executing an optimization component configured to optimize the execution of the PES application by programmatically replicating a plurality of production instances executing the PES application and resources utilized by the production instances to create a test environment comprising a plurality of test instances executing the PES application, wherein the resources utilized by the production instances comprise a production network and the test environment receives a copy of network traffic received by the production network, generating a plurality of sets of test values for one or more application parameters utilized by the PES application; utilizing the plurality of sets of test values, the plurality of test instances and resources to determine a plurality of sets of optimized values for the one or more application parameters, wherein determining the plurality of sets of optimized values comprises; updating the test environment by applying one of the plurality of sets of test values to the one or more application parameters, measuring an impact of the one of the plurality of sets of test values on an output of one or more fitness functions based upon one or more direct and indirect performance metrics associated with the PES application, adding the one of the plurality of sets of test values to the plurality of sets of optimized values based on the measuring indicating a positive impact on the output of the one or more fitness functions, discarding the one of the plurality of sets of test values based on the measuring indicating a negative impact on the output of the one or more fitness functions, and repeating the applying, the measuring, and one of adding or discarding, without destroying the test environment, until all permutations of the plurality of sets of test values have been measured; ranking the plurality of sets of optimized of values according to their respective improvement to the one or more fitness functions to determine a top-ranked set of optimized values, the top-ranked set of optimized values having a highest positive impact on the output of the one or more fitness functions; and applying the top-ranked set of optimized values to one or more production application parameters of the plurality of production instances executing the PES application in the production network, wherein the one or more production application parameters include a value for a number of resources utilized by the PES application. - View Dependent Claims (5, 6)
- PES”
-
7. A computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to:
-
create a test environment for optimizing execution of a programmable execution service (“
PES”
) application by programmatically replicating a plurality of production instances executing the PES application to create a plurality of test instances executing the PES application and by replicating one or more resources utilized by the PES application, wherein the one or more resources utilized by the PES application comprise a production network and the test environment receives a copy of network traffic received by the production network;generating a plurality of sets of test values for one or more application parameters utilized by the PES application; utilize the plurality of test instances in the created test environment to generate a plurality of sets of optimized values for the one or more application parameters, wherein generating the plurality of sets of optimized values comprises; applying one of the plurality of sets of test values to the one or more application parameters by updating the test environment according to the one of the plurality of sets of test values, measuring an impact of the one of the plurality of sets of test values on an output of one or more fitness functions based upon one or more direct and indirect performance metrics associated with the PES application, adding the one of the plurality of sets of test values to the plurality of sets of optimized values based on the measuring indicating a positive impact on the output of the one or more fitness functions, discarding the one of the plurality of sets of test values based on the measuring indicating a negative impact on the output of the one or more fitness functions, and repeating the applying, the measuring, and one of adding or discarding, without destroying the test environment, until all permutations of the plurality of sets of test values have been measured; rank the plurality of optimized sets of values according to their respective improvement to the one or more fitness functions to determine a top-ranked set of optimized values, the top-ranked set of optimized values having a highest positive impact on the output of the one or more fitness functions; and utilize the top-ranked set of optimized values on one or more production application parameters of one or more production instances executing the PES application in the production network, wherein the one or more production application parameters include a value for a number of resources utilized by the PES application. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
Specification