1. A distributed computing platform providing at least partially automated deployment, operation, and maintenance of a cloud based application, the platform comprising: a plurality of Internet addressable physical nodes, the physical nodes including one or more stationary servers or virtual servers, wherein at least some of the physical nodes are instantiated across a plurality of cloud service provider facilities; a plurality of message queues and associated services hosted by the physical nodes; a policy system including policies defining a system topology of physical nodes, message queues, and services, including at least geographical or logical constraints on locations of physical nodes, message queues, and services; a provisioning system that is configured to create the physical nodes on the plurality of cloud service provider facilities to form an instantiation of the system topology as defined by one or more of the policies, and is further configured to change an existing system topology in accordance with one or more of the policies, wherein the changing is effected by one or more of modifying one or more associations between physical nodes, message queues, and services, creation or deletion of physical nodes, message queues, and services, and relocation of physical nodes within one of the cloud service provider facilities or from one cloud service provider facility to another cloud service provider facility.