Methods and systems for dynamically managing requests for computing capacity
AssigneeAmazon Technologies, Inc.
InventorsLee A. Atchison, Brian A. White, Peter D. Cohen, Peter N. De Santis, Mikhail Garber
Life of this patent
Estimating the term…
Abstract
Embodiments of systems and methods are described for dynamically managing requests for computing capacity from a provider of computing resources. Illustratively, the computing resources may include program execution capabilities, data storage or management capabilities, network bandwidth, etc. The systems or methods automatically allocate computing resources for execution of one or more programs associated with the user. The systems and methods may enable the user to make changes to the allocated resources after execution of the one or more programs has started.
Claims36
A computer-implemented method for dynamically managing requests for computing capacity provided by a program execution service, the method comprising:
- under control of a program execution service that provides a plurality of computing nodes that are each configurable to execute one or more programs of multiple users of the program execution service,
- receiving from a user of the program execution service a request to generate a virtualization environment for execution of a user application during a requested period of time, the request comprising information associated with the user application that permits the program execution service to execute a program based at least in part on the user application;
- automatically generating the virtualization environment, the virtualization environment including one or more program services provided by the program execution service, the program services comprising:
- (1) a load balancer configured to distribute workload across one or more of the plurality of computing nodes or one or more instances of the virtualization environment, (2) a monitoring interface configured to allow the user to monitor execution of the program, (3) a load scaler configured to scale computing resources of the program execution service in response to variations in demand for execution of the program, and (4) a plurality of database management services;
- determining from the plurality of computing nodes of the program execution service a group of computing nodes that can satisfy the request by the user;
- executing one or more instances of the virtualization environment on the group of computing nodes during the requested period of time;
- receiving from the user a request to make at least one change to the virtualization environment or to the one or more instances executing the virtualization environment on the group of computing nodes during the requested period of time;
- and
- automatically implementing the at least one change during the requested period of time.
A system configured to dynamically manage requests for computing capacity of a computing service, the system comprising:
- a computer memory configured to store one or more program modules for dynamically managing requests for computing capacity of a computing service, the computing service comprising a plurality of computing nodes;
- and
- an interactive request manager configured to communicate with the computer memory and to execute the one or more program modules stored in the computer memory, the program modules configured to:
- receive a request from a user to generate a virtualization environment for execution of a user application during a usage period, the request comprising information associated with the user application that permits the computing service to execute a program based at least in part on the user application;
- generate the virtualization environment, the virtualization environment including one or more program services comprising:
- (1) a load balancer configured to distribute workload across one or more of the plurality of computing nodes or one or more instances of the virtualization environment, (2) a monitoring interface configured to allow the user to monitor execution of the program, (3) a load scaler configured to scale computing resources in response to variations in demand for execution of the program, and (4) a plurality of database management services;
- execute one or more instances of the virtualization environment on a group of one or more of the plurality of computing nodes during the usage period;
- receive from the user a request to make at least one change to the virtualization environment or to the one or more instances executing the virtualization environment on the group of one or more of the plurality of computing nodes during the usage period;
- and
- implement the at least one change during the usage period.
A computing system configured to manage execution of programs for users, the system comprising:
- an interactive request manager component that is configured to manage execution of programs for users of a program execution service, the interactive request manager component configured to:
- receive from a user of the program execution service a request to generate a virtualization environment for execution of a user application during a usage period, the request comprising information associated with the user application that permits the program execution service to execute a program based at least in part on the user application, the program execution service providing a plurality of computing nodes configurable to execute programs of multiple users of the program execution service;
- generate the virtualization environment, the virtualization environment including one or more program services comprising:
- (1) a load balancer configured to distribute workload across computing resources of the virtualization environment, (2) a monitoring interface configured to allow the user to monitor execution of the program, (3) a load scaler configured to scale computing resources in response to variations in demand for execution of the program, and (4) a plurality of database management services;
- execute one or more instances of the virtualization environment on a group of one or more computing nodes;
- determine at least one change to the virtualization environment or to the one or more instances executing the virtualization environment on the group of one or more of the computing nodes during execution of the one or more instances of the virtualization environment;
- and
- implement the at least one change during the execution of the one or more instances of the virtualization environment.
A computing system configured to manage execution of programs for users, the system comprising:
- an interactive request manager component that is configured to manage execution of programs for users of a program execution service, the interactive request manager component configured to:
- receive a request from a first user to share, with users of the program execution service, a first virtualization environment generated for the first user;
- update a list of virtualization environments available for selection by users of the program execution service to provide an updated list of virtualization environments that includes information related to the first virtualization environment;
- provide the updated list of virtualization environments to users of the program execution service;
- receive a selection of the first virtualization environment that is included in the updated list from a second user of the program execution service;
- and
- generate a second virtualization environment for the second user, the second virtualization environment based at least in part on the first virtualization environment.
Dependencies are inferred from the claim text.