• 1 min read

Scalable Umbraco CMS solution for Azure Web Apps

Build and deploy Umbraco CMS solution for Azure Web Apps using Azure Resource Manager template.

Umbraco CMS is a popular .NET solution to bring quickly to market dynamic web applications using ASP.NET framework. Umbraco CMS earlier versions didn’t really support auto-scaling with Azure Web Apps but the latest 7.3 version release has improvements to support better load balancing when running the application on multiple instances and support auto-scaling with Azure Web Apps. Check out this session from Codegarden for more details.

Azure quick start template gallery has ready to use ARM template that will deploy a scalable Umbraco CMS application. Here’s what this template contains:

  • Session state: This template creates an Azure Redis cache resource and pre-configures Umbraco CMS web app to use this newly created redis cache for session state caching.
  • Media folder: Umbraco CMS stores all the media content on the file server by default and on Azure Web Apps the files are stored on a shared drive used by all instances running your web app. As I/O calls increase in your web app, the performance of the app degrades as well. Since media content is static, you can serve them faster by storing them on separate server which in turn will  boost the website loading times. Azure blob storage is perfect solution for your static content. The implementation of a provider for Umbraco using blob storage is available here. This package creates an Azure storage resource and pre-configures Umbraco CMS to use that storage for all your app’s media content.
  • Load balancing across multiple instances: Umbraco CMS (version <7.3) uses Examine (Lucence engine wrapper) for indexing the site content. This can cause many issues with load balancing when running your app on multiple instances and locks on Lucene indexes. With Umbraco 7.3 used by the package below, this issue has been resolved. Setting up a load balanced environment is reasonably easy to achieve and can be done with only a few configuration file changes, as mentioned here, for configuration using Cloud based auto-scale appliances. In order to use flexible load balancing of Umbraco , you MUST
    • Setup 2 x Azure Web Apps – one for the master (administrative) environment and another for your front-end environment
    • Setup 1 x SQL server that is shared with these 2 web apps.

How to install Scalable Umbraco CMS


















Parameter Name



Name of Azure Web App


Name of Azure Web App service plan


The location to use for creating the web app and hosting plan


Choose either Standard or Premium Azure Web Apps pricing tiers; it defaults to Standard


Worker Size( 0=Small, 1=Medium, 2=Large )


SQL Azure DB Server name


The location of the database server; for best performance, this location should be the same as the location of the web app.


SQL Azure DB administrator user login


Database admin user password


Database Name


SQL DB Sku: Standard,Premium


Storage Account Name


Storage Account Type: Standard-LRS, Standard-GRS,Standard-RAGRS,Standard-ZRS


Redis Cache Name


Redis Cache Sku – Basic, Standard


The location to use for redis cache resource; this must be same as your web app location


Redis Cache Capacity, supported values from 0 to 6 representing cache tier name C0 to C6


Non-admin Database User; must be unique


Non-admin Database User password

  • Enter a resource group name and select your subscription. NOTE: All resources (Azure Web App +  Azure Storage  +  Azure Redis cache + SQL Azure DB) MUST be in the SAME REGION for optimal performance.


  • Click Create to initiate deployment. Umbraco CMS solution ready to run and scale on Azure Web Apps. Note, the template will take some time to deploy.


Getting started with Umbraco CMS

Extend your Umbraco CMS using Umbraco Projects