How Microsoft Tracks Santa

Premier Developer

Premier

In this post, App Dev Manager Casey Kriutzfield shed some light on the NORAD Tracks Santa Azure architecture allowing for some impressive page view metrics.

I’m Casey Kriutzfield. One of the leads for NORAD Tracks Santa. For the past several years, we’ve been a key partner in the NORAD Tracks Santa website. Along with development, we coordinate support and hosting as well. Naturally, a site like NORAD Tracks Santa is best hosted in the cloud, and there is no better cloud than Azure. For most of the year we run a static website, but come December 1st, we change over to the full site. Changing over isn’t all that interesting, but once we go live, users can navigate the interactive animated site, and play the first game that was available in the “Advent Calendar” of games. Every day, another game would become available until the 24th, when all the games would become available to play.

Also, on the 24th is when the real excitement happens, and Santa begins his journey to deliver presents all over the world and for NORAD and its volunteers in Colorado Springs, it means assembling at 3 a.m. to prepare for a long day of calls from kids (and adults!) asking where Santa is. I hear it’s fun and festive.

Generally, for us in app development, it means waking up and checking the site. 6 a.m. EST is when the site begins tracking Santa, and we want to make sure everything looks good and we are tracking successfully. Not that we’ve had problems in the past, its just I’d much rather see for myself everything is running well.

This past Christmas, like any other year, the site looks like it’s working well, and Santa is off to deliver his first present, in Novoye Chaplino, Russia.

Now while Novoye Chaplino may be routine for Santa, the underlying infrastructure that hosts the tracking website was different for this past Christmas.

We decided to move the entire infrastructure into Static Websites. Static Websites are generally new, and an important part of Azure. You can read more about it here: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website. So, you can deduce that NORAD Tracks Santa is mostly JavaScript based, and that makes it perfect for static websites. For the parts we do need in server-side code, we use Azure Functions. Two different API’s run in 6 different Azure data centers across the globe, at times scaling to 20 servers.

To ensure that the site hosted in static websites was available across the globe we utilized Verizon’s premium CDN service (https://docs.microsoft.com/en-us/azure/cdn/cdn-features). The primary reason for using Verizon’s premium CDN service was for the URL redirect/rewrite using rules engine.

When it was all done, Santa ended in Midway Atoll island and delivered over 7 billion presents. 7,281,439,471 to be exact. This is all tracked in real time on the website, as well as the location of Santa at any given moment thanks to NORAD.

This cloud infrastructure has allowed is to run the Santa Tracker globally with:

  • 825 Million hits in 1 hour with 17ms avg response time (9 pm Christmas Eve EST)
  • Over 3 Billion hits between Christmas Eve and Christmas Day (~20ms avg response time)
  • 10.4 Million API requests in 1 hour with 3.42ms avg response time (9pm Christmas Eve EST)
  • Over 43.9 Million API requests between Christmas Eve and Christmas Day (~3ms avg response time).
  • 2 Million unique users.

These are absolutely fantastic numbers and any organization that wants to put their website into static websites and take advantage of things like the CDN an Azure Functions will have an absolutely amazing time with performance for many single page applications. Plus, just like anything in the cloud, it’s a push of a button to deploy into static websites and another push of a button to remove things from static websites so the barrier to entry is very low.

 

Premier Developer
Premier Developer

Premier Support for Developers

Follow Premier   

1 Comments
Avatar
Leonard Woody 2019-05-29 14:15:57
Nice post!  Good numbers proving Azure works under the hardest of conditions!