Azure Front Door for geographic availability

Written on February 11, 2019

Azure Front Door is a new service that provides

Scalable and secure entry point for fast delivery of your global applications

SSL offload, global load balancing, WAF, DDOS protection and more! As we are seeing an explosion in distributed applications, it’s a great option to be able to put this all together under a single namespace and provide a global solution.

I was putting together a Blazor demo that needed Azure Functions for the API layer and storage for static hosting and file uploads. This was a good opportunity to test things out.

Pro tip: first you need the updated CLI bits

az extension add --name front-door

Use this deployment script the create the service, backend pools and rules

Awesome so now I have three services sitting behind Front Door to provide availability, better performance and simple entry point for the application components.

I can cache some of my API calls at the edge now which is great, but I really wanted to see what impact this would have on the performance of uploads.

So I built a simple .NET Core app that would upload a random file to blob using a SAS token, this app doesn’t use the Azure Blob SDK, as I found out that Front Door is removing some of the required headers so the uploads fail, more info here.

I built a Ubuntu VM in Azure Central US and got the .NET Core app running, I also created an Azure CDN Standard profile and connected this to the actual storage accounts to test three different scenarios:

  1. Upload direct to Azure Storage
  2. Upload via CDN to Azure Storage
  3. Upload via Front Door to Azure Storage

The server was in Central US and the storage account was in Australia East, although I am still “within” Azure it was still a good test with distance in between.

  • Direct = 14.05
  • CDN = 8.13 (73% improvement)
  • Front Door = 1.96 (717% improvement over Direct and 415% over CDN)

WOW! Results really speak for themselves!

Written on February 11, 2019