1. A method comprising: providing a plurality of components that support execution of an application, wherein the plurality of components and the application are hosted by a plurality of nodes arranged in one or more clusters; monitoring runtime behavior of the application and the plurality of components; generating a scaling event based on a comparison of the runtime behavior to one or more scaling policies; and automatically scaling at least one of the application or a component of the plurality of components based on the scaling event, wherein the scaling comprises adding a new node to at least one cluster of the one or more clusters or removing a node from at least one cluster of the one or more clusters based on the scaling event.