Hosting Sitecore using Azure PaaS Web App Services
More often than not our clients are looking to host their Sitecore solutions in the cloud – and being a product built on Microsoft technologies, the preferred provider is Microsoft Azure.
It is possible to do this using either an Infrastructure-as-a-Service (IaaS) approach or Platform-as-a-Service (PaaS) approach.
IaaS involves commissioning Windows Server Virtual Machine (VM) instances in Azure and setting up Web and Database servers just as you would on your own premises or within a data centre. If you’ve got experience hosting your solution in this manner, then migrating to the cloud with IaaS tends to require the least change and could be viewed as the least risky approach – you are simply rebuilding what you know works, but in the cloud.
PaaS is not so simple - instead of VM instances which you can setup and manage as you wish, you are relying of managed services provided by Azure for all the components required to host your solution. There are many advantages to this – it should be simpler to manage and more flexible to your on-going requirements once everything is up and running.
However, the disadvantage of this is (and this applies to any application you are migrating to PaaS services) that you probably have to make changes to your app to be compatible with these services.
Unlike your own VM which you can configure as you wish, your control over PaaS services are more limited therefore you will need to adjust your app to support the services, instead of adjusting a VM to support your app.
Historically Sitecore has supported PaaS in Azure for some time (v8.0 +), using the Sitecore Azure Module. This allowed hosting of Content Management (CM) and Content Delivery (CD) instances of Sitecore in Azure PaaS services. However support for the full Sitecore Experience (XP) platform was lacking. Not all features required to host a fully-fledged Sitecore solution existed in Azure (or to be more precise, Sitecore was not really compatible with the plethora of PaaS services now available in Azure that provide the kind of services it requires).
However, Sitecore have now released the updated Sitecore Azure Toolkit for Sitecore v8.2 Update 1 onwards – this fixes the issues the old Sitecore Azure Module had. You can now host all aspects of a Sitecore XP solution on Azure PaaS services – no workarounds or hacks required.
The updates that make this possible are:
- All Sitecore Databases (content and xDB) are now compatible with Azure SQL
- Content Search and Content Segmentation indexes now support the Azure Search Service (previously this was restricted to Lucene file based indexes or Solr servers)
- Integration with the Microsoft Application Insights to collect logs and performance data
- Session state now supports the Microsoft Azure Redis Cache service
With all this in place, and the Sitecore Web Application running on Azure Web App services, you have a complete Sitecore hosting infrastructure entirely on Azure PaaS services. You will only need to pay for the resources you need, and can configure your application to automatically scale with the Web App service roles and an Azure Load Balancer.
An example configuration with all this in place might look something this this: