Retrace will reach End of Life on March 31, 2027. Click here to learn more.

What Microsoft Azure Got Right for Developers

By: LiftedLogic
  |  December 1, 2015
What Microsoft Azure Got Right for Developers

Microsoft Azure has changed dramatically since it was launched in 2010. Microsoft decided early on to focus directly on what developers need and has been leading the industry when it comes to “Platform as a Service” for Windows & .NET developers ever since. This article is a review of some of the key innovations they got right for developers from Stackify, a provider of APM for Azure.

Putting Apps First – Cloud Services & App Service

Ask any developer and the #1 thing they hate is dealing with any type of hardware. Azure was one of the first platforms available where .NET developers could deploy their app and specify what size of server they wanted and how many of them. Microsoft took care of the rest, including provisioning and deploying the servers. But one of the other key benefits is not having to deal with things like Windows Updates or Active Directory. This is what made me pick Azure over AWS 4 years ago.

Azure Web & Worker Roles were Microsoft’s first attempt at this. They work well, but have a few pain points. Very slow to deploy. Can’t change the instance size after deployment. Configurations via service definitions can get complicated. My biggest complaint is that they can get expensive quickly if you have a lot of small apps. You can’t easily pack multiple apps onto fewer servers and you get stuck paying even more for staging servers. Luckily, Microsoft has solved all of these issues with Azure Web Apps.

I think it is fair to say that Azure Web Apps and the entire App Service platform is V2 of the original Cloud Services. It solves a lot of the negatives of the original Cloud Services while further abstracting away the underlying servers supporting the apps. As a developer, I’m all for this. I think the future of hosting any type of app is on Azure Web Apps. It has never been easier to deploy an app from Visual Studio, git or a myriad of other ways.

Low Cost Hosting via App Service Plans

When you first start using Azure Web Apps, I think the whole notion of App Service Plans is weird and takes a little bit to get your head wrapped around. The power of them allows you to create a set of server resources, let’s pretend 3 servers, and then pack as many apps as you want on to those 3 servers. Then when you need to scale up or out, you just adjust the App Service Plan. This allows you to host a whole lot of smalls apps very cheapily. Something you could not easily do with Web Roles or do on other platforms like AWS Elastic Beanstalk.

App Service Plans are great for dividing up environments like production, test, and dev. You can allocate more resources to production and very little to dev. You can also move an app from one service plan to another at anytime which is really nice. The flexibility of Azure Web Apps, App Service Plans, and multiple deployment slots makes just about any hosting scenario possible.

Advanced IIS Features are Available

Azure Web Apps have simplified virtually everything about deploying an application. You can modify your applicationHost.config by dropping a transform in the root of your site via the kudu console. Via a special XML transform file and you can modify almost any setting in applicationHost.config.

Some examples:

  • Rewrite rules
  • Restrict IP access to your site
  • Application pool settings
  • Customize IIS logs & failed request tracing

View examples of applicationHost config transforms

Site extensions can also be used to enable more advanced features. A lot of developers probably don’t even know that site extensions exist. But they are insanely powerful and unlock a lot of functionality and potential limitations of Azure Web Apps. Site extensions make it easy to install 3rd party add ons like Stackify APM for Azure to track application performance or a simple tool like a viewer for your Azure IIS logs or event viewer.

Azure Table Storage

There are a lot of different types of storage and databases available these days on Azure. Lost somewhere in the glamour of SQL Azure, Azure Blobs, DocumentDB, ElasticSearch, MongoDB, and others is the simple Azure Table Storage. It is by far the simplest of all the options available, but the key advantage to it is its simplicity, low cost, and massive scale. It is the perfect solution for storing lots of data that you need to access via key lookups.

At Stackify, we ingest a lot of data every day for our clients and have found that table storage works well as a queue for “big data.” The types of data we process include code profiling traces from our APM, metrics, errors, and log data. For a single client we could be processing 100+ GB a day of data and individual profile traces or log messages are too large for using Azure Service Bus. We have built our own APM for Azure around using table storage as a queue including batching, compression, retries, etc. For Stackify, it has become an awesome queue for “big data”.

haveibeenpwned.com has a great article about how they used Table Storage to support searching millions of email address very quickly at a low cost.

Background jobs via Web Jobs

As a big user of Worker Roles, when Web Jobs came out I thought they seemed kind of weird and sort of like a gimmick to do cute things in comparison to worker roles. After playing around with it, I can attest that they can do so much more than what most of the simple examples show. They are definitely a good replacement for worker roles and most things you would typically design as a Windows Service can be reimagined as a WebJob that can be scaled out. Coupled with the Azure Task Scheduler feature, you can now run any type of background application.

Massive SQL Scaling via SQL Elastic Pools

As a multi-tenant SaaS vendor, Stackify manages over 1,000 SQL Azure databases. Elastic pools were a feature we begged the Azure team for and we were very happy when they delivered. Trying to manage what performance tier and DTUs to put 1,000 databases in is a nightmare. Being able to group them together in pools and assign resources to a group has greatly simplified our lives and even saved us money! It also helps us increase the performance of our system since we can allocate additional horsepower that can be shared.

Read more about Stackify’s review of SQL Elastic Pools

Visual Studio Integration

I don’t think anyone would argue that Visual Studio is the best developer IDE available. The Azure integration makes it really simple to deploy an app to Azure and even do some management tasks. Want to deploy to Azure? No problem!

Monitoring Azure Performance with Stackify’s APM for Azure

If you are in need of a good developer solution for monitoring the performance of your Azure applications, be sure to check out Stackify! We have been using Azure for 4 years and we have the best application performance monitoring solution for Azure & .NET developers available!

Have questions about Azure? Hit us up on Twitter @Stackify and maybe we can help. We know a few things about building and scaling massive apps on Azure.

Improve Your Code with Retrace APM

Stackify's APM tools are used by thousands of .NET, Java, PHP, Node.js, Python, & Ruby developers all over the world.
Explore Retrace's product features to learn more.

Learn More
situs toto pucuk4d indobet toto slot slot depo 10k 8kuda4d toto toto toto bobatoto daftar logototo situs toto situs toto toto patentoto situs toto slot 4D situs toto toto toto situs toto ilmutoto bayitoto mawar800 login popotogel prize hongkong malam ini toto joker11 lingkartoto depo 5k panen100 semibola popo togel https://asupantoto.co/ slot pascol4d login pascol4d login sbobet88 sbobet88 https://nolimithoki.dev/ ini777 dinasti33 slot situs toto slot88 slot jepang slot depo 5k pucuk4d https://www.juara288.asia/ slot 4d RP888 toto toto pascol4d situs toto kari4d flokitoto slot gacor logototo slot depo 5k bobatoto bobatoto bobatoto sontogel mpo slot situs toto slot situs slot link slot nobu99 logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo bobatoto istanaslot rp888 www.pajaktoto.io kari4d kari4d kari4d kari4d pascol4d pascol4d pascol4d toto slot slot gacor bento11 link KARI4D PUCUK4D pascol4d situs slot toto slot titi4d slot gacor toto toto slot toto jinhoki situs slot situs slot situs slot AMANAHTOTO https://www.asupan188.dev/ slot gacor gampang menang toto slot gacor bwo303 situs toto toto slot slot gacor slot88 slot gacor situs slot link slot slot88 situs toto MySlot188 SlotPoker188 slot gacor slot gacor pucuk4d PASCOL4D slot gacor situs slot link slot pentaslot SLOT GACOR AMANAHTOTO TOTO 4D pajaktoto slotvip toto togel situs toto toto slot situs slot situs slot situs slot toto slot gacor slot777 toto slot slot gacor situs slot link slot slot thailand patentoto situs judi bola situs toto roma77 slot jpmania toto228 RATU89 RUSIA777 slot gacor POPOTOGEL : Situs Resmi Bandar Toto Togel Macau dengan Prediksi Gokil Pasti Akurat PARLAY slot gacor slot gacor slot gacor link slot BUNGASLOT slot slot gacor situs slot slot gacor slot gacor sejukbos situs slot link slot slot gacor gacor gacor Slot88 Slot88 coloktoto toto slot slot gacor situs slot gacor situs toto slot gacor toto toto toto slot gacor slot88 slot777 slot pulsa ayamtoto StreamEast slot777 slot88 link slot gacor situs gacor slot gacor slot gacor toto slot slot gacor leon188 slot gacor bandarqq
situs toto pucuk4d indobet toto slot slot depo 10k 8kuda4d toto toto toto bobatoto daftar logototo situs toto situs toto toto patentoto situs toto slot 4D situs toto toto toto situs toto ilmutoto bayitoto mawar800 login popotogel prize hongkong malam ini toto joker11 lingkartoto depo 5k panen100 semibola popo togel https://asupantoto.co/ slot pascol4d login pascol4d login sbobet88 sbobet88 https://nolimithoki.dev/ ini777 dinasti33 slot situs toto slot88 slot jepang slot depo 5k pucuk4d https://www.juara288.asia/ slot 4d RP888 toto toto pascol4d situs toto kari4d flokitoto slot gacor logototo slot depo 5k bobatoto bobatoto bobatoto sontogel mpo slot situs toto slot situs slot link slot nobu99 logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo logototo bobatoto istanaslot rp888 www.pajaktoto.io kari4d kari4d kari4d kari4d pascol4d pascol4d pascol4d toto slot slot gacor bento11 link KARI4D PUCUK4D pascol4d situs slot toto slot titi4d slot gacor toto toto slot toto jinhoki situs slot situs slot situs slot AMANAHTOTO https://www.asupan188.dev/ slot gacor gampang menang toto slot gacor bwo303 situs toto toto slot slot gacor slot88 slot gacor situs slot link slot slot88 situs toto MySlot188 SlotPoker188 slot gacor slot gacor pucuk4d PASCOL4D slot gacor situs slot link slot pentaslot SLOT GACOR AMANAHTOTO TOTO 4D pajaktoto slotvip toto togel situs toto toto slot situs slot situs slot situs slot toto slot gacor slot777 toto slot slot gacor situs slot link slot slot thailand patentoto situs judi bola situs toto roma77 slot jpmania toto228 RATU89 RUSIA777 slot gacor POPOTOGEL : Situs Resmi Bandar Toto Togel Macau dengan Prediksi Gokil Pasti Akurat PARLAY slot gacor slot gacor slot gacor link slot BUNGASLOT slot slot gacor situs slot slot gacor slot gacor sejukbos situs slot link slot slot gacor gacor gacor Slot88 Slot88 coloktoto toto slot slot gacor situs slot gacor situs toto slot gacor toto toto toto slot gacor slot88 slot777 slot pulsa ayamtoto StreamEast slot777 slot88 link slot gacor situs gacor slot gacor slot gacor toto slot slot gacor leon188 slot gacor bandarqq