With the move to Sitecore 8.2, it became clear that Sitecore would have more support for Azure. Today’s session on the developer track made it clear just how much Sitecore will support Azure moving forward.
One of the key focuses in an upcoming version of Sitecore will be full support for Azure Web Apps, which are a Platform as a Service (PaaS) offering. In order to accomplish this, there have been some key enhancements to Sitecore:
Session State Cache
The session state service is being re-architected to work on Redis Cache. Since Sitecore defaults to in-role caching, it becomes hard to scale out Sitecore delivery servers in Azure if users cannot transfer session between servers. Utilizing Redis Cache is a performant way to handle this while also being supported in on-prem configurations that may need this. This enhancement is due to come to the Sitecore Azure module as well, in an upcoming final release. Utilizing this feature in Azure reduces the burden on IT to manage and maintain the technology. It also seems like a great opportunity to expand more of Sitecore’s caching into Redis in the future.
When utilizing Azure Web Apps, access to the file system is not allowed. The Web App mounts the application files in a read only network share, which makes things like Sitecore logging and performance counters problematic. Since Azure has a powerful Application Insights feature to track resource utilization and performance issues, Sitecore has been extended to write logging and counters to Application Insights instead.
Traditional on-prem solutions for Sitecore leverage lucene or Apache Solr to index the content and search the data in a performant way. Azure Search is a cloud-hosted way to index and query data in a way that alleviates the burden of management from your IT team. Azure Search will crawl Sitecore content and allow for complex searches, including geo-spatial queries.
SQL Server Georeplication
While Sitecore 8.2 was the first version to support Azure SQL, the application logic of Sitecore does not allow for a secondary set of databases that are required in SQL Georeplication. The upcoming release of Sitecore will resolve these issues, allowing for geographic redundancy of databases.
One of the joys of working with Azure Web Apps is the infrastructure available to automate deployments to production. Web Apps leverage a sequence of deployment slots that allow for hot swapping of application code to roll deployments into production.
In order to assist in the speed of these deploys, Sitecore is providing ARM templates (recipes that allow for the quick creation of entire Azure architecture) and pre-built Sitecore configurations for typically complicated Sitecore role configuration, such as CM and CD.
What about MongoDB?
One thing not yet addressed is the requirement for MongoDB in order to utilize the xDB. There is always the Sitecore xDB Cloud offering, which externalizes the complexity of xDB, but for those who wish to host their data themselves, MongoDB can be complicated to host inside of Azure, as no managed solutions exist. DocumentDB is a noSQL database that even has the ability to speak the MongoDB API. It should be possible to support this alternative noSQL database in the future, allowing application hosting entirely inside of Azure. In the meantime, ObjectRocket and mLabs both have offerings that help resolve these issues.
By the next iteration of Sitecore, we should be able to fully leverage Microsoft Azure to create a dynamic hosting architecture that saves money, reduces management effort and scales to fit the needs of your application.