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 resource usage for the at least one virtual machine and application performance of an application running on the virtual machine, the at least one virtual machine having a set of one or more physical resource elements assigned thereto; determining, as a function of prescribed rules relating to resource usage and the measure of resource usage for the at least one virtual machine and application performance, whether the at least one virtual machine requires resizing; determining a feasibility of the resizing of the at least one virtual machine based at least in part on the information regarding resource availability; and resizing the at least one virtual machine to dynamically change resource availability for the at least one virtual machine so as to maintain resource usage and application performance within prescribed limits defined by the prescribed rules, said resizing being performed without any of: interrupting an application running on the at least one virtual machine, causing an operating system reboot, restarting the application, or causing a hardware reconfiguration; wherein resizing the at least one virtual machine comprises periodically performing the steps of: determining whether resource usage and application performance is below prescribed lower limits defined by the prescribed rules, and responsive to this determination hiding at least a portion of the set of one or more physical resource elements from the application such that the hidden portion of the set remains assigned to the at least one virtual machine but is effectively invisible to the application running on the virtual machine; determining whether resource usage and application performance is still below prescribed lower limits defined by the prescribed rules and a pre-determined number of resources are hidden from the application in the hidden portion and responsive to this determination decreasing the size of the at least one virtual machine by decreasing at least one of a number and a capacity of one or more resource elements assigned to the at least one virtual machine; determining whether the resource usage and application performance is above a higher limit defined by the prescribed rules and whether a resource exists in the hidden portion of physical resource elements and responsive to this determination making visible at least a portion of the set of one or more physical resource elements from the hidden portion for usage by the application; and determining whether the resource usage and application performance is above a higher limit defined by the prescribed rules and whether all resources in the hidden portion are visible and responsive to this determination increasing a size of the at least one virtual machine by at least one of adding one or more available resources to the at least one virtual machine.