Automated scaling of an application and its support components
First Claim
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 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.
1 Assignment
0 Petitions
Accused Products
Abstract
An execution environment provides 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. The execution environment monitors runtime behavior of the application and the plurality of components, and generates a scaling event based on a comparison of the runtime behavior to one or more scaling policies. The execution environment automatically scales at least one of the application or a component of the plurality of components if the scaling event does not violate a constraint, 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.
-
Citations
20 Claims
-
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 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable storage medium having instructions stored therein which, when executed by a processing device, cause the processing device to perform operations 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. - View Dependent Claims (11, 12, 13, 14, 15, 16, 18)
-
-
17. The non-transitory computer readable storage medium of claim l5, wherein the second scaling event is associated with a second provisioning group in the plurality of provisioning groups and is generated in view of the comparison of the second runtime behavior for the second provisioning group to the second scaling policy for the second provisioning group, and wherein the existing node is removed from the second cluster for the second provisioning group.
-
19. A system comprising:
-
a plurality of storage devices to store and provide an application and a plurality of components that support execution of the application; and a plurality of processing devices having a plurality of nodes that host the plurality of components and the application, wherein the plurality of nodes are 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, the plurality of processing devices to; monitor 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; generate, by a first processing device in the plurality of processing devices 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; generate, by a second processing device in the plurality of processing devices 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; perform 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 a determination 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 scale at least one of the application or a component in the plurality of components by addition of a new node to the first cluster or the second cluster or removal of an existing node from the first cluster or the second cluster in view of the first scaling event or the second scaling event. - View Dependent Claims (20)
-
Specification