A system and method of assigning resource consumers to resources using constraint programming is disclosed. The resource consumers are to be assigned to the resources in a way that achieves one or more particular objectives, such as resiliency, load balancing, and network embedding criteria. 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 first set of data model elements corresponding to pairs of resources, each pair having two resources in different failure domains. The data model includes a second set of data model elements corresponding to the resource consumers. The data model includes a constraint that limits assignment of the resource consumers to the resources to: assigning the resource consumers respectively to the pairs of resources.
展开▼