A method, performed by a predictive scaling component, comprising: monitoring performance of an application within a cloud computing environment over a first window of time to collect historical performance data, wherein the application comprises a plurality of application instances and wherein the historical performance data includes start-up time data and shutdown time data for the plurality of application instances; monitoring a workload of the application over a second window of time to collect historical workload data, wherein the historical workload data includes at least a measure of incoming requests per a unit of time; analyzing the historical workload data to determine one or more scaling patterns for the application, wherein the scaling patterns represent a trend in an incoming workload of the application that is indicative of a future workload of the application; upon determining that a present state of the application matches one of the one or more scaling patterns, wherein the present state of the application includes a current workload of the application, determining an estimated future workload of the application at a future point in time based on the scaling pattern which matches the present state, wherein the future point in time is determined based on the start-up time data; determining a plan for predictively scaling the application based on the estimated future workload; and predictively scaling the plurality of application instances, based on the determined plan and either: the start-up time data when it is determined that additional application instances are needed; or the shutdown time data when it is determined that application instances are to be shut down. monitoring performance of an application within a cloud computing environment over a first window of time to collect historical performance data, wherein the application comprises a plurality of application instances and wherein the historical performance data includes start-up time data and shutdown time data for the plurality of application instances; monitoring a workload of the application over a second window of time to collect historical workload data, wherein the historical workload data includes at least a measure of incoming requests per a unit of time; analyzing the historical workload data to determine one or more scaling patterns for the application, wherein the scaling patterns represent a trend in an incoming workload of the application that is indicative of a future workload of the application; upon determining that a present state of the application matches one of the one or more scaling patterns, wherein the present state of the application includes a current workload of the application, determining an estimated future workload of the application at a future point in time based on the scaling pattern which matches the present state, wherein the future point in time is determined based on the start-up time data; determining a plan for predictively scaling the application based on the estimated future workload; and predictively scaling the plurality of application instances, based on the determined plan and either: the start-up time data when it is determined that additional application instances are needed; or the shutdown time data when it is determined that application instances are to be shut down. the start-up time data when it is determined that additional application instances are needed; or the shutdown time data when it is determined that application instances are to be shut down.