I’m always on the search for stories of Canadian developers who have either built new applications using Windows Azure services or have migrated existing applications to Windows Azure. The mission: To share how Canadian developers are using Windows Azure to create innovating and unique solutions.
This is one of their stories.
Large Scale, Highly Available Video and Chat Powered By Windows Azure
In this instalment of Canada Does Windows Azure, I sat down with Mark Hale from Toronto-based Ortsbo Inc. (Twitter, Facebook) who have made online history with their large scale, highly available, powered by Windows Azure video and chat platform, Live & Global.
Jonathan: Mark, can you tell us a little about the Ortsbo solution and what it does?
Mark: As internet users become more global in nature, the number of English speaking users is decreasing dramatically. While there are many online translation tools available, all of them require a constant flipping of web pages, cutting, pasting and wasting of valuable time. Ortsbo's primary product (FREE at Ortsbo.com) allows users to connect to any of 12 Instant messaging networks (MSN, GTalk, Facebook, AIM, ICQ, QQ, iChat, Gadu Gadu, LiveJournal, Ovi, Sametime) and Twitter simultaneously. In addition, Ortsbo breaks down the language barrier by allowing you to set your preferred language, and the language of your contacts/buddies. In this way, you will see all incoming instant messages instantly translated into your language, and your contacts (even if they do not use Ortsbo themselves) will see all instant messages (from you) in their native language. All real time, no cutting, no pasting. In addition, Ortsbo allows you to connect to Twitter and view any topic, translating all associated tweets to your language!
Ortsbo also has O4O, a plugin for Microsoft Outlook, offering the same real-time translation feature for your email contacts. Each email will also have an attachment of the original email in the language it was written to assist in confirming technical translations. Further, Ortsbo has a new product called O2O or One 2 One. O2O is a single device solution which allows you to have a conversation with someone standing in front of you (imagine, a foreign restaurant, hospital, or police officer!) You type in your language - tilt the tablet to the other person and the tilt action causes the translation to occur. Lastly, Ortsbo also has an API for third party software manufacturers to include real time translation in their own applications; social gaming is certainly a big target for this technology.
Jonathan: That’s quite the complex solution. When you were designing the Ortsbo platform, what was the rationale behind your decision to use Windows Azure as the platform’s backend?
Mark: Ortsbo has experienced an unprecedented level of viral growth, exceeding our 2 year projections in roughly 6 months. We quickly found our infrastructure lacked the bandwidth required to service the 16 million unique users month over month. We were not experiencing shortfalls in processing power, web services or storage, but it was just a matter of time. The move to Windows Azure allowed us to access virtually unlimited bandwidth, computer power, and scale. This allows us to pay for peak infrastructure only during peak hours! This is a huge savings when compared to traditional infrastructure limitations. Traditionally, one had to evaluate peak demand and build infrastructure to support that peak level (and beyond), even if the peak only occurred for an hour or two a day. With Windows Azure, you simple spin up new instances during your peak hours, and then spin them back down when traffic returns to normal. Only paying for the infrastructure you need is a big selling point for Microsoft Windows Azure.
We did our due diligence and explored other cloud solutions; however it was without question that Windows Azure was the most compatible and flexible platform for our Silverlight and ASP.NET technology. The ability to choose between Windows Azure Tables and SQL Azure was also an important component for us. The features and capabilities of AppFabric and embedded technologies for connecting to MSN, Yahoo and other IM networks is also attractive for us, although we are still using our own custom protocols without issue on the Windows Azure platform. We also found the options for upgrade distribution with zero downtime met our very difficult 100% uptime requirements. Further, the ability to deploy to multiple datacenters, creating complete redundancy in the very unlikely event of a catastrophic failure is outstanding.
Mark: Absolutely. That was our product called Ortsbo LIVE & GLOBAL, a platform which web-casts a chat with celebrities in over 50 languages; as well as accepting questions in those languages. These are generally large events with zero tolerance for downtime. We created complete redundancy on both Chicago and San Antonio datacenters and also had the package on hand, ready to be deployed to a European datacenter in the event aliens from another Galaxy decided to beam Chicago and Texas off the planet! Full redundancy, and the ability to deploy anywhere in the world in roughly 20 minutes is what helped us sleep during the nights leading up to the event. On June 22nd, Live and Global: Showdown in Chinatown - New York City - with STEVE NASH employed the same technology and the same fault tolerance protocols. We simply spun up X instances, monitored traffic, and spun up more as was required based on demand.
Jonathan: During that live chat, Ortsbo established a Guinness World Record for the most nationalities in an online chat when users from 92 countries logged on to live webcast with KISS, which was streamed from the Beverly Hills Hotel in Beverly Hills, CA. You can watch the announcement in this YouTube video, as well as an interview with Paul Stanley about Ortsbo. Really cool stuff. What Windows Azure services support a platform like Live & Global? How are you using those services in unique ways?
Mark: We use Windows Azure Hosted Web Roles, Azure Tables, SQL Azure and AppFabric. Allowing users to connect to 12 instant message/social media networks and Twitter at the same time, and allowing conversations in over 50 languages across 13 networks is pretty interesting and unique in itself. Having those services deployed on Azure and not showing the slightest hint of performance degradation as millions of users pound on the service may not be unique, but it sure is cool! AppFabric is used to establish our chat network connections while the web roles are responsible for executing our translation algorithms. We store complex translation data in SQL Azure tables while we record usage metrics in standard Azure tables which don't require complex table joins.
Jonathan: During development, did you run into anything that was not obvious and required you to do some research? What were your findings? Hopefully, other developers will be able to use your findings to solve similar issues.
Mark: I think the challenge we faced is the stateless session that are counter to real-time chat connections. A user cannot connect to Webserver #1, start a chat, and then have Webserver #12 responding to the next request. With the help of the Microsoft staff, we were able to employ a few different solutions (cookies/AppFabric features - storing session info in a database, etc.) to maintain a session and not lose chat connections with our custom protocols to non-standard IM networks and Ortsbo's API services. We still face learning curve issues, but the Discovery Pack offered by Microsoft has been fantastic and cost effective for our company. The level of support and knowledge provided by the Microsoft team has been outstanding in a time when customer service in general, is lacking (in my opinion).
[For more information on the Windows Azure Discovery Pack, please contact us at firstname.lastname@example.org]
Jonathan: Thanks for mentioning support. Many don’t know that Microsoft provides free platform and developer support for Windows Azure, SQL Azure, AppFabric, and DataMarket. Any developer can get help from the Windows Azure Support Site. Last but not least, what were some lessons you and your team learned during your migration to Windows Azure?
Mark: Deploying to Azure can sometimes be as simple as upload, tweak and go (Live and Global was this way), and at other times, there is indeed some real thought and work required to port your application. Done properly, utilizing Azure Roles and proper deployment strategies may take a little more time, but results in commercial grade applications which are virtually limitless in scalability without being too hard on the infrastructure budget! Cloud computing is definitely the future for all global reach, public and/or enterprise solutions.
Mark, thank you so much for sharing your story with us! From now on, never let languages get in the way of your communications with the world! Give Ortsbo a try at ortsbo.com! If you’re a Microsoft Outlook user, make sure to try the plugin Mark mentioned above, Ortsbo for Outlook.
Join The Conversation
What do you think of this solution’s use of Windows Azure? Has this story helped you better understand usage scenarios for Windows Azure? Join the Ignite Your Coding LinkedIn discussion to share your thoughts.
Missed previous developer stories in the series? Check them out here.