1. A method for consolidating a plurality of applications into one or more servers, the method comprising: organizing consolidation constraints in a computer process, the consolidation constraints representing preferences about placing applications into the one or more servers; and allocating the applications into the one or more servers in a computer process that maximally satisfies the consolidation constraints.