IP Library Granted Patent US 10,735,281
Granted Patent B1
US 10,735,281 · App. 15/379,431 · Granted Aug 4, 2020

Application focused provisioning system

Inventors: Joshua Marc Burgin (Seattle, WA); Anupama Sharma (Seattle, WA); Aleksei Besogonov (Seattle, WA); Boyd Lachlan McGeachie (Seattle, WA); Joby Sky Lafky (Seattle, WA); Andrei Prislopski (Issaquah, WA); Aniruddha Shriram Daptardar (Redmond, WA)
Assignee: Amazon Technologies, Inc.
H04L41/5045H04L41/5038H04L67/02H04L67/10
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,735,281
App. No.
15/379,431
Granted
Aug 4, 2020
Kind
B1
Abstract

A computing resource service provider may provide customer with access to computing resources which may be utilized by the customer to execute a variety of applications and/or tasks. A provisioning service of the computing resource service provider may obtain application information from the customer and determine a set of computing resource configurations suitable for executing the customer's application based at least in part on the application information obtained from the customer. The customer may select a particular computing resource configuration to execute the customer application.

Claims (44)

1. A computer-implemented method, comprising:

obtaining an application type specified by interaction with a user interface;

providing a pre-populated set of application parameters for display and modification in the user interface;

receiving, based at least in part on the pre-populated set of application parameters, information resulting from interaction with the user interface, wherein the information includes a set of constraints associated with an application to be performed on behalf of a user;

determining a set of computing resource configurations based at least in part on the set of constraints associated with the application, wherein each member of the set of computing resource configurations indicates a set of compute instances to execute the application;

performing a simulation for each computing resource configuration in the set of computing resource configurations to obtain a measurement of provisioning each computing resource configuration, thereby resulting in a set of measurements for the application;

providing the set of measurements in the user interface to enable selection of a configuration of the set of computing resource configurations;

receiving a selected configuration from the set of computing resource configurations;

provisioning a subset of the set of compute instances according to the selected configuration; and

causing the subset of the set of compute instances to execute the application.

2. The computer-implemented method of claim 1 , wherein the application type further includes: a web application, batch job, or map reduce application.

3. The computer-implemented method of claim 1 , wherein providing the pre-populated set of application parameters for display and modification in the user interface is based at least in part on applying one or more heuristics to the application type.

4. The computer-implemented method of claim 1 , wherein the measurement further comprises an estimated cost of operating at least one computing resource configuration.

5. A system, comprising:

one or more processors; and

memory including executable instructions that, as a result of being executed by the one or more processors, causes the system to:

obtain information specifying a category of an application that is to be performed on behalf of a user through a user interface, the category of the application includes a set of constraints associated with the application;

determine a set of computing resource configurations based at least in part on the category in accordance with the set of constraints, each member of the set of computing resource configurations including information indicating a set of compute instances to execute the application;

receive a selection of a particular computing resource configuration of the set of computing resources configurations through the user interface;

provision at least one compute instance of the set of compute instances indicated in the particular computing resource configuration; and

cause the at least one compute instance to execute the application.

6. The system of claim 5 , wherein the memory further includes executable instructions that, as a result of being executed by the one or more processors, cause the system to simulate provisioning compute instances included in the set of computing resource configurations by at least determining a cost based at least in part on an amount of available compute instances.

7. The system of claim 5 , wherein the executable instructions that cause the system to obtain information specifying the category of the application further includes executable instructions that, as a result of being executed by the one or more processors, cause the system to select one or more parameters for determining the set of computing resource configurations based at least in part on one or more heuristics.

8. The system of claim 5 , wherein the memory further includes executable instructions that, as a result of being executed by the one or more processors, cause the system to:

receive a cost cap associated with executing the application; and

determine the set of computing resource configurations based at least in part on the cost cap.

9. The system of claim 8 , wherein the memory further includes executable instructions that, as a result of being executed by the one or more processors, cause the system to determine an interruption probability based at least in part on the cost cap, the interruption probability indicating a probability of interruption of execution of the application as a result of a cost of compute instances exceeding the cost cap.

10. The system of claim 5 , wherein the memory further includes executable instructions that, as a result of being executed by the one or more processors, cause the system to receive a capacity requirement associated with executing the application through the user interface.

11. The system of claim 10 , wherein the capacity requirement includes a number of processors required of the set of compute instances.

12. The system of claim 10 , wherein the capacity requirement includes an amount of network bandwidth required of the set of compute instances.

13. A non-transitory computer-readable storage medium comprising executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:

obtain information indicating a type of an application, wherein the type of the application includes a set of constraints for the application that is to be performed on behalf of a user;

determine a set of compute instances suitable to execute the application based at least in part on the information, the set of compute instances satisfying the type of the application indicated in the information;

determine a subset of the set of compute instances that have been selected to execute the application based at least in part on the information indicating the type of the application in accordance with the set of constraints for the application; and

cause the subset of the set of compute instances to execute the application.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to determine the set of compute instances further include instructions that cause the computer system to determine at least one storage instance satisfying one or more conditions to include in the set of compute instances.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to obtain information indicating the type of an application further includes instructions that cause the computer system to obtain information of the type of the application for an executing instance of a second application.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to determine the set of compute instances further includes instructions that cause the computer system to determine a load balancer to include in the set of compute instances, the load balancer responsible to directing requests to the set of compute instances.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to determine an estimated cost and an estimated capacity associated with the set of compute instances based at least in part on a number of simulations of provisioning the set of compute instances.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the instructions that cause the computer system to determine the estimated cost associated with the set of compute instances further include instructions that cause the computer system to determine the estimated cost based at least in part on one or more pricing curves associated with the set of compute instances.

19. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to transmit a request to an automation service to provision the set of the compute instances.

20. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to:

determine a second subset of compute instances of the set of compute instances that satisfies the type of an application as a result of at least one compute instance of the set of compute instances no longer satisfying the type of an application; and

cause the second subset of the compute instances to execute the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: BURGIN, JOSHUA MARC; SHARMA, ANUPAMA; BESOGONOV, ALEKSEI; MCGEACHIE, BOYD LACHLAN; LAFKY, JOBY SKY; PRISLOPSKI, ANDREI; DAPTARDAR, ANIRUDDHA SHRIRAM
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 040738/0851 →
Cited By (3)
US 12,307,282 US 12,316,493 US 12,353,920