Unexplained Azure App Service Scaling

The Azure cloud is nothing short of incredible. One of the most impressive parts about the cloud is the ability for it to scale rapidly in either direction and for you to only be charged for what you use on a per minute basis. It is clear that South African hosting has a long way to go.

My company uses Azure exclusively for hosting our entire infrastructure and we use Azure Websites to host all of our client sites. We typically create the sites through Visual Studio when publishing. It works very well and we find it much quicker than using the portal.We currently run an Azure App Service setting of 1 medium instance.

I had an interesting issue crop up a few weeks back. I install all the new stuff on my machine to test it before it goes out to the rest of the team. I had just installed the Azure SDK 2.7 tool set as I really enjoy seeing what I can next in Azure through Visual Studio.

About 6 hours after I had installed the toolkit I noticed somebody had scaled down the Azure Development Azure App Service instance to a Small Instance and the error notifications were swamping my mail box.

Like any good team member I went straight to the new guy not so subtly accused him and he denied it. The rest of the team also swore they didn't do it, it might have been the invisible axe in my hand. So I wrote it off Azure being Azure. It is surprising what Azure does on its own. The next two or three days it kept happening about once or twice a day. The Project manager was getting slightly peeved with someones shenanigans and kept mentioning it and when I was going to source a solution.

Suddenly it all clicked. It happened every time I decided to publish a new site. I decided to do a bit of an investigation and narrowed it down to this screen.

To those who have used Azure Websites this should be very familiar.
The issue arose when I selected the App Service Plan that was scaled up and created the Website. It took longer than usual to create and scaled the App Service Plan back to the Smallest instance. It doesn't do it unless the instance is Medium or Large Instance. The work around is very simple, just select a different App Service Plan. But lets be honest this is annoying and how often do you forget to change the service plan.

So what now ?

Well like any developer I went straight to Google and StackOverflow. It seemed like my issue was rather unique as no results were displayed and no one seemed to want to help. I tried posting in the Azure Forums and got nowhere. With no where else to turn I begrudgingly decided to buy an Azure Support Plan.

Azure Paid Support plan is definitely worth the money. Within 4 hours I had a Microsoft Support Engineer calling me to confirm the issue and the exact environment in which it happened. I was very impressed with the service.

A day later he came back to me and informed it is a Bug in the Azure SDK and has been present in previous versions. The fix would be rolled out in the next release of Azure SDK. It has been 2 months now and still no fix.

Now the question that resonates with me is how does a company the size of Microsoft not have proper testing procedures in place to find such a blatant bug? Is this the result of the of shortened development cycles? What else is broken?

The positives of this experiment is I have standardized the environment we work in and just made sure no one has the SDK Installed. I have learnt that one should ensure your teams machines are standardized and ensure updates and extensions are controlled. This can be particularly hard with developers who tend to like their freedom when it comes to their machines.

Update:

It is now fixed in Azure SDK 2.8.1. The new SDK changed the way everything works which is looking very exciting.

Richard Pilkington

I am a .NET Developer who is always seeking out new things and loves trying anything new. There has to be a quicker way tends to be the way I approach things

Cape Town, South Africa