1
votes

I have a client who would like their website served via a HA infrastructure spread across both AWS and Azure (for their own reasons). My understanding is that this is not possible - you pick either AWS and Azure, then have your load balancer sit in either stack and autoscale (using, for example, Elastic Load Balancing across EC2 instances in AWS).

Is my understanding wrong? Is this indeed possible? Thanks in advance.

2
Is this intended to mitigate against the loss of a single cloud provider?Rodrigo M
This is an extremely deep architectural problem that has solutions, but it depends on the nature of the app, what the definition of "available" is and so on and so forthCtrlDot
@RodrigoM: I don't believe so, more around a proof-of-concept providing a hybrid cloud solution.tatlar

2 Answers

2
votes

Use DNS load balancing, which is basically Round robin DNS.

DNS load balancing is the practice of configuring a domain in the Domain Name System (DNS) such that client requests to the domain are distributed across a group of server machines. A domain can correspond to a website, a mail system, a print server, or another service that is made accessible via the Internet.

In your case, the group of servers are spread across cloud providers. Lots of caveats and challenges, but it is possible.

See also Best way to load balancing between AWS and Rackspace. Similar use case.

1
votes

There's more to hybrid cloud solutions than just load balancing between services hosted in both clouds.

If you need authentication, you'll need to have an identity provider. Which one do you chose and where does it run? Security protocols in both platforms are not compatible AFAIK.

Where do you store your data and how do you keep it in sync? If you use SQL Server, you could use AlwaysOn between instances running in both clouds. But for other forms of data storage, you're probably on your own.

What about referential data like encryption keys or secrets (like connection strings)? Are you going to provision two stores for those? You'll need to set up access control for both stores.

Your services or devops team will need to maintain your product on two different platforms, significantly increasing the costs and know-how required.

While nothing is impossible, I would make sure your client is prepared to bear the costs of development for this very ambitious project.