NBC and Microsoft recently publicized they are streaming every event of the 2014 Winter Olympics to any iOS, Android, Windows device using Windows Azure Media Services. What is Windows Azure Media Services (WAMS) and how does it work?
WAMS is a cloud optimized edition of the Microsoft Media Platform (MMP) which handles a variety of tasks such as format conversion, media encryption, analytics with on-demand and live streaming capabilities. Microsoft Media Platform is traditionally confined to a server farm but by leveraging Windows Azure WAMS has nearly limitless compute and streaming capabilities.
When considering infrastructure it is important to consider which configuration we will be using. There are two options to consider Infrastructure as a Service and Platform as a Service.
- Infrastructure as a Service (IaaS). Using this method we must setup and configure virtual machines (VM) to connect to our WAMS setup. To utilize IaaS auto-scaling we must create additional VM’s to handle requests when demand is high. This means we must forecast an approximate number of active streaming requests, create the right amount of VM’s to handle the requests and turn on the auto-scale feature to utilize the dormant, yet pre-configured VM’s.
- Platform as a Service (PaaS). Using PaaS there is no extensive VM configuration. After deploying your cloud service and configuring IIS once you can now depend on Azure to auto-scale your cloud service automatically without having to configure additional VM’s for a “just incase” scenario. There will be no need to forecast the number of concurrent requests at any given time. As long as IIS is setup to provide on-demand and live streaming media correctly once then it is setup for your cloud application no matter how great the demand. Essentially by giving up some control in configuration we can save a lot of work. This is the method most likely being utilized to deliver the Olympics.
The IT Leader's Guide to Multicloud Readiness
This guide provides practical key insights and important factors to consider to make informed decisions in your multicloud journey.
Download the Guide
The setup for live streaming and on-demand will slightly differ in how they are captured and consumed by the public.
- The live streaming setup involves the footage being captured, encoded and then sent to web roles in Azure (typically referred to as an “ingest” server). This can work with a single web role but for redundancy additional web roles can be used. The additional web roles can consume the data as long as they are at a different DNS address. In this situation multiple web roles are probably used for world wide redundancy. As the data is being pushed to the cloud content delivery web roles begin to pull the data and push it to the requesting parties.
- On Demand streaming does not require the high speed capture and encoding of live footage but does require an enormous amount of storage capacity. Every event during the Olympics will be available for on demand streaming, which means every even must be captured and stored in Azure blob storage. Every event is being captured in full HD (1920 x 1080 resolution). You can imagine this will amount to a substantial amount of data, probably several terabytes. While the live streaming web roles need to pull the streaming encoded content, the on demand web roles need to the stream the media files. Sending a full HD stream to a device such as a cell phone with limited bandwidth is not the most efficient distribution process so Azure utilizes a technology called Smooth Stream.
Smooth Stream is a dynamic content delivery technology that will adapt the stream that is sent to the requester based on their bandwidth. It is being utilized for both on-demand and live streaming events. In order to deliver content at a consistent frame rate free of lag or pixelation the video is broken up into small fragments. As the fragments are delivered and played, the time it took to play the fragment as well as the playback quality will be sent back to Azure. If the quality or playback time does not meet standards set on the server then the next fragment will be sent at a lower quality and the process will repeat. If bandwidth increases during the next fragment a higher quality version of the next fragment will be sent. As you can imagine this means every Olympic event needs to be stored in full HD and in several tiers of lower quality fragments to deliver content to every type of device over any kind of bandwidth.
The Olympics is no doubt one of the most watched events of the year. By utilizing dozens of Azure data centers capturing, replicating and delivering content all over the world Microsoft is once again showing the power of what can be accomplished using Windows Azure. Microsoft began streaming the Olympics in 2008 and since has quietly become a media streaming powerhouse with the ability to deliver content to millions at a moments notice.