IP Library › Granted Patent US 11,409,556
Granted Patent B2
US 11,409,556 · App. 16/839,789 · Granted Aug 9, 2022

Custom placement policies for virtual machines

Inventors: Joshua Dawie Mentz (Cape Town, ZA); Diwakar Gupta (Seattle, WA); Michael Groenewald (Cape Town, ZA); Alan Hadley Goodman (Issaquah, WA); Marnus Freeman (Kuilsrivier, ZA)
Assignee: Amazon Technologies, Inc.
G06F9/45558G06F2009/4557G06F2009/45595
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 11,409,556
App. No.
16/839,789
Granted
Aug 9, 2022
Kind
B2
Abstract

A component of a computing service obtains respective indications of placement policies that contain host selection rules for application execution environments such as guest virtual machines. With respect to a request for a particular application execution environment, a group of applicable placement policies is identified. A candidate pool of hosts is selected using the group of placement policies, and members of the pool are ranked to identify a particular host on which the requested application execution environment is instantiated.

Claims (46)

1. A method, comprising:

performing, at one or more computing devices:

storing, at a repository, a plurality of placement policies indicating respective criteria for selecting resources at which application execution environments are launched, wherein indications of at least some placement policies of the plurality are received in respective programmatic requests directed to a computing service;

identifying, based at least in part on respective applicability rules of the placement policies, (a) a first subset of the plurality of placement policies to be enforced at a first placement manager of a plurality of placement managers of the computing service, and (b) a second subset of placement policies of the plurality of placement policies to be enforced at a second placement manager of the plurality of placement managers, wherein at least one placement policy of the first subset is not in the second subset; and

causing to be selected, by the first placement manager, a resource to launch an application execution environment, wherein the selection is based at least in part on a representation of the first subset received at the first placement manager.

2. The method as recited in claim 1 , further comprising performing, at the one or more computing devices:

causing to be cached, at the first placement manager, at least some placement policies of the first subset.

3. The method as recited in claim 1 , wherein the first placement manager is located at a first data center of a provider network, and wherein the second placement manager is located at a second data center of the provider network.

4. The method as recited in claim 1 , further comprising performing, at the one or more computing devices:

causing the first placement manager to conduct, using an index on the first subset of the plurality of placement policies, a search for a placement policy applicable to the application execution environment.

5. The method as recited in claim 4 , wherein the search is based at least in part on one or more of: (a) an identifier of a client of a provider network on whose behalf the application execution environment is to be launched, or (b) a category of the application execution environment.

6. The method as recited in claim 1 , further comprising performing, at the one or more computing devices:

generating an executable program which implements at least some placement policies of the first subset; and

transmitting, to the first placement manager, the executable program.

7. The method as recited in claim 6 , further comprising performing, at the one or more computing devices:

causing one or more attributes of a launch request for the application execution environment to be provided as input to the executable program at the first placement manager, wherein the output produced by the executable program comprises a ranked list of candidate resources for launching the application execution environment, and wherein the ranked list includes the selected resource.

8. A system, comprising:

one or more computing devices; and

wherein the one or more computing devices comprise executable instructions that when executed on or across one or more processors cause the one or more computing devices to:

store a plurality of placement policies indicating respective criteria for selecting resources at which application execution environments are launched, wherein indications of at least some placement policies of the plurality are received in respective programmatic requests directed to a computing service;

identify, based at least in part on respective applicability rules of the placement policies, (a) a first subset of the plurality of placement policies to be enforced at a first placement manager of a plurality of placement managers of the computing service, and (b) a second subset of placement policies of the plurality of placement policies to be enforced at a second placement manager of the plurality of placement managers, wherein at least one placement policy of the first subset is not in the second subset; and

cause to be selected, by the first placement manager, a resource to launch an application execution environment, wherein the selection is based at least in part on a representation of the first subset received at the first placement manager.

9. The system as recited in claim 8 , wherein the one or more computing devices comprise further executable instructions that when executed on or across the one or more processors further cause the one or more computing devices to:

cause to be cached, at the first placement manager, at least some placement policies of the first subset.

10. The system as recited in claim 8 , wherein the first placement manager is located at a first data center of a provider network, and wherein the second placement manager is located at a second data center of the provider network.

11. The system as recited in claim 8 , wherein the one or more computing devices comprise further executable instructions that when executed on or across the one or more processors further cause the one or more computing devices to:

cause the first placement manager to conduct, using an index on the first subset of the plurality of placement policies, a search for a placement policy applicable to the application execution environment.

12. The system as recited in claim 11 , wherein the search is based at least in part on one or more of: (a) an identifier of a client of a provider network on whose behalf the application execution environment is to be launched, or (b) a category of the application execution environment.

13. The system as recited in claim 8 , wherein the one or more computing devices comprise further executable instructions that when executed on or across the one or more processors further cause the one or more computing devices to:

generate an executable program which implements at least some placement policies of the first subset; and

transmit, to the first placement manager, the executable program.

14. The system as recited in claim 8 , wherein the one or more computing devices comprise further executable instructions that when executed on or across the one or more processors further cause the one or more computing devices to:

cause one or more attributes of a launch request for the application execution environment to be provided as input to the executable program at the first placement manager, wherein the output produced by the executable program comprises a ranked list of candidate resources for launching the application execution environment, and wherein the ranked list includes the selected resource.

15. One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors cause one or more computer systems to:

store a plurality of placement policies indicating respective criteria for selecting resources at which application execution environments are launched, wherein indications of at least some placement policies of the plurality are received in respective programmatic requests directed to a computing service;

identify, based at least in part on respective applicability rules of the placement policies, (a) a first subset of the plurality of placement policies to be enforced at a first placement manager of a plurality of placement managers of the computing service, and (b) a second subset of placement policies of the plurality of placement policies to be enforced at a second placement manager of the plurality of placement managers, wherein at least one placement policy of the first subset is not in the second subset; and

cause to be selected, by the first placement manager, a resource to launch an application execution environment, wherein the selection is based at least in part on a representation of the first subset received at the first placement manager.

16. The one or more non-transitory computer-accessible storage media as recited in claim 15 , storing further program instructions that when executed on or across the one or more processors further cause the one or more computer systems to:

cause to be cached, at the first placement manager, at least some placement policies of the first subset.

17. The one or more non-transitory computer-accessible storage media as recited in claim 15 , wherein the first placement manager is located at a first data center of a provider network, and wherein the second placement manager is located at a second data center of the provider network.

18. The one or more non-transitory computer-accessible storage media as recited in claim 15 , storing further program instructions that when executed on or across the one or more processors further cause the one or more computer systems to:

cause the first placement manager to conduct, using an index on the first subset of the plurality of placement policies, a search for a placement policy applicable to the application execution environment.

19. The one or more non-transitory computer-accessible storage media as recited in claim 15 , wherein the application execution environment comprises an operating system of an un-virtualized host.

20. The one or more non-transitory computer-accessible storage media as recited in claim 15 , storing further program instructions that when executed on or across the one or more processors further cause the one or more computer systems to:

generate an executable program which implements at least some placement policies of the first subset; and

transmit, to the first placement manager, the executable program.

Continuity (2)
Continuation 14970527 · Dec 15, 2015
Related Publication 20200249977A1 · Aug 6, 2020