Sitecore with Azure SQL PaaS Part 1
Sitecore’s Customer Engagement Platform (Sitecore) is an enterprise class web content management system that provides an elegant, integrated solution for content management for websites, engagement automation and analytics. Microsoft Azure is cloud computing platform and Infrastructure for building, deploying and managing applications and services through a global network of managed data centers.
This blog discusses design considerations and techniques for deploying Sitecore on Microsoft Azure with Azure SQL (PaaS). Following areas are covered:
- General Sitecore architecture
- Microsoft Azure Sitecore architecture
- Additional Microsoft Azure considerations
- Estimating Microsoft Azure cost
Following areas have been left out from this blog:
- Build and change management
- Disaster Recovery
- Active Directory integration
- VPN connectivity and configuration with internal network
- Multi-Region Replication
2 General Sitecore Architecture
2.1 Basic Sitecore Setup using Azure SQL (PaaS)
A basic highly available Sitecore setup has multiple servers, at least two sitecore servers, at least one MongoDB server and at least two database servers. As we will be using Azure SQL we will only need two Sitecore servers and a single server for MongoDB.
Web servers (application servers)
Windows Server running IIS
IIS runs Sitecore content delivery (CD) server – the actual website
One server also runs Sitecore content management (CM) server – the content authoring environment
MongoDB servers (xDB servers)
Linux Server running MongoDB
Azure SQL Database running following databases
Master – The Master database is the authoring database – it contains all versions of any content or assets
Core – The Core database contains Sitecore application items and settings, as well as the tables containing the .Net membership provider (i.e. users/roles contained in the Sitecore repository)
Web - The Web database is only the latest published version of the content that is driving the live web site. Therefore, it is a subset of the master database, optimized for size and speed. When content is published, or goes through the publishing task of a workflow, the latest content version is copied from the master to the web database.
Analytics – The Analytics database holds all information related to Sitecore Digital Marketing Suite – analytics, personalization, etc.
The minimum recommended hardware requirements for the server is:
- 4 core processor
- 4 GB of RAM
Azure SQL Databases can be priced individually or as a shared pool. A shared pool is the most cost effective method when you have multiple databases that have widely varying and unpredictable usage patterns. For Sitecore, we have chosen to go with a shared pool with 100 eDTUs.
- The Microsoft Azure setup assumes the web servers and Azure SQL Database Pool are setup in a single region and availability zone.
- The overall environment is setup as a virtual network.
- Not covered in this post, but any connectivity to client network can be done using VPN
- An Azure Load Balancer is used for handling any public traffic (generally to the CD servers over port 80 and 443)
- All Azure Virtual Machines instances will be backed-up to Azure Storage using Powershell scripts or 3rd-party tools
- Not covered in this post, but security and access can be configured using Access Control Lists (ACLs) and routing rules and tables
- This post assumes DNS is managed outside of Azure.
3 Pricing Azure Configuration
3.1 Elements Considered for Pricing
3.1.1 Azure Virtual Machines
- CD server (2 instances)
- MongoDB server (1 instance)
3.1.2 Azure Storage
- Storage 400 GB
3.1.3 Azure SQL (PaaS)
- 1 Elastic Database Pool
- 100 eDTU, 100 GB
3.1.4 Virtual Network
- 1 Virtual Network
- Data transfer out 100 GB/month
3.2 Price Breakdown
VM D2 (2 cores, 7 GB RAM) Non-Windows
Page Blobs and Disks Locally Redundant
Reserved IP Address Hours
VM A3 Large (4 cores, 7GB RAM)
Elastic Database Standard
1 Elastic Pool
3.3 Elements not considered in pricing
- No anti-virus
- No IDS
- No offsite storage
- No DR site
- No multi-region setup