Windows Azure as a Mobile Backend Platform

Today, I posted a video blog discussing why using Windows Azure as a mobile backend platform is an attractive option. I wanted to quickly summarize the contents of that video and also supplement it with some helpful links.

Summary

Backend platform selection is important because, unless you’re talking about the most trivial of apps, most mobile applications will have some need to connect to backend services and data. It’s important to select a platform that’s flexible, scalable to your app and users’ needs, and provides tools that make building and managing your applications easier.

Windows Azure and SQL Azure is a compelling PaaS for mobile for the following reasons:

Cost

Windows Azure has an attractive pay for what you use pricing model. You only pay for the bandwidth, storage, and compute processing that you consume.

For more details on pricing, see the following:

Scalability

Windows Azure is a highly-scalable platform. You can start small (for example, a single instance of a VM with a single 1GHz CPU and less than 1GB of memory or a 5GB SQL Azure database), and scale up and out as the need arises. This is an especially good strategy for mobile consumer apps (where app usage will probably not be as demanding initially) until you’ve determined that your running at or near maximum capacity with your resources.

Windows Azure also provides usage monitoring tools and management APIs so you can detect and react appropriately to predictable or unpredictable bursts in usage patterns by dynamically starting more instances. There are also third party tools available, like AzureWatch, that help you monitor and dynamically adjust instances based on demand.

High Availability

Windows Azure is also a platform that can provide your mobile application with highly-available back-end services. If your service or virtual machine is down, Azure will automatically try to restart it. If the service or virtual machine can’t be restarted due to hardware failure, then the platform will automatically create a new virtual machine on another physical server and deploy and run your service on it. And if you’ve got at least two instances of your service running, then Microsoft’s Service Level Agreement (SLA) guarantees a 99.95% uptime rate.

Development Platform Support

Azure supports using the .NET framework but if you're not accustomed to the .NET framework, Azure also supports Java, PHP, and Node.js if those are the development environments you're more familiar with.

Java SDK

PHP SDK

Node.js SDK

Platform Services

The Azure platform also provides the following services that are typically essential for mobile applications:

Data Storage

Several different data storage options are available:

  • Relational Databases with SQL Azure
  • Non-relational, semi-structured databases with Table Storage (NoSQL)
  • Blob Storage for storing large, unstructured binary files like images, audio, and video
  • Queues for reliable and persistent messaging between applications and services

Data Syncing

For applications with the need for offline capabilities that synchronize to a back-end data store when the application is back online, Microsoft Sync Framework, through OData, supports syncing to and from mobile devices.

Sync Framework Toolkit

Content Delivery Network (CDN)

Mobile applications targeted for global use can take advantage of Azure’s CDN to help build responsive applications. Your mobile application’s assets (images, videos, etc) can be hosted on edge servers around the world and devices can retrieve these assets from the server that is closest to their location.

Authentication and Authorization

If your application has a need for authentication and authorization, Windows Azure App Fabric also has Access Control Services (ACS) which can be used to set up and manage that for you. ACS has support for different identity providers, including Facebook, Active Directory Federation Services (ADFS), and others.

Note that in the video, I mentioned Twitter; however, this is incorrect. Right now ACS supports OAuth WRAP and OAuth 2.0 and Twitter only officially supports OAuth 1.0A. So Twitter is out, for now.

Native Toolkits

Finally, the Windows Azure Platform Team has done a nice job of providing toolkits for most of the major mobile platforms (none for Blackberry). Using these toolkits makes it easy to connect to and leverage the Azure platform services.

 

Conclusion

I hope you found the video helpful and the subsequent summary useful. I have hopes to turn it into a series with tutorials on how to use these various services and toolkits in the future. If that is something that is of interest to you, please let me know in the comments below!

Considerations for Delivering Successful Mobile Projects

There is no denying that mobility is currently a hot topic. Staggering forecasts by various analysts have made capitalizing on the mobile applications market a top priority for many organizations’ CIOs and CTOs. However, before diving headfirst into mobility projects, it is important to consider various factors in order to define a clear strategy that addresses the many opportunities and challenges that mobility presents for your organization.

During Q4 of 2010, smartphone sales surpassed global PC sales for the first time in history. This turning point arrived quicker than most analysts predicted. By 2013, it is expected that the combined global sales of smartphones and tablets will double the sales of PCs. This estimation might be conservative. With lower-cost smartphones expected to be available on the market due to Microsoft’s partnership with Nokia and with less expensive tablets like the Kindle Fire certain to arrive in the near future as alternatives to the Apple iPad, it is likely that this turning point will arrive sooner. And these devices aren’t simply meant to supplement traditional PCs and laptops; for many users, mobile devices will be the only way they will access the internet.

Organizations should view these forecasts and trends as opportunities. The revenue potential is huge and only continues to grow. With a well-devised strategy, the mobile channel can present a unique opportunity to further engage with customers, differentiate from competitors or establish a position of leadership in your market and ultimately increase revenue. As a disruptive technology, mobile devices can even be a catalyst for organizations to create new, untapped markets (for example, location-based social network applications like Foursquare1).

In order to capitalize on these opportunities and to shape your strategy, consider the following factors:

  • Business Objectives– What are your organization’s top-level goals? It is important to align your mobility strategy to these goals. When selecting the mobile projects your organization will undertake, does your selection criteria include how the projects help your organization achieve its goals? For example, if your goals this year are to increase revenue and to increase brand awareness, are you utilizing mobile to its full potential as a revenue channel and do you have plans to integrate your mobile applications with social networks?
  • Customer Expectations – What do your high-value customers2 expect from you? Do they expect that when they browse your website from a mobile device, they’ll get a mobile-optimized view?3Do they expect applications targeted for their specific device or mobile OS? More and more smartphone and tablet users demand mobile applications that provide a rich and compelling view of content and provide the real-time information they need while on-the-go.
  • Competitive Advantage – What features do your competitions’ mobile applications provide? You can almost certainly bet that if your competition provides these features, your customers will expect similar features in your applications as well. Beyond these core features, what other features can you provide to set your applications and services apart from those of your competitors?
  • Go-to-Market Tactics – How will you launch your application? What tools will you use, which platforms and devices will you target? Can you take an agile approach and launch an application quickly (i.e., get something out on the app store or your mobile-optimized website) and do quick iterations? Or do the needs of your target customer/audience require you to have a fuller-fledged, feature-rich application from the outset? And once your application is on the market, how do you plan on driving sales? What marketing campaigns are vital and necessary to the success of the application?
  • Organizational Readiness – Is your company in a position to deliver mobile solutions? Does your company have the capacity in-house to develop and manage/support mobile-optimized web sites and/or mobile applications or will you have to establish a partnership with companies that are ready to do so? Do you have the appropriate infrastructure to support these applications or do you need to leverage cloud solution providers?

These factors are not meant to be an exhaustive list, but a starting point for developing a strategy for ensuring successful mobility projects4. However, addressing these factors and answering the related questions can help you establish a roadmap in delivering the appropriate mobile applications and services by your organization.

What other factors do you believe are important in ensuring successful mobile projects?


1 Can ‘location-based social network applications’ be even considered as a market?

2 By ‘high-value’, I don’t only mean to refer to customers who have spent the most money. You should also consider the social value of your customers as part of the valuation process.

3 Rhetorical question - of course they expect this. Browsing to a company’s website on my mobile device and not having it rendered optimized for mobile is one of my biggest pet-peeves. Every company should have a mobile-optimized version of their site.

4 These factors also don’t cover your enterprise mobility strategy (to be covered in a future blog post).