PDC2008 – Building Live Meeting on Windows Azure
Michael Conrad speaks.
Live Meeting is enterprise class web conferencing solution for online meetings training and events. Supports real time communication with a few to thousands attendees.
LiveMeeting architecture
- Custom infrastructure : Identity, User Management, Purchasing and trial, billing, business intelligence, deployment, monitoring, storage…
- High level services :meeting manager, conference server, content front end, MCU FE, audio video server, media relay
Purpose : replace the Live Meeting custom infrastructure by Windows Azure and benefit from its capabilities (automation, scale…)
Demo : prototype of functionalities running. Demo a live meeting session with colleagues in Redmond.
Prototype Architecture
3 separate areas
- Web tier : typical
- Real time tier : maintain connections
- Middle tier : maintain connections
Focus maintains a persistent connection. Focus has a persistent connection to a front end server
Deployment
Before, deploying a patch for Live Meeting, it took us a week before.
80 machines dedicated in Windows Azure get updated instantly.
Windows Azure Compute
Problems encountered today :
- Live Meeting has peek usage (100 meetings to several thousands) => we over provisioned to meet future growth. With azure, we do not need to pay for it, just in time provisioning
- Failures require manual intervention
Demo : Dashboard built from the Windows Fabrik client API
Windows Azure Storage
We started with a traditional normalized schema like the current one. Then we denormalized it. Queries work well for our scenarios, and better for distributed storage at scale.
The Windows Azure table is organized with partitioning key and row keys, as well as primary keys. But we also define RowGroup.
Windows Azure supports sparse tables (does not use additional space).
FAQ
Q : I understand you built custom Worker and Web roles. Any other roles ? A : Yes, we used a custom role with TCP and Streaming capabilities.
Q : STS ? Anything related to .Net Services or a specific implementation. A : specific at the moment, will turn to .Net Services in a longer term.
Q : The architecture model you demonstrated, do you have a DSL to handle it there ? A : yes this is part of internal tooling.