Recently we launched a new site for a department within a global organization. At first glance, the site appears to be pretty simple. There is an archive of weekly calls within the department that contain a video, transcript, and a copy of the slides used during the call.
Behind the scenes, however, there is a lot of architecture and processing that can take a lot of effort to configure and implement effectively. Thanks to Microsoft Azure, we were able to implement this solution in a short timeframe. Here’s the breakdown of how Azure has made this possible.
Hosting – Azure App Services
The first piece of the puzzle is hosting the web application itself. This is where Azure App Services comes into play. You can launch a website using App Services within minutes and can scale your web app up and out as needed. With the continuous integration options available, we were able to automatically deploy our changes to our test and live instances whenever changes were detected on the appropriate branches. With a couple of clicks and a small file update, you can add application insights to track client and server statistics and performance with the site.
Document Indexing/Searching – Azure Search
One big need for this project was the ability to search for content within the videos that wasn’t tagged through the products metadata marked during the upload process. However, each “call” contained a transcript of the session and a copy of the PowerPoint document with the slides of the call.
By leveraging Azure Search, we were able to quickly create an indexing job that scanned the container in which these documents were uploaded. The indexed results were readily available through the Azure SDK API and allowed us to search this content, display matching documents based on the strength of the match, and link to the call in which the transcript/deck was associated. Previously, setting up the necessary database tables, code, logic, and endpoints would take weeks. All of this was accomplished in less than a day.
Video Streaming/Navigation – Azure Media Services
While serving a simple MP4 file is nice, we wanted to take the next step and provide additional value to these videos. For starters, these videos were going to be viewed by department members scattered around the globe, so providing a CDN for faster access and better quality was a must. In addition, the DASH video protocol makes it easier to stream videos. Given the fact that these videos are often 30 minutes long, we wanted to create navigation points in the video for a user to jump to a specific location.
Azure Media Services handles all of these things with only a little bit of setup and coding. Once a video is uploaded to the service, we use the Azure SDK API to fire off several jobs: one to encode the media for streaming/navigation, one to index the audio of the call, and another to generate a thumbnail image of the video for the web page. Once this is complete, we have a video that streams quickly, allows the user to navigate to any point in the video timeline we provide links to, and even has closed captioning. This is another feature that often takes months to set up, but was done in a week.
Operating behind the scenes to glue everything together are several other Azure services equally easy to set up and work with:
Azure SQL Database services provide a special SQL Server 2012 instance with automatic backup and cloud access through SQL Server Management Studio for easy data access.
Azure Storage provides a reliable storage mechanism for all of the call assets (videos, transcripts, decks) that is managed separately from the app hosting services so it can scale and perform independently for its own needs.
Azure Media Player is a cross platform media player that plays the video in any web browser and will use the best playback format for the device it is playing on. It was the only player that properly handled the closed captioning files across multiple browsers.
All of this was built using the .Net DNX Core 4.5.1 library with the newest MVC6 and Entity Framework 7 libraries. These technologies provided a quick turnaround time with database migrations, platform configuration targeting, and integration with bootstrap/gulp/bower front-end design tools for an attractive looking and responsive site.
Azure and You
The next time you build out a new web application or service, make sure to give Microsoft Azure a solid look. There are a lot of features that will help you get your app up and running in no time with powerful services to enhance your product!