1. A method for providing dynamic resizing of at least one virtual machine in a cloud infrastructure, the method comprising steps of: obtaining a measure of at least one of resource usage for the at least one virtual machine and application performance of an application running on the virtual machine; determining, as a function of prescribed rules relating to resource usage and at least one of the measure of resource usage for the at least one virtual machine and application performance, whether the at least one virtual machine requires resizing; and resizing the at least one virtual machine to dynamically change resource availability for the at least one virtual machine so as to maintain at least one of resource usage and application performance within prescribed limits defined by the prescribed rules.