Changes to Windows Azure Mobile Service and what they mean

Just over a month and half back, Windows Azure team released the Mobile Services. In addition to announcing paid services, they severely restricted the Free tier to the extent that it was not usable. The initial statement I got from them was that Free tier was meant for Testing. So what happened next ? I got it all up in my head and started a user voice. I talked to as many Windows Phone and Windows 8 developers as I could to tell them about it and to ask for their votes.

While I was vote gathering, I was also talking to Azure team and we discussed some stats on what is acceptable for free tier. We discussed the fact that 100 devices a month wasn’t really well thought-out idea and that it needed change. They agreed to increase the number and took on my suggestion of a daily device count as opposed to monthly device count.

The reasoning behind this is simple. If a user downloads your app, plays with it for 5 minutes but never ever uses your app, the user would have impacted the limited device count for whole month. With a daily limit, the new installs only impact for 24 hours not 30 days.

Last night Dinesh Kulkarni a Program Manager at WAMS acknowledged the user voice, closed it and updated the WAMS pricing document to reflect the changes that were in plan for good part of last month.

So what do we get now ?
Instead of 100 unique devices a month, we get 500 unique devices per day.

It is also worth noting Free tier isn’t covered by SLA and that its not monitored. Azure team will fix any issues on the Free tier (when identified) however Free tier services aren’t actively monitored – unlike the Standard and Premium tier that feature active monitoring to meet the SLA.

Additionally the 500 devices a day for Free tier are applicable across all your mobile services – not one. If you have 1 WAMS, you get 500 devices a day, if you have 10, you still only get 500 a day between all 10 services.

And finally what happens when your service registers 500 devices and additional devices keep coming ?
Well the service will stop servicing requests (not sure whether its for additional devices or across all) and will become available after 24hour device count reset.
The service would otherwise be untouched.

I think this is a satisfactory conditions imposed on Free tier. WAMS team would like to be cost neutral and for popular high device count / high volume app, they would like you to use paid SLA driven tiers.

I’d like to thank the Windows Azure Mobile Services team Josh Twist, Kirill Gavrylyuk and Dinesh Kulkarni for being open to the suggestion and of course all the Windows Phone and Windows 8 developers who took time to vote on the user voice. Without the developers, my whinging would have gone unheard. Thank you


A way forward – possible move away from #WAMS

It has been an interesting week. Same time last week, I created a uservoice calling for device count limitation to be dropped. I even heckled Josh Twist during his #DevChat and we eventually took conversation offline. We traded some emails – some at ungodly hours – considering the timezone differences.

I have also been working on getting votes for the uservoice. It now at #3 and has 558 votes.

I don’t know if anything will come off those. However I have done 2 things.

Monitor the expansion of #WAMS device count as new users download the app and existing users upgrade to using one with #WAMS. Here’s a visual clue on the changes since last Friday.



Based on this projection, I will be kicked off Free #WAMS sooner rather than later and I have been working on that front as well.

ASP.NET WebApi provide an easy CRUD option for exposing data. I have spent some time (when not trying to gather votes for uservoice) brushing up on MVC4 and the WebApi part.

Some tutorials:

  1. Your First ASP.NET Web API
  2. Creating a Web API that Supports CRUD Operations

The goal is to eventually

Host ASP.NET Web API in an Azure Worker Role

Earlier this morning Andy and myself were discussing WebApi and how we should use T4 templates to auto generate Model and Controller exposing CRUD operations. I will try to create some easy to use T4 once I move my users off #WAMS over coming weeks.

So long and thanks for all the fish

My thoughts on recently changes in Windows Azure Mobile Services

Let me start by apologising for the noise I have been making – especially on twitter – I think I lost a few followers but I believe its a worthy cause to fight for. There’s still 28 days to go before the changes are enforced and I will continue being vocal and will try to engage the Azure team.

Last August Windows Azure Mobile Services were announced. You can read Scott Guthrie’s blog post about it. I to an extent agree with Scott’s statement “provides a super productive way for you to build out your app ideas”. Specifically it make it easy to expose your data in easy to use REST API form. Not just that, the wrappers make it super easy to query, insert, update data etc. In its early for (Preview), it gave Azure users 10 free mobile service instances.

Of course free doesn’t mean fully free and do whatever you please. It had a catch – you need to use Sql instance and having said that, you need to pay for Sql – fair enough. Over and above that, the free instances had a 165 MB / per day making it approximately 5GB per month of outgoing data. Finally since you are a leecher, the service will be on a VM which will share resources with other services. If you like what you see, you scale your services by first opting into Reserved instance (monthly payment) and then set the instance count (more money). This all makes perfect sense. Monetization when you need to use beyond basics.

Since that day substantial resources have been spent highlighting the mobile services and how you can get started using 10 Free Windows Azure Mobile Services. Hell, we at London Windows Store App Developer Group even had a session on the same. Now I don’t have any access to any statics of usage during preview mode so next paragraph is pure speculation.

A majority of WAMS users opted to use Free instance paying for Sql only. A few (Rowi and a few others maybe) required scaling and went the reserved instance mode. however majority of users stayed well away from paying too much – human nature.

So after almost a full year, Windows Azure announced public release of Windows Azure Mobile Services and Windows Azure Web Sites. As a part of that, they added SLA – a full 99.9% and added tiers to WAMS and make it flexible in terms on what costs how much

A tiny line that escaped most people was “Up to 100 Active Devices” – for the free tier. And by active they unique  devices accessing services in the last 30 days (including today).

Of course we were all notified by email and we’re not told of the 100 device cap.

So what happens next. Under the terms of use, the team reserves the right to suspend a service for reasons above and beyond nonuse or inactivity. The way I see it, most users will get an email at some point saying your usage of Free is unacceptable according to T & Cs. Pay up or lose your service. Some will pay up, some will work their way around it and others will just wrap up. This is (NOT) fantastic news for Windows Phone and Windows 8 developers out there.

All is not lost – I have created a user voice issue on azure uservoice (not Azure Mobile services uservoice – didn’t think of looking for that – stupid me). I am working hard to ensure that developers are made aware of this change and I am trying hard to get Azure team to acknowledge the issue at hand.

Please upvote the issue. Its only 3 votes and you can choose to reduce / remove votes later – you get those back when the issue is acknowledged.

Update: I forgot to mention that Azure Websites has 10 free option as well and there have been no changes there.

Update 2: Over the coming days, I will share details on possible work around should you wish to run as far away from WAMS as possible