Tom
Tom

Reputation: 1071

Architecting Azure application serving multiple continents

I'm looking to build a web application for case management which will be used by users globally.

I need to ensure the application performs well for all users regardless of region, but for now let's say the focus is USA, Western Europe and Australia.

Team members will use this application to create and collaborate on cases. For example the USA users will create cases in the system which Australia and Europe will view, edit etc in real time.

Where can I start in terms of architecting this for best performance?

Upvotes: 1

Views: 126

Answers (1)

JamesKn
JamesKn

Reputation: 1045

There are couple of strategies and it depends on your data size and needs:

1) Sharding your customer basis on zones so that different customers exist talk to different databases and compute. This is generally done by custom sharding so you have a box that will push people off to the right location or by url.. i.e usa.blah.com or europe.blah.com . This can get complex but you can obviously manage your back-end system to say. X customer information should be Y database so write there on the back-end.

2) The other way is you can use a traffic manager to push your user to different computes based on there location.

https://azure.microsoft.com/en-us/documentation/articles/traffic-manager-overview/

Then you can data sync database across zones on 5 min schedule, Then for example you have a main read/write say for example in the USA East and you push Read only copies out to the local datacenters.

3) If you don't have such a heavy database setup and you can cache alot of the information on the compute side then use traffic manager and have a single central database.

Two things though will give you the best performance, using local datacenters to customer will reduce latency and the other major one is caching as much data as possible on the compute side so that you are reducing database calls.

You really need to basically try different setups in a small compute environment and see what works best for your application.

Upvotes: 1

Related Questions