3
votes

We are having a few issues scaling our two tier website on Azure.

Our goal is to create two websites in different regions (US West, Australia East) and serve up the closest one to the end users.

We are seeing massive differences between the two regions in terms of average requests time and are wondering how we could we reduce this performance impact?

Or,

Has someone implemented this in another way?


Here is what we currently have:
1 x Website in US West
1 x Website in Australia East
1 x SQL Database in US West

We use Traffic Manager which selects the best website/region based on the incoming request's location. Its working extremely well.

Average Request Results:
US West: 150ms
Australia East: 800ms

Our Thoughts:
Because the SQL Database is in a different datacenter/region to the website the latency between the two is increasing the average request.

Please Note:
We know this could be done installing SQL onto VM's and setting up a vnet between the two datacenters, but if possible we would like to keep using the fully managed Azure SQL and Websites.

4

4 Answers

3
votes

The use of a database in a different region from where your website is hosted is not recommended because of additional bandwidth costs and higher latencies.

You can use Geo-Replication to create a read-only secondary in Australia : https://msdn.microsoft.com/en-us/library/azure/dn741339.aspx

If you want to be able to write to both DBs (in West US and Australia) and keep them in sync, the only way to do it as of now is using Data Sync http://azure.microsoft.com/en-gb/documentation/articles/sql-database-get-started-sql-data-sync/.

0
votes

Have you looked at

http://azure.microsoft.com/en-gb/documentation/articles/sql-database-get-started-sql-data-sync/

Another simple approach is to cache data for reads and use a service bus for writes.

0
votes

Depending of application architecture and if its primarily reads that your websites use an active geo-replication setup might be an option. That way your Azure database could be replicated to Australia East asynchronously and your Australia website could use this for lower request times (read only).

In SQL Azure terms your SQL Azure DB in Australia would be an "Online secondary".

More info here

0
votes

Take a look at this Tech talk - Azure Web Sites: Architecting Massive-Scale Ready-For-Business Web Apps

If you can make split the writes to go to one region but reads to the closest region and have a SQL Read only secondary database would help you reduce the latency