In this final "Azure Lessons Learned" post I chat with Jim Vitek, Director of Ecommerce for Domino’s Pizza. Domino’s is one of the largest ecommerce site out there. In 2009, Domino’s hit over 20 Million online transactions. That is one heck of a lot of pizza! As you can imagine Domino’s uses a ton of interesting technology in order to be able to scale to those kinds of levels.
Availability is a critical requirement here as they only have a small window to take a order. When a Domino’s customer is hungry and ready to place the order you had better be ready to take that order. If the site is not available they’ll go elsewhere and that order is lost.
As Jim states, Domino’s is a business of peaks. They have rushes every day (dinner). they have peak days of the week (Fridays) and they have peak days of the year (e.g. Super Bowl). Within about an hour on that one day of the year (i.e. Super Bowl Sunday) Domino’s has a peak that’s about 50% higher than any other day of the year.
If you think that through, you’ll realize that, although Domino’s has to provision capacity to be able to handle the very highest peak in traffic, a huge percentage of the time much of Domino’s computing infrastructure is running idle.
Clearly there is a huge benefit to optimizing computing capacity while being able handle peak demand and innovate on new products and capabilities. Domino’s is looking to Windows Azure to help them with that as they port their ecommerce solution.
Jim walked me through the Domino’s Build your Own Pizza app. It’s interesting to note it was running on Tomcat and written in Java all hosted in Windows Azure. That’s a clear testament that Windows Azure is as interoperable as Windows Server.
Jim’s main concern when building out this solution was that they remain portable. They expect to be able to run the same code in their own data centers or Windows Azure. Windows Azure allowed them to use the Java skills, tooling and infrastructure they were using in their own data center.
Domino’s menus, product availability and pricing of their pizzas is done locally based on the neighborhood of the store you’re ordering from. As a result when you build a pizza online it has to query the local store to provide you with the correct price you’ll pay before you order. They use Service Bus (now known as AppFabric) to get the orders to the stores and pricing back from the store. Eventually that will also provide the information required for their Pizza Tracker app.