A computer program product, in particular a computer readable storage medium, the computer program product carrying computer-executable instructions for execution by a processor controlling an apparatus, wherein execution of the instructions causes the processor to perform a method utilizing a plurality of test deployments for executing a job workload in a distributed computing infrastructure comprising a broker node and a plurality of work nodes from a plurality of service providers, the job workload having an execution requirement related to computing resources of the plurality of work nodes, the method comprising:
- performing a first test deployment, comprising:
- receiving a first test workload, the first test workload having assigned the execution requirement of the job workload;
- querying a cloud service provider registry to identify a set of eligible work nodes from the plurality of cloud service providers;
- matching three or more work nodes from the set of eligible work nodes based, at least in part, on the execution requirement and a plurality of service specifications of the set of eligible work nodes;
- receiving a specification of a test node out of the three or more work nodes;
- providing the first test workload to the test node;
- instructing the test node to execute the first test workload a plurality of times using the computing resource and observe a plurality of test metrics quantifying responses of the test node to a status of a computing resource of the test node with respect to the execution requirement during the plurality of executions of the first test workload by:
- instructing the test node to vary the status of the computing resource of the test node, execute the first test workload using the varied status;
- and
- in response to each execution of the test workload by the test node:
- receiving a test metric, the test metric quantifying a response of the test node to the status of the computing resource with respect to the execution requirement during the execution;
- the method further comprising, by the broker node, in response to performing the first test deployment:
- creating a measuring workload, the measuring workload having assigned the execution requirement and wherein the measuring workload is derived from the job workload to reflect the resource consumption conditions of the job workload while exhibiting a substantially smaller computing resource consumption than the job workload,
- selecting a first and a second candidate node out of the three or more work nodes other than the test node,
- performing a second test deployment with a second test workload being the measuring workload, a specification of the first candidate node, and measuring a plurality of first metric values, based on the plurality of test metrics, from performance of the second test deployment,
- performing a third test deployment with a third test workload being the measuring workload, a specification of the second candidate node, and measuring a plurality of second metric values, based on the plurality of test metrics, from performance of the third test deployment,
- determining a cost impact function of the plurality of test metrics,
- determining a first total cost function from the plurality of first metric values and the cost impact function, and determining a second total cost function from the plurality of second metric values and the cost impact function,
- determining a first minimum of the first total cost function and a second minimum of the second total cost function,
- based on the first minimum and the second minimum, selecting one of the first candidate node and the second candidate node as an executing node for executing a job workload that minimizes a cost, and
- causing the executing node to execute the job workload.