Placing objects on hosts using hard and soft constraints
First Claim
Patent Images
1. A method for placing objects on hosts in an online service, comprising:
- determining, using a processor, when to place an object on one of a plurality of hosts in the online service, wherein the online service comprises databases, virtual machines (VMs) and physical machines, wherein the physical machines are arranged in farms that perform roles in a network;
obtaining placement constraints for the object that comprise hard constraints and soft constraints, wherein application of a hard constraint eliminates one or more of the hosts from being selected on which to place the object, and wherein soft constraints determine which hosts are more suitable than other hosts;
applying the hard constraints against hosts within the network that results in a pool of remaining hosts, wherein the hard constraints include high availability constraints, wherein applying the high availability constraints eliminates one or more hosts to ensure that objects having redundant roles within the network are placed on different hosts;
applying the soft constraints against the pool of remaining hosts that results in a pool of selection hosts;
automatically selecting a host on which to place the object from the pool of selection hosts; and
automatically deploying the object on the selected host.
2 Assignments
0 Petitions
Accused Products
Abstract
Objects are placed on hosts using hard constraints and soft constraints. The objects to be placed on the host may be many different types of objects. For example, the objects to place may include tenants in a database, virtual machines on a physical machine, databases on a virtual machine, tenants in directory forests, tenants in farms, and the like. When determining a host for an object, a pool of hosts is filtered through a series of hard constraints. The remaining pool of hosts is further filtered through soft constraints to help in selection of a host. A host is then chosen from the remaining hosts.
177 Citations
20 Claims
-
1. A method for placing objects on hosts in an online service, comprising:
-
determining, using a processor, when to place an object on one of a plurality of hosts in the online service, wherein the online service comprises databases, virtual machines (VMs) and physical machines, wherein the physical machines are arranged in farms that perform roles in a network; obtaining placement constraints for the object that comprise hard constraints and soft constraints, wherein application of a hard constraint eliminates one or more of the hosts from being selected on which to place the object, and wherein soft constraints determine which hosts are more suitable than other hosts; applying the hard constraints against hosts within the network that results in a pool of remaining hosts, wherein the hard constraints include high availability constraints, wherein applying the high availability constraints eliminates one or more hosts to ensure that objects having redundant roles within the network are placed on different hosts; applying the soft constraints against the pool of remaining hosts that results in a pool of selection hosts; automatically selecting a host on which to place the object from the pool of selection hosts; and automatically deploying the object on the selected host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage medium, excluding a signal, having computer-executable instructions for deploying objects on hosts in an online service, comprising:
-
determining when to place an object on one of a plurality of hosts in the online service, wherein the online service comprises databases, virtual machines (VMs) and physical machines, wherein the physical machines are arranged in farms that perform roles in a network;
wherein the object to be placed on one of the plurality of hosts is at least one of;
a virtual machine (VM), a tenant or a database;
wherein the host is at least one of;
a physical machine, a database, a farm, a rack that holds physical machines, or a VM;obtaining placement constraints for the object that comprise hard constraints and soft constraints, wherein application of a hard constraint eliminates one or more of the hosts from being selected on which to place the object, wherein soft constraints determine which hosts are more suitable than other hosts; applying the hard constraints against hosts within the network that results in a pool of remaining hosts, wherein the hard constraints include high availability constraints, wherein applying the high availability constraints eliminates one or more hosts to ensure that objects having redundant roles within the network are placed on different hosts; applying the soft constraints against the pool of remaining hosts that results in a pool of selection hosts; automatically selecting a host on which to place the object from the pool of selection hosts; and automatically deploying the object on the selected host. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system for deploying objects on hosts for an online service, comprising:
-
a network comprising physical machines, racks for holding physical machines, virtual machines (VMs), servers, and databases;
wherein the servers are arranged in farms that each perform a role;a processor and a computer-readable storage medium; an operating environment stored on the computer-readable storage medium and executing on the processor; and application code that is operative to; determine when to place an object on one of a plurality of hosts;
wherein the object to be placed on one of the plurality of hosts is at least one of;
a virtual machine (VM), a tenant or a database;
wherein the host is at least one of;
a physical machine, a database, a farm, a rack or a VM;obtain placement constraints for the object that comprise hard constraints and soft constraints, wherein application of a hard constraint eliminates one or more of the hosts from being selected on which to place the object, wherein soft constraints determine which hosts are more suitable than other hosts; apply the hard constraints against hosts within the network that results in a pool of remaining hosts, wherein the hard constraints include high availability constraints, wherein applying the high availability constraints eliminates one or more hosts to ensure that objects having redundant roles within the network are placed on different hosts; apply the soft constraints against the pool of remaining hosts that results in a pool of selection hosts; automatically select a host on which to place the object from the pool of selection hosts; and automatically deploy the object on the selected host. - View Dependent Claims (17, 18, 19, 20)
-
Specification