allBlogsList

Deploying Sitecore on Microsoft Azure

Overview

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. 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
  • Clustered MS SQL database

2 General Sitecore Architecture

2.1 Basic Sitecore Setup (Two-Servers)

A basic Sitecore setup has two servers

  • CMS server (application server)
    • Windows Server running IIS
      • IIS runs Sitecore content delivery (CD) server – the actual website
      • IIS also runs Sitecore content management (CM) server – the content authoring environment
  • Database server (generally MS SQL, Oracle is supported as well) 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 these servers are:

  • 4 core processor

  • 4 GB of RAM

For smaller sites and development/integration/QA instances, it is common to run both the CMS server and database server on a single server.

  1. Basic Sitecore Setup

For more information on installing Sitecore please refer to:

http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%207/Installation/Installation%20Guides%20CMS%207,-d-,0%20and%20later.aspx

2.2 Six-Server Sitecore Setup

For mid to enterprise sites, six servers setup is a standard practice.

Six-Server Sitecore Setup

Integration Environment

  • Integration environment is used by the development team for running the latest code, content and services
  • Generally a deployment server will do automated builds and deployment to the integration server
  • Developers’ instances of Sitecore will reference the integration Sitecore database in order to ensure a single version of Sitecore data
  • Sitecore CM and CD server and database server will be deployed on a single server

QA Environment

  • QA server is used for testing latest code releases, content and services
  • Generally deployment server will do automated builds and deployment to the QA server. Sitecore packages will be deployed from Integration to QA
  • Sitecore CM and CD server and database server will be deployed on a single server

Production Content Management (CM) Environment

  • Tested code and Sitecore packages are deployed to the Content Management (CM) server for final UAT
  • This environment is also used by content authors to create and edit pages/content, and preview and test them
  • Generally deployment server will do automated builds and deployment to the CM server
  • Sitecore CM and database server will be deployed on a single server

Production Content Delivery (CD) Environment

  • Content Delivery (CD) server runs the actual site
  • It is recommended that 2 CD servers be used with a load balancer for scalability and higher up-time
  • Generally deployment server will do automated builds and deployment to the CD servers
  • Approved content can be published from CM server to multiple CD servers manually or using a workflow
  • Each CD server will be deployed on a separate server (total 2 servers) and database server will be deployed on a separate server

Note: Additional information on standard Sitecore server configuration and scaling can be found on sdn.sitecore.net.

3 Azure Sitecore Architecture

3.1 Mapping Six-Server Configuration to Azure

Note: Azure comes with a guarantee uptime of 99.95% of the time provided they are deployed in the same availability set to accomplish high-availability requirements for SiteCore application.

For more information please refer http://azure.microsoft.com/en-us/support/legal/sla/

3.2 Azure Architecture

Six-Server Sitecore Azure Setup

  1. The Microsoft Azure setup assumes all servers are setup in a single region and availability zone.
  2. The overall environment is setup as a virtual network.
  3. Integration, QA, CM, CD and CD SQL Azure are setup as individual Virtual Network subnets
  4. Not covered in this post, but any connectivity to client network can be done using VPN
  5. Internet gateway is used for handling any public traffic (generally to the CD servers over port 80 and 443)
  6. VM CD1 and CD2 servers will be load balanced using an Azure Load Balancer (ALB)
  7. SQL Server Instance Azure CD will serve as the production database for the two CD servers.
  8. SQL Azure CD will have its own Virtual Network subnet.
  9. All Azure Virtual Machines instances will be backed-up to Azure Storage using Powershell scripts or 3rd-party tools
  10. Not covered in this post, but security and access can be configured using Identity Access Management (IAM), Access Control Lists (ACLs) and routing rules and tables
  11. This post assumes DNS is managed outside of Azure.

4 Pricing Azure Configuration

4.1 Elements Considered for Pricing

4.1.1 Azure Virtual Machines

  1. Used for Integration, QA, CM and 2 CD servers (5 instances)
  2. Extra Large (8 Cores, 14 GB) Standard Instances.
  3. Windows 2012, 64-bit
  4. MS SQL 2012 Web Edition, 64-bit (1 instance)
  5. 5 Azure IPs
  6. All Virtual Machine instances will be backed-up to Azure Storage using Powershell scripts or 3rd-party tools
  7. 10 GB/month data transfer out
  8. 10 GB/month data transfer in

4.1.2 Azure Load Balancer (ALB)

  1. 1 Azure Load Balancer
  2. Total data processed 20 GB/month

4.1.3 Azure Storage

  1. Storage 100 GB
  2. Put/Copy/Post/List Requests 10,000
  3. Get and other requests 100

4.1.4 SQL Server on Azure (IAAS)

  1. 1 instance for production database.
  2. XL Instance (8vCPU, 14 GiB, 127 GB SSD)
  3. Windows Server 2012 R2
  4. SQL Server Web

4.1.5 Virtual Network

  1. 1 Virtual Network
  2. 100% utilized
  3. Data transfer out 100 GB/month
  4. Data transfer in 10 GB/month

4.1.6 Support

Basic support

 

Note: These are estimated representative pricing. For more information please visit the Azure pricing calculator used for this model:

http://azure.microsoft.com/en-us/pricing/calculator/?scenario=virtual-machines

4.3 Elements not considered in pricing

  1. No SES
  2. No BYOL for SQL or Windows
  3. No Route 53
  4. No caching
  5. Basic monitoring, no cloud watch
  6. Basic support
  7. No anti-virus
  8. No IDS
  9. No offsite storage
  10. No DR site
  11. No multi-region, multi-AZ setup