Winning prizes is fun but for those of you Web developers out there, you might be curious be about what makes this site tick. This site is built with PHP and takes advantage of Windows Azure scalability. It means that when spikes of traffic happen, it automatically scales out by extending the number of “instances”. Check out the following resources to learn how we designed this site and get started developing your own site:

The “Deal of the Day” PHP Sample is comprised of several pieces which fit together to create the overall experience (See diagram above).

  • Storage –responsible for containing all business data (product information & images, comments) and monitoring data (diagnostic information). All data is stored in Windows Azure Tables, Queues, and Blobs.
  • Web Roles – Point of interaction of the application with visitors. Number of active Web Roles varies depending on the load. They are all the same, running the core of the applications logic, producing the user interface (HTML) and handling user inputs. All Web Roles share the storage elements described above.
  • Worker Roles – Worker roles sit in the background processing events, managing data, and provide load balancing for scale out. The diagram shows two Worker Roles, one for managing the applications “scalability” (adding/removing Web roles) and one for asynchronously processing some of the applications tasks in the background (another way to achieve scalability)
  • Content Delivery Network (CDN) – Global content distribution that provides fast content delivery based on visitor location.

You can take a look at the status page to get a few stats about the application.
Each of these parts is essential to the performance and scalability of the “Deal of the Day” and to learn more, check out the Introduction to the “Deal of the Day” – A  PHP scaling sample application