Published: September 2010
The Video Showcase site on Microsoft.com hosts thousands of videos and other rich media content that hundreds of thousands of customers worldwide view every day. Learn how Microsoft Information Technology (MSIT) quickly built and deployed the Social eXperience Platform (SXP) on the Windows Azure™ technology platform to enable social media capabilities across Microsoft.com.
| Download | Intended Audience | Products & Technologies |
|---|---|---|
| | Technical decision makers and business decision makers |
|
Microsoft has adopted a "we’re all in" strategy for thecloud. As part of this strategy, MSIT is migrating Microsoft.com to the cloudvia Windows Azure. SXP is one of the first technologies that MSIT has built anddeployed in the cloud by using Windows Azure. This article focuses on thedecisions that the SXP team made when creating the Windows Azure-based service.The article discusses the many advantages that Windows Azure provides and alsodiscusses lessons learned.
The VideoShowcase site on Microsoft.com hosts more than 8000 videos that assistMicrosoft customers in their search for information about products andservices. The marketing agencies that Microsoft works with use the site as avideo repository. The typical video is four to five minutes long. Customersview and learn from the video content and can comment on, rate, and sharevideos with their friends and colleagues on other social media channels andsites. The goal is to match customer intent with Video Showcase content and tocreate a sense of community and interest in Microsoft products.
The user experience for the site was developed withMicrosoft® Silverlight® technology. The Video Showcase site previously used athird-party on-premises solution to manage comments and ratings, to filter outprofanity and spam, and to do site moderation. This solution used blogs andblog posts to enable comments. Although the solution worked, it was hard to understandand explain. Maintenance costs were high and there were also issues related to upgrades,scalability, performance, and availability. Also, the business intelligence (BI)and information related to ratings and comments were either difficult to accessor not available at all. For these reasons, MSIT developed SXP, which isessentially a platform as a service (PaaS).
To learn more about the Video Showcase site, visit http://www.microsoft.com/showcase/en/US/default.aspx.
SXP is a multi-tenant Web service that enables socialmedia capabilities across Microsoft.com. SXP’s first tenant is the VideoShowcase site. Customers can use the SXP Windows Azure-based service to managecomments and ratings, and to filter out profanity and spam. SXP provides theability to comment on or rate anything, including Web pages, news stories,videos, blog posts, and so on. As long as a unique ID can be assigned, userscan comment on or rate the item. The SXP team manages comments and filters viathe SXP Moderation Tool (built with Silverlight), which is also available via WindowsAzure.
SXP also provides a Really Simple Syndication (RSS) feedaggregation, grooming, and publication service to all Microsoft.com sites. Thisservice enables marketing site managers to easily manage and subscribe torelevant content across both desktop computers and mobile devices.
The SXP service is a back-end service for comments andratings; it is not the front-end Web server. The service does not host thevideos (they are hosted on MSN® Video Web Services) and does not host the HTMLthat users see on the screen.
The SXP solution takes advantage of the best of bothon-premises and cloud-based technologies. SXP runs on Windows Azure and the SQLAzure™ Database, but the Video Showcase Web servers are standard Microsoft.comservers running in Microsoft’s internal data center. This combination of technologiesenabled the SXP team to quickly create a solution with a high level ofinteroperability that adheres to the security and governance requirements thatare typical of a large enterprise.
Figure 1 shows the SXP architecture.
SXP Web Services. The bulk of the work occurs inthe SXP Web Services—a Representational State Transfer Service (REST) runningon the Microsoft Visual Studio® 2010 development system and Microsoft .NET 3.5.SXP Web Services is a single Web role that runs on three medium instances. The SXPteam chose three instances to provide the high availability and scalabilitynecessary for an enterprise Web site the size of Microsoft.com. The servicecurrently runs at about 5 percent utilization, so it has a lot more capacitythan it needs. As the service brings on more partners, the team expectsutilization to increase. Windows Azure provides nearly unlimited scalabilityfor future growth.
The service is multi-tenant, allowing any sub site onMicrosoft.com to use the social capabilities of SXP. The SXP team accomplishesmulti-tenancy by creating a separate SQL Azure database for each tenant tostore comments and ratings. The team chose this approach to take advantage ofthe separation that multiple databases provide. Using multiple databases can alsohelp with availability—the team has never had two databases become unavailableat the same time. Multiple databases also offer a small degree of customizationacross tenants.
In contrast to having one database per tenant, log andconfiguration data are shared per instance.
SXP Monitor. The SXPMonitor is a small application that the team built. The SXP Monitor runs in thesame data center as the Web service, so there is no network in the way. The SXPMonitor runs on a single Web role that runs a single instance.
The SXP Monitor:
Windows Azure Storage. The service uses Windows AzureStorage just for diagnostics and log information.
SCOMConnector .The SCOM Connector providesalerting and notification via Microsoft System Center Operations Manager. Theservice currently uses custom code to integrate the SCOM Connector, but the SXPteam is also running the release candidate version of the Windows Azure SystemCenter Management Pack in side-by-side deployment and plans to migrate to the managementpack as soon as it is available. The service gets about 200,000 log entries perday.
Keynote. In addition to the monitoring done through theSXP Monitor, the team monitors through the third-party Keynote product. Keynotepings the Web service from 23 different locales around the world, providinguptime information from an end-user perspective.
Moderation Tool. The ModerationTool manages comments and filters. The Moderation Tool is authenticated by ActiveDirectory® Federation Services (AD FS), which allows extending ActiveDirectory Domain Services (AD DS) authentication into the cloud.
The servicewent live in April 2010. After 120 days of operation, the SXP team comparedresults with the previous third-party solution for the same calendar quarter. Table1 summarizes the before and after statistics.
Table 1. Comparison of third-party solution to SXPsolution over a 120-day period
| Focus area | Before | After |
| Availability | 99.1 percent | 99.98 percent |
| IT support costs | $15,000 per month | $1,050 per month (standard customer-facing pricing) |
| Planned downtime | 2 to 4 hours | 0 hours |
| Hardware provisioning time | 2 to 3 weeks for virtual machines; 5 to 6 weeks for physical servers | 30 minutes for server environment provisioning |
Availability. Thetable shows that migrating from the third-party product to SXP and WindowsAzure dramatically increased service availability. Availability is measured atthe transaction level. On most days, the service is available 100 percent ofthe time. In the month of July 2010, the service was available 99.999 percentof the time. In fact, Windows Azure running in the South Central data centerhas a similar availability profile to the Microsoft.com data center in EasternWashington. This means that for a fraction of the cost, developers cancomfortably deploy a Windows Azure application and get about the sameavailability worldwide as the Microsoft.com data center. The SXP team expectsthat the availability gains that Windows Azure makes possible will reducedowntime by more than 48 hours over a one-year period.
IT Support Costs. WindowsAzure makes possible the idea of "utility computing." With utility computing, businessescan take advantage of toll-based hardware. This is in contrast to on-premises(purchased) hardware or hosted (leased) hardware. For the SXP service, utilitycomputing results in monthly savings of almost $14,000 compared to the previoussolution. For the month of July 2010, the service delivered 2.4 milliontransactions at a cost of $0.0000965 per transaction, amounting to a total costof $1,050 for the entire month (standard Windows Azure pricing). It isimportant to keep in mind, however, that the SXP service is running at only 5percent utilization. For the $1,050 that the team pays per month for theproduction Windows Azure data center, SXP could support 10 times the currentload.
Planned Downtime.With Windows Azure, service releases are literally push-button activities withzero planned downtime. The SXP team uses the Virtual IP (VIP) Swap feature onthe Windows Azure Portal to promote its staging environment to a productionenvironment. The team has upgraded the service four times by using this featureand has not missed a single transaction. Having such smooth upgrades savesmoney because the team does not have to duplicate its entire environment.
Hardware Provisioning Time.By using Windows Azure, MSIT has reduced the time it takes to order, set up,and repurpose hardware from weeks to minutes. With the new solution, provisioningthe servers takes less than 30 minutes because there is no need to get budgetapproval, order hardware, and rack, stack, and configure the servers.
The SXP team wanted to be able to determine the value ofthe SXP service on the Video Showcase site. The team wanted to know how manycustomers it was reaching, the engagement level, and the satisfaction level. Table2 shows the business key performance indicators (KPIs) for the period fromproduct launch through May 2010.
Table 2. KPIs from product launch through May 2010
| Reach | Engagement | Satisfaction | Value (of SXP) |
| 22 million unique visitors (up 11 percent in May) | 1.4 million videos viewed (up 3 percent in May) | 133 net satisfaction (NSAT) rating (up 4 percent from fiscal year 2009) | 3,198 videos with ratings (up 17 percent in May) |
| 51 million page views (up 11 percent in May) | 4:49 minutes per visit (flat in May) |
| 1,305 videos with comments (up 166 percent in May) |
The table shows that number of video views is not large, butthe time spent on each video is significant, because customers are beingengaged for that amount of time. The SXP team measures NSAT by doing surveysafter the fact. The SXP platform enables the team to pull all of this BI dataout in real time and examine the data in Excel. With the previous solution, theteam did not have access to all of this data. This whole set of BI data can bereplicated as the SXP team migrates the service to other sites.
The SXP team also noted the following additional advantagesprovided by Windows Azure.
Windows Azure supports open standards and makes use offamiliar tools like Visual Studio and the System Center products. This enabledthe SXP team to quickly design, develop, and deploy a highly interoperable RESTservice that has the performance and on-demand scale that Microsoft.comrequires.
Although there are some important differences to keep inmind when designing, developing, and deploying with Windows Azure (particularlyif the project requires porting a large code base), to a developer, Windows Azureis basically just Internet Information Services (IIS) plus SQL Server. BecauseWindows Azure is so prescriptive, many of the architectural decisions havealready been made. This may not be appropriate for every software solution, butit worked very well for the SXP team.
Because Windows Azure packages and deploys the entiresolution in a consistent environment, it prevents time-consuming bugsintroduced by configuration errors and differences.As the team moved from development to testing, to pre-production, andthen to production, and as it brought in new personnel, it did not experiencesome of the normal configuration issues associated with Web development.
For previous projects, the testing team spent a lot oftime resolving configuration-related bugs. With the SXP project, everydeployment that passed the smoke test worked. There is a trade-off for thisconsistency, because developers cannot just update the Web.config file whenre-deploying software. For the SXP team, this tradeoff was worthwhile, but itis an important consideration to keep in mind.
The solution delivers virtually unlimited scalability andsignificantly increased availability at a lower cost when compared to theon-premises solution. The SXP team caches the configuration data, but foreverything else, the team goes back to the database. As the load increases, theteam sees great response times. Even when the service experiences three timesthe normal traffic load, the average response time is still well within theteam’s service level agreements (SLAs), and the team has not seen any hung requests.
SXP team members reside in Austin, Redmond, and Hyderabad,and the data center is in the United States. Performance is excellent in Austinand Redmond and is good in Hyderabad. In future releases, the team will takeadvantage of the Windows Azure data centers in Asia, which will improveperformance there.
The SXP team found that it is very fast, easy, and inexpensiveto create unique environments (development, test, integration, pre-production) byusing Windows Azure. When the team is finished with an environment, it can let itgo. When the team wants the environment back again, it can do so very quickly.This reduces the cycle time for ramping up and ramping down.
The SXP team also found that Windows Azure makes it easyto create multiple proof-of-concept environments that greatly improve userfeedback. The team created several demos for business partners. The teamreceived much better feedback from the demos than from the functional specifications.
For teams that are spread throughout the globe,traditional solutions require remote access from one location or another.Windows Azure lends itself to global development. A team can deploy anenvironment in its own area. For the SXP project, the development team resides inthe United States and India. The testing team resides in India.
Windows Azure provides an application programminginterface (API) and scripts that fully automate deployment, which reduces humanerror during the deployment process. Due to the standardization on WindowsAzure, the SXP team was able to test its production deployment processes andscripts throughout the software development life cycle. This greatly reducedthe last-minute issues often encountered in production deployment.
Writing code for Windows Azure is very familiar fordevelopers accustomed to working with Visual Studio and Microsoft .NET, butthere are also some important differences to keep in mind. The SXP team notedthe following lessons learned:
The cloud and Windows Azure are evolving quickly. Newscripts and tools are available for developers every day. To stay abreast ofchanges and find more information, visit the Windows Azure Portal at http://www.microsoft.com/windowsazure/and the Windows Azure Community site at http://www.microsoft.com/windowsazure/community/.
The SXP team at Microsoft.com created a multi-tenant WindowsAzure-based Web service that enables social media capabilities acrossMicrosoft.com. The Video Showcase site at Microsoft.com is the first tenant forthe SXP service. Customers can use the SXP service to manage comments andratings and to filter out profanity and spam. Customers can also use theservice as an RSS feed aggregation, grooming, and publication service. The SXPteam used familiar development tools to quickly create a solution based onWindows Azure that has extremely high availability, scalability, andperformance. The new solution also offers significant cost savings for MSIT.
For more information about Microsoft products orservices, call the Microsoft Sales Information Center at (800) 426-9400. InCanada, call the Microsoft Canada Order Centre at (800) 933-4750. Outside the50 United States and Canada, please contact your local Microsoft subsidiary. Toaccess information via the World Wide Web, go to:
http://www.microsoft.com/technet/itshowcase
This document is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Microsoft, ActiveDirectory, Excel, MSN, Silverlight, SQL Azure, SQL Server, Visual Studio, and WindowsAzure are either registered trademarks or trademarks of Microsoft Corporationin the United States and/or other countries. The names of actual companies andproducts mentioned herein may be the trademarks of their respective owners.