1. A computer-implemented method for routing application data, comprising: under the control of one or more computer systems configured with executable instructions, receive data addressed to a second application, the data being received from a first application overlay entity routing the data from a first application deployed to the one or more computer systems; determine whether the second application is deployed to the one or more computer systems or a second computer system; and process the data in accordance with the determining, the processing including: on a condition that the one or more computer systems and the second computer system are the same: cause the data to be sent to a proxy entity associated with the second application, the proxy entity being configured to route the data to the second application; and on a condition that the one or more computer systems and the second computer system are different: cause the data to be encrypted to produce an encrypted data; and performing address translation for the encrypted data, the performing including causing the encrypted data to associated with a source address that is a network address of the one or more computer systems and a destination address that is a network address of the second computer system; and route the encrypted data, over a network, to the second application.