Patent attributes
Techniques for assigning applications to virtual machines (VMs) using constraint programming are disclosed. The applications are associated with application groups. The assignment problem requires that each application of a particular application group be assigned to a VM hosted by a same machine. A data model, for application to a constraint programming solver, formulates the assignment problem as a set of constraints for a solution to be found. The data model includes a set of data model elements corresponding to the applications to be processed. The data model includes a set of data model elements corresponding to the VMs. The data model includes a set of constraints that limits assignment of any particular application to a VM corresponding to a tenant associated with the particular application. The set of constraints further limits assignment of applications corresponding to a same application group to VMs executing on a same machine.