"Sitecore on Azure PaaS" - Geo-redundant Azure PaaS based Sitecore Reference Architecture

This blog gives an overview of "Sitecore on Azure PaaS" reference architecture and how it can be built on the complete stack of azure PaaS based services with geo-redundancy.

Sitecore Hosting Model

As we can see from below picture, Sitecore is capable of being hosted on-premise, IaaS, PaaS and SaaS.  From Sitecore version 8.2 Update-1 onwards, the Sitecore Experience Platform supports the Microsoft Azure App Service. This means that you are now able to deploy scalable Sitecore solutions on the modern Microsoft Azure PaaS infrastructure.

We will be covering the PaaS Hosting Model (shown as 3rd pillar below) in this blog.

Implementation guidance

  1. Web Apps - An App Service Web App runs in a single region, accessible to web and mobile browsers. A content management system like Sitecore provides service to manage and deploy content to the website.
  2. SQL Database - A SQL Database stores and serves data about the site.
  3. Application Insights - Application Insights, provides health and performance monitoring, and diagnostics.
  4. Content Delivery Network - A content delivery network serves static content such as images, script, and CSS, and reduces the load on the web app servers.
  5. Redis Cache - Redis Cache enables very fast queries, and improves scalability by reducing the load on the main database.
  6. Traffic Manager - Geo-route incoming traffic to your app for better perfomance and availability
  7. Azure Search - Cloud search service for web and mobile development

Publishing guidance

  1. Content Management Database (CM) - This is a centralized DB where the content from all region are posted. The content is then pushed to the Master CD server.
  2. Content Delivery Database (CD) - This serves up the content for all the region. The master lies in region 1 while the slaves lies in other 2 region. The content is replicated from master to slave using SQL Active Geo-Replication. This database will also be indexed by Azure Search.
  3. Content Management Web Site - The content can be published from any 3 regions but will be published on a centralized CM server which resides in region 1.
  4. Content Delivery Web App - The Content Delivery web site is hosted into all three region and serve up the content with low latency for all three user base with the help of traffic manager.

Fail-over guidance

Azure Traffic manager is key component of the fail-over.

  1. Create and publish a REST API endpoint which returns a 200 OK response code in case of success. The API can be programmed to check the state of CM Web App, CD Web App, and SQL and return response other than 200 in case one of them is not healthy.
  2. The API endpoint is registered with the traffic manager with a TTL. TM will redirect the traffic to either region 1 or 3 in case 2 is not healthy. This will be called a full stack fail over where any component of a region is down, the web traffic is diverted to other region.
Hope this gives a high level overview of how a logical architecture will look like if you are thinking to deploy Sitecore using Azure PaaS based services.