I want to use app engine but unfortunately they are not supporting with their DB spatial queries, so I was wondering if there is a way to create my DB on one cloud either AWS or Azure and my backend on app engine

if it is possible:

  1. what is the best practice for doing so?
  2. what will be the performance implications?
  3. is it better to have my entire solution on one cloud?

can two cloud infrastructures connect

Assuming your definition of "connect" is that the two clouds can route IP traffic between each other, then in the vast majority of circumstances, the answer is: yes, of course.

Mere IP connectivity, though, does not a stable infrastructure make.

what is the best practice for doing so?

What's the "best practice" for building a car? How about for writing a book? Tough questions, aren't they?

"Best Practice" isn't really applicable here, as there are million ways in which multi-cloud, distributed deployments could be architected. In a nutshell, it completely depends on your specific application.

what will be the performance implications?

Well, database query performance is going to be horrible.

is it better to have my entire solution on one cloud?

Again, this is completely subjective. Depends on your needs and your application architecture.

Generally speaking (due to performance impacts of splitting your application and db layers between providers), people will choose one single provider to host the application - one that will provide the best functionality match to the application requirements.

You probably ought to list out all of your requirements and then evaluate several different providers.


I see a few things to think about when splitting an app across multiple clouds (or between cloud and on-premises):

  • Latency. If your services requires predictable (and low) latency, you may find that these types of services should be co-located. Once you leave one cloud provider's network, you're going to route through the public Internet to the other cloud (or on-prem facility). This latency may be more than your app can tolerate.
  • Bandwidth costs. With Azure and AWS, for example, you have free inbound data, but pay for egress. You'll probably see fairly affordable costs in one direction (e.g. database requests) and larger bandwidth costs in the other (data payloads).
  • Maintenance. Each cloud provider has its own model and API for app/VM/database maintenance. Your devops environment will need to account for this. Same for backup approaches.
  • Security. Just like connecting with on-premises resources, you'll need to think about the connectivity between clouds (can you create a secure tunnel or use SSL?) and access control (can you protect backend service endpoints such as database & cache?).
  • High Availability / Disaster Recovery. Each cloud provider will offer specific options for HA & DR for its services (and yours). You'll need to carefully consider each.

I'm sure there are other things to consider - hopefully this list helps out.

Bottom line: Hybrid architectures (cloud <--> on-prem, cloud <-->cloud) exist today, and your specific requirements will help you determine whether this will work for you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.