IP Library › Granted Patent US 10,069,869
Granted Patent B2
US 10,069,869 · App. 15/194,479 · Granted Sep 4, 2018

Versatile autoscaling

Inventors: Christopher Thomas Lewis (Vancouver, CA); Kai Fan Tang (Port Coquitlam, CA); Farzad Moghimi (Vancouver, CA); Ahmed Usman Khalid (Vancouver, CA); Stephan Weinwurm (Vancouver, CA)
Assignee: Amazon Technologies, Inc.
H04L63/205H04L63/083H04L63/105H04L67/1025H04Q9/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,069,869
App. No.
15/194,479
Granted
Sep 4, 2018
Kind
B2
Abstract

In response to receipt of a notification from a third service, a scaling policy specified by a customer of a computing resource service provider to be associated with the notification is obtained, with the scaling policy including a set of parameters that includes an identity of a resource of a second service of the computing resource service provider. As a result of processing the scaling policy in accordance with the set of parameters, a request is submitted to a second service to scale the resource, and output is provided that indicates whether the scaling request has been fulfilled.

Claims (98)

1. A system, comprising:

a scaling service that includes one or more processors and first memory including first instructions that, as a result of execution by the one or more processors, cause the scaling service to:

register, as a scalable target, a scalable dimension of a resource of a resource service, the resource service comprising a software container service, a database service, or a messaging service;

store a policy that includes a set of parameters and a scaling action to perform to the scalable target, the policy specifying, in the set of parameters, a security role that authorizes fulfillment of requests;

in response to receipt of a notification associated with the policy:

obtain the policy from storage;

submit a first request to a resource service, the first request being a request to perform the scaling action to the scalable target in accordance with the set of parameters;

submit a second request to the resource service, the second request being a request for data from which a determination can be made whether the scalable target has been scaled in accordance with the policy; and

determine, based at least in part on a response to the second request, whether the first request has been fulfilled; and

the resource service that includes one or more processors and second memory including second instructions that, as a result of execution by the one or more processors, cause the resource service to:

initiate performance of the scaling action in accordance with the set of parameters; and

submit, to the scaling service, the response that includes the data.

2. The system of claim 1 , wherein:

the system further comprises a telemetry service that includes one or more processors and third memory including third instructions that, as a result of execution by the one or more processors, cause a third service to:

receive a measurement; and

as a result of a condition related to the measurement being met, transmit the notification to the scaling service.

3. The system of claim 1 , wherein the instructions further cause the scaling service to scale another resource service, different from the resource service, in accordance with another scaling policy.

4. The system of claim 1 , wherein:

the first instructions include instructions that cause the scaling service to obtain a token that represents session credentials associated with the security role; and

the second instructions that cause the resource service to initiate performance of the scaling action is executed as a result of the first request including the token.

5. The system of claim 4 , wherein:

the first instructions that cause the scaling service to obtain the token include instructions that cause the scaling service to obtain the token from a fourth service; and

the system further comprises:

a policy management service that includes one or more third processors and third memory including third instructions that, as a result of execution by the one or more third processors, cause the policy management service to create the security role that authorizes fulfilment of the scaling action in accordance with a third request from a customer associated with the resource; and

the fourth service that includes one or more fourth processors and fourth memory including fourth instructions that, as a result of execution by the one or more fourth processors, cause the fourth service to:

generate the token to represent the session credentials associated with the security role created by the policy management service; and

provide the token to the scaling service.

6. A computer-implemented method, comprising:

identifying, with a scaling service, a scalable target, the scalable target indicating at least:

a scalable resource service that comprises a software container service, a database service, or a messaging service;

a resource of the scalable resource service; and

a scalable dimension of the resource;

storing a scaling policy that includes a set of parameters and a scaling action perform to the scalable target, the set of parameters indicating a security role that authorizes fulfillment of requests;

obtaining the scaling policy responsive to a notification received,

the scaling policy including a set of parameters that specify how to scale the scalable target;

submitting, from the scaling service to the scalable resource service, a scaling request to scale the scalable dimension of the scalable target in accordance with the set of parameters;

submitting to the scalable resource service, a second request for data from which a determination can be made whether the scalable target has been scaled in accordance with the policy;

determining, based at least in part on a response to the second request, whether the scaling request has been fulfilled;

receiving, from the scalable resource service, a status of the scalable target; and

determining, based at least in part on the status, whether the scaling request has been fulfilled, wherein:

the scalable resource service comprises one or more processors and memory instructions that, if executed by the one or more processors, cause the scalable resource to:

initiate performance of the scaling action in accordance with the set of parameters; and

submit, to the scaling service, the response that includes the data.

7. The computer-implemented method of claim 6 , wherein the set of parameters include one or more of:

an identifier for the service,

an identifier for the resource,

the scalable dimension of the resource, or

an amount of adjustment to make to the scalable dimension.

8. The computer-implemented method of claim 6 , wherein the notification:

is received from a telemetry service of a computing resource service provider; and

indicates that measurements have reached a value relative to an alarm threshold specified for a telemetry service alarm.

9. The computer-implemented method of claim 6 , wherein the notification is received as a result of an occurrence of an event.

10. The computer-implemented method of claim 6 , wherein the notification is received in accordance with a schedule.

11. The computer-implemented method of claim 6 , wherein the set of parameters specify to maintain the dimension of the resource within a particular range.

12. The computer-implemented method of claim 6 , wherein the set of parameters specify multiple steps of scaling adjustments applicable to the scalable target.

13. The computer-implemented method of claim 6 , wherein the dimension includes one or more of:

a quantity of tasks,

read throughput,

write throughput, or

processor utilization.

14. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system of a computing resource service provider, cause the computer system to at least:

register at a first service, as a target, a dimension of a resource of a second service of the computing resource service provider, the second service comprising a software container service, a database service, or a messaging service;

store a scaling policy, the scaling policy including a set of parameters that indicates a scaling action to apply to the target, the policy indicating, in the set of parameters, a security role that authorizes fulfillment of requests;

in response to receipt of a notification associated with the scaling policy, obtain the scaling policy and process the scaling policy in accordance with the set of parameters;

as a result of processing the scaling policy, submit a request to the second service to apply the scaling action to the target;

submit a second request to the second service to determine whether the target has been scaled in accordance with the policy; and

provide output that indicates whether the request has been fulfilled, wherein:

the second service comprises a system to initiate performance of the scaling action in accordance with the set of parameters and provide a response to the request that enables determining whether the target has been scaled according to the scaling policy.

15. The non-transitory computer-readable storage medium of claim 14 , wherein:

the request to the second service is a first request;

the executable instructions further include executable instructions that cause the computer system to:

make a determination, based at least in part on the response from the second service to the second request, whether the first request has been fulfilled; and

the output provided is based at least in part on the determination.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the request to scale the target is a request to scale-up, scale-down, scale-in, or scale-out a dimension of the resource.

17. The non-transitory computer-readable storage medium of claim 14 , wherein instructions, as a result of being executed, further cause the computer system to scale a third service different from the second service, the second service being one or more of:

a virtual computer system service,

a block-level data storage service,

an on-demand data storage service, or

a data streaming service.

18. The non-transitory computer-readable storage medium of claim 14 , wherein the resource is a group of resources that includes:

a first resource having a first dimension; and

a second resource having a second dimension of a different type than the first dimension.

19. The non-transitory computer-readable storage medium of claim 14 , wherein the set of parameters indicates a dimension of the resource to scale, the dimension including one or more of:

a quantity of virtual machine instances,

a block size,

a volume size,

a message queue size, or

a quantity of shards of a stream.

20. The non-transitory computer-readable storage medium of claim 14 , wherein the set of parameters at least indicate:

the target;

a type of adjustment to make to the target; and

an amount of adjustment to make.

21. The non-transitory computer-readable storage medium of claim 20 , wherein the set of parameters further include one or more of:

an upper bound for the amount of adjustment,

a lower bound for the amount of adjustment,

a cooldown period,

an aggregation type, or

a minimum adjustment magnitude.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: LEWIS, CHRISTOPHER THOMAS; TANG, KAI FAN; MOGHIMI, FARZAD; KHALID, AHMED USMAN; WEINWURM, STEPHAN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 041817/0849 →
Continuity (2)
Provisional Application 62337809 · May 17, 2016
Related Publication 20170339196A1 · Nov 23, 2017