1. A computer-implemented method for planning placement of virtual machines VMs in a computing environment comprising a set of hosting machines HMs, said method comprising: providing, at a computing device, a current placement function cp(v) representing a current placement of each virtual machine VM v in one hosting machines HM h; defining, at said computer device, a modifiable copy of said current placement function, mcp( ); defining, at a computing device, a target placement function tp(v) representing a target placement of the virtual machines VMs in said HMs, one or more said VMs and HMs having a set of policies and resource constraints associated therewith; and, constructing, at said computer device, a graph comprising VM v nodes interconnecting HM h nodes via edges for modeling a current and target deployment states of said VMs; iterating over HM and VM nodes of said graph and gradually modifying said mcp( ) placement function to resemble the target placement function; and generating, from said iterating, an ordered sequence of VM placement change instructions comprising a plan for changing the current placement of said virtual machines VM v according to said target placement function tp(v) without violating said associated set of policies and resource constraints, after the completion of each iteration; and, generating, for output at said computing device, said plan for placing said virtual machines VM v at said host machines HM.