Patent ID: 8706852

Claim:
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 a plurality of clusters, wherein the plurality of clusters have a plurality of scaling polices, wherein a first scaling policy in the plurality of scaling policies applies to a first cluster in the plurality of clusters, and wherein a second scaling policy in the plurality of scaling policies applies to a second cluster in the plurality of cluster; monitoring, at the plurality of nodes, a first runtime behavior and a second runtime behavior of the application and the plurality of components, wherein the first runtime behavior occurs in the first cluster and the second runtime behavior occurs in the second cluster; generating, by a first processing device in the first cluster, a first scaling event in view of a comparison of the first runtime behavior of the application or one of the plurality of components in the first cluster to the first scaling policy; generating, by a second processing device in the second cluster, a second scaling event in view of a comparison of the second runtime behavior of the application or one of the plurality of components in the second cluster to the second scaling policy; performing conflict resolution between the first scaling event and the second scaling event to determine which of the first scaling event or the second scaling event to process in view of determining that processing both the first scaling event and the second scaling event causes at least one of the first scaling event or the second scaling event to violate a constraint on resources within the first cluster or the second cluster; and automatically scaling at least one of the application or a component in the plurality of components in view of processing the first scaling event or the second scaling event, wherein the scaling comprises adding a new node to the first cluster or the second cluster or removing an existing node from the first cluster or the second cluster in view of processing the first scaling event or the second scaling event.