1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a scheduler mechanism residing in the memory and executed by the at least one processor that places a plurality of virtual machines in a plurality of groups on a physical host computer system based on a plurality of collocation rules, wherein the scheduler mechanism is part of a management layer of a cloud computing environment; wherein the plurality of collocation rules comprise a rule for each group of the plurality groups chosen from one of the following: affinity rule, and anti-affinity rule; wherein the plurality of collocation rules further comprise a plurality of situational enforcement policies for each group of the plurality groups, wherein the plurality of situational enforcement policies include a situational enforcement policy for each of a plurality of situations and wherein the plurality of situational enforcement policies indicate how to enforce placement of the plurality of virtual machines in the group depending on the plurality of situations, wherein each of the plurality of situational enforcement polices indicates a hard policy enforcement or a soft policy enforcement for a corresponding situation, wherein the plurality of situations for the situational enforcement policies comprise the following: live migration, cold migration, rebuild, and evacuation; and wherein a system administrator is allowed to select a situational enforcement policy type chosen from: hard policy enforcement that indicates to strictly enforce the collocation rule, and soft policy enforcement that indicates strict enforcement of the collocation rule is not required.