Categories
Software Development

First-hand Lessons in Latency

Internet infrastructure in downtown Bangkok

Recently I was on-site at an office in Bangkok, Thailand to help on-board a client’s client onto a SAAS application hosted in a Microsoft Azure data center in the US. The application (Angular) was very slow to load the home page, but behaved normally after the initial delay. We quickly realized we had latency issues. I wasn’t surprised that we had issues but I was surprised at the magnitude of them.

It’s a large Angular application. The main JavaScript file is 6.8 MB. It was taking about a minute to download that file to each computer. As a quick test, we set up a replica in Azure’s Southeast Asia region (Singapore) and the download time was under 4 seconds. (Thanks to the magic of cloud computing – this only took about two hours.)

We had tested the application from a virtual machine in the Azure Southeast Asia region, but that wasn’t a good test (since computers inside the Azure data center have very fast Internet speeds). Seeing the actual difference in download times in a “real-world scenario” was enlightening.

Download comparison times

Client locationWeb server locationDownload time (in seconds) for 6.8 MB file
Bangkok officeUS (Azure US East)59.11
Bangkok officeSingapore (Azure Southeast Asia)3.62
VM in Singapore (Azure Southeast Asia)US (Azure US East)2.76
Birmingham, AL officeUS (Azure US East)4.84

If you have a web application that’s going to be used around the world, you need to take advantage of the global cloud. You definitely need to consider using Content Delivery Networks (CDNs) to replicate your static content around the world. Depending on your application’s architecture, you might need to have web servers spread in Azure or AWS data centers around the world.

If you have questions or would like help with this, please reach out to us.

Leave a Reply

Your email address will not be published.