Opposed to the heat in New Orleans, setting up a new Sitecore environment in Azure should be a breeze. Deploying a clean Sitecore installation to Microsoft Azure should take no more than 15 minutes. These are the highlights of one of the most impressive sessions - by Ciaran McAuliffe, Product Owner for Cloud at Sitecore - at the Sitecore Symposium 2016.
Note: When mentioning Microsoft Azure in this blog post, it concerns the PaaS (Platform as a Service) Web apps module and not the IaaS (Infrastructure as a Service) virtualization layer.
Installation of Sitecore
Installing a fresh instance of Sitecore will be done per role (Content Management, Content Delivery). Sitecore will provide a GitHub repository with pre-created packages per role (Azure Resource Manager templates). In combination with a PowerShell script, these templates will enable the setup of a full Sitecore installation in the cloud in about 15 minutes. This includes setting up the databases and using config files that have been configured with the best practices for that role.
Obviously, the deployed Sitecore instance will not be configured in detail, nor will it contain any published frontend components or design.
Installing your custom code
Installing your custom code will be possible by using the Publish to Azure feature of Visual Studio or by using Visual Studio Team Services.
Running Sitecore on Azure will give you all the benefits of running an Azure application. In addition to running in the cloud, specific Microsoft Azure features to configure and monitor your Sitecore installation will be available to you.
For example scaling your Content Delivery (CD) servers based on the traffic to the site is really easy. Just use the slider to add or remove CD instances. This can even be done by setting thresholds. A scenario could be that, in order to offer a good experience, you want the CD instances to consume no more than 60% CPU. Azure can be configured to add a new CD instance when the threshold is passed. Once traffic drops, so will the CPU which will trigger Azure to remove an instance. By using this system you will only be paying for the instances you really need.
You will now be able to leverage Application Insights to monitor your application because Sitecore has fully integrated their metrics with Application Insights.
Having a look at all the Trace messages on the Content Management instance can now be done by selecting the instance and the desired log level.
Application Insight can also be used to implement pro-active monitoring. During the demo two possible scenarios were shown.
The first one is to alert you by mail when someone tries to brute force attack Sitecore backend on the CM instance. Just setup some simple logic to check the amount of login failures in the last 5 minutes and when it exceeds 100 send an email notifying you of the attack.
The second scenario was to notify you when the cache is not working as expected. This can be setup by comparing the amount of cache misses to the amount of cache hits.
Other notable features
Redis cache will be used as the default for session state management.
The default search solution on azure will be Azure Search. The recommendation is that you only setup the indexes you need (to limit the cost). Lucene indexing is not available anymore.
Our past experiences with Sitecore on Azure were not so good. In fact, stability turned out a big issue - it's really not stable at all - requiring us even to roll back an installation to a regular Sitecore installation. The delays between the released versions for the regular Sitecore and the version for Azure PaaS also gave the impression this module was not a top priority for Sitecore.
At The Reference, we are big fans of PaaS solutions, so we are really looking forward to January 2017, when the new version will be released.
When released you can be sure that we will test this module thoroughly. Due to the fact that it could not convince us in the past, we will be particularly critical but also hopeful that Sitecore will deliver on their promise.
To be continued in January 2017!