1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a streaming application residing in the memory and executed by the at least one processor, the streaming application comprising a flow graph that includes a plurality of operators that process a plurality of data tuples; and a streams manager residing in the memory and executed by the at least one processor, the streams manager monitoring performance of the streaming application, and when performance of the streaming application needs to be improved, the streams manager requests a cloud manager to provision at least one virtual machine with logic to implement at least one of the plurality of operators, and when the cloud manager provisions the at least one virtual machine, the streams manager modifies the flow graph to include the at least one virtual machine in the flow graph of the streaming application, and when the streams manager determines the at least one virtual machine is no longer needed, the streams manager keeps a first of the at least one virtual machine in a first ready state until the first virtual machine is needed by the streams manager to be deployed to implement at least one of the plurality of operators, wherein the first ready state comprises a first state where the first virtual machine is running with an input and an output of an operator implemented by the virtual machine connected to the flow graph and with the operator processing data tuples received on the input and outputting processed data tuples on the output, wherein the streams manager keeps a second of the at least one virtual machine in a second ready state until the second virtual machine is needed to implement at least one of the plurality of operators, wherein the second ready state comprises a second state where the second virtual machine is running with an input of an operator implemented by the second virtual machine connected to the flow graph and an output of the operator disconnected from the flow graph.