1. A method for virtual machine load balancing, comprising: accessing specification and utilization information for selected networked hardware platforms published on a network, the selected networked hardware platforms configured to run virtual machines; scoring the selected networked hardware platforms based on parameters from the utilization information to indicate resource availability for each of the selected networked hardware platforms; receiving a rule indicating that a first virtual machine and a second virtual machine are prohibited from being collocated on a same networked hardware platform of the selected networked hardware platforms, wherein the rule is based on at least one of consumer rules, provider rules, and industry rules; selecting the first virtual machine for migration from its current networked hardware platform to a target networked hardware platform among the selected network hardware platforms; determining that the second virtual machine is located at a first hardware platform from among the selected networked hardware platforms; and removing the first networked hardware platform from the selected networked hardware platforms based on a collocation policy to produce a set of candidate platforms that are candidates to receive the first virtual machine during migration, wherein the removal is based on the rule indicating the first virtual machine and the second virtual machine are prohibited from being collocated.