AUTOMATIC SCALING OF RESOURCE INSTANCE GROUPS WITHIN COMPUTE CLUSTERS
First Claim
1. A distributed computing system, comprising:
- a plurality of compute nodes, each compute node comprising at least one processor and a memory; and
an interface;
wherein the distributed computing system implements a distributed computing service;
wherein the plurality of compute nodes are configured as a cluster of compute nodes according to a MapReduce distributed computing framework, wherein the cluster is configured to execute a distributed application;
wherein the distributed computing service is configured to;
receive, through the interface from a client of the distributed computing service, input defining an expression that, when evaluated true, represents a trigger condition for performing an automatic scaling operation on the cluster and input specifying a scaling action to be taken in response to the expression evaluating true, wherein the expression is dependent on values of one or more metrics generated during execution of the distributed application;
collect, during execution of the distributed application, the one or more metrics;
determine, during execution of the distributed application and dependent on the collected metrics, that the expression evaluates true; and
initiate, in response to the determination, performance of the automatic scaling operation on the cluster, wherein the automatic scaling operation comprises an operation to add one or more compute nodes to the cluster or an operation to remove one or more compute nodes from the cluster.
1 Assignment
0 Petitions
Accused Products
Abstract
A service provider may apply customer-selected or customer-defined auto-scaling policies to a cluster of resources (e.g., virtualized computing resource instances or storage resource instances in a MapReduce cluster). Different policies may be applied to different subsets of cluster resources (e.g., different instance groups containing nodes of different types or having different roles). Each policy may define an expression to be evaluated during execution of a distributed application, a scaling action to take if the expression evaluates true, and an amount by which capacity should be increased or decreased. The expression may be dependent on metrics emitted by the application, cluster, or resource instances by default, metrics defined by the client and emitted by the application, or metrics created through aggregation. Metric collection, aggregation and rules evaluation may be performed by a separate service or by cluster components. An API may support auto-scaling policy definition.
-
Citations
22 Claims
-
1. A distributed computing system, comprising:
-
a plurality of compute nodes, each compute node comprising at least one processor and a memory; and an interface; wherein the distributed computing system implements a distributed computing service; wherein the plurality of compute nodes are configured as a cluster of compute nodes according to a MapReduce distributed computing framework, wherein the cluster is configured to execute a distributed application; wherein the distributed computing service is configured to; receive, through the interface from a client of the distributed computing service, input defining an expression that, when evaluated true, represents a trigger condition for performing an automatic scaling operation on the cluster and input specifying a scaling action to be taken in response to the expression evaluating true, wherein the expression is dependent on values of one or more metrics generated during execution of the distributed application; collect, during execution of the distributed application, the one or more metrics; determine, during execution of the distributed application and dependent on the collected metrics, that the expression evaluates true; and initiate, in response to the determination, performance of the automatic scaling operation on the cluster, wherein the automatic scaling operation comprises an operation to add one or more compute nodes to the cluster or an operation to remove one or more compute nodes from the cluster. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method, comprising:
performing, by one or more computers; creating a cluster of computing resource instances, wherein the cluster comprises two or more instance groups, each comprising one or more computing resource instances; receiving input associating an automatic scaling policy with one of the two or more instance groups, wherein the automatic scaling policy defines a condition that, when met, triggers the performance of an automatic scaling operation on the one of the two or more instance groups that changes the number of computing resource instances in the one of the two or more instance groups; detecting, during execution of a distributed application on the cluster, that the trigger condition has been met; and initiating, in response to said detecting, performance of the automatic scaling operation on the one of the two or more instance groups. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
19. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more computers cause the one or more computers to implement a distributed computing service;
-
wherein the distributed computing service comprises; a cluster of virtualized computing resource instances configured to execute a distributed application; an interface through which one or more clients interact with the service; and an auto-scaling rules engine; wherein the distributed computing service is configured to; receive, through the interface from a client of the distributed computing service, input defining an automatic scaling policy, wherein the input comprises information defining an expression that, when evaluated true, represents a trigger condition for performing an automatic scaling operation, information specifying a scaling action to be taken in response to the expression evaluating true, and input identifying a subset of the virtualized computing resource instances of the cluster to which the automatic scaling policy applies; and wherein the auto-scaling rules engine is configured to; determine, during execution of the distributed application and dependent on one or more metrics generated during the execution, that the expression evaluates true; and initiate, in response to the determination, performance of the automatic scaling operation, wherein the automatic scaling operation comprises an operation to add one or more instances to the subset of the virtualized computing resource instances of the cluster to which the automatic scaling policy applies or an operation to remove one or more instances from the subset of the virtualized computing resource instances of the cluster to which the automatic scaling policy applies. - View Dependent Claims (20, 21, 22)
-
Specification