1. A method of scaling comprising: determining, by a computing device, a predicted workload of a multi-tier application for a defined time period; the multi-tier application running on a plurality of virtual machines, including a first virtual machine of a plurality of the virtual machines having a lower resource allocation than other virtual machines of the plurality of virtual machines having approximately equally configured resource allocations; determining, by the computing device, a change in the multi-tier application resource capacity for the predicted workload including; comparing the change in the multi-tier application resource capacity to a remaining resource capacity of the first virtual machine; and dynamically selecting, by the computing device, a scaling strategy for the change in the multi-tier application resource capacity; if the change in the multi-tier application resource capacity is less than a remaining resource capacity of the first virtual machine having a lower resource allocation the scaling strategy including vertical scaling that includes increasing resource entitlement within one of the plurality of virtual machines; if the change in the multi-tier application resource capacity is greater than a remaining resource capacity of the first virtual machine having the lower resource allocation the scaling strategy including vertical scaling and horizontal scaling that includes a creating at least one additional virtual machine to the plurality of virtual machines.