1. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to: facilitate design of a virtual data center and a distributed application; logically place parts of the distributed application onto the virtual data center; and determine whether the placement of the parts of the distributed application is valid.