INTRODUCTION
Recently, I had the opportunity of working on a Sitecore migration project. I was tasked with moving a third-party hosted Sitecore 7.0 instance to Azure IaaS. The task sounds simple enough but if only life was that simple. A new requirement was to improve upon the existing infrastructure by making the new Sitecore environment highly available and the fun begins right there.
To give some context, the CURRENT Sitecore environment is not highly available and has the following server topology:
- Single Sitecore Content Delivery (CD) Instance
- Single Sitecore Content Management (CM) Instance
- Single SQL Server 2008 Instance for Sitecore Content and Configurations
- Single SQL Server 2008 Instance for Sitecore Analytics
The NEW Sitecore Azure environment is highly available and has the following server topology:
- Load-balanced Sitecore CD Instances (2 servers)
- Single Sitecore CM Instance (single server)
- SQL Server 2012 AlwaysOn Availability Group (AAG) for Sitecore Content (2 servers)
- SQL Server 2012 AlwaysOn Availability Group (AAG) for Sitecore Analytics (2 servers)
In this tutorial I will walk you through the processes required to provision a brand new Azure environment and migrate Sitecore.
This tutorial will be split into three parts and they are:
- Part 1 – Provision the Azure Sitecore Environment
- Part 2 – SQL Server 2012 AlwaysOn Availability Group Configuration (coming soon)
- Part 3 – Sitecore Configuration and Migration (coming soon)
PART 1 – Provision the Azure Sitecore Environment
In the Part 1 of the tutorial, we’ll look at building the foundations required for the Sitecore migration.
1. Sitecore Web Servers
- First we need to create the two Sitecore CD instances. In Azure Management Portal, navigate to Virtual Machines and create a new virtual machine from gallery. Find the Windows Server 2012 R2 Datacenter template, go through the creation wizard and fill out all the required information.
- When creating a new VM it must be assigned to a Cloud Service, you will get the opportunity to create a new Cloud Service if you don’t already have one. For load-balanced configurations, you also need to create a new Availability Set. Let’s create that too.
- Repeat the above steps to create the second Sitecore CD instance and assign it to the same Cloud Service and Availability Group.
- Repeat the above steps to create the Sitecore CM instance and create a new Cloud Service for it (you don’t need to create an Availability Group for a single instance).
- Once all the VMs have been provision and configured properly, make sure they are all joined to the same domain in AD.
2. Sitecore SQL Servers
- Now we need to create two SQL Server 2012 clusters – one for Sitecore content and the other for Sitecore analytics.
- In Azure Management Portal, navigate to Virtual Machines and create a new virtual machine from gallery. Find the SQL Server 2012 SP2 Enterprise template (it will also work with SQL Server 2012 Standard and Web editions), go through the creation wizard and fill out all the required information.
Please Note: It’s important to note that by creating a new VM based on the SQL Server template, you are automatically assigned a pre-bundled SQL Server licence. If you want to use your own SQL Server licence, you’ll have to manually install SQL Server after spinning up a standard Windows Server VM.
- During the creation process, create a new Cloud Service and Availability Group, and assign them to this VM.
- Repeat the above steps to create the second Sitecore SQL Server instance and assign it to the same Cloud Service and Availability Group. These two SQL Servers will form the SQL Server cluster.
- Repeat the above steps for the second SQL Server cluster for Sitecore Analystics.
- Once all the VMs have been provision and configured properly, make sure they are all joined to the same domain in AD.
3. Enable Load-balanced Sitecore Web Servers
In order to make Sitecore CD instances highly available, we need configure a load-balancer that will handle traffic for those two Sitecore CD instances. In Azure terms, it just means adding a new endpoint, clicking on a few check boxes and you are ready to go. If only everything in life was that easy 🙂
- In Azure Management Portal, find your Sitecore CD VM instance, open the Dashboard, navigate to the Endpoints tab and add a new endpoint (located at the bottom left hand corner).
- You would need to add two new load-balanced endpoints – one for normal web traffic (port 80) and another for secure web traffic (port 443). In the creation wizard, specify the type of traffic for the endpoint, in this case it’s for HTTP Port 80. Make sure you check the Create a Load-balanced Set check box.
- In the next screen, you’ll have to give the load-balanced set a name and leave the rest of the options as the default, confirm and create.
- Do the same for secure web traffic and create a new endpoint for HTTPS Port 443.
- Find your second Sitecore CD VM instance, open the Dashboard, navigate to the Endpoints tab and add a new endpoint (located at the bottom left hand corner). You’ll also need to add two load-balanced endpoints – one for normal web traffic (port 80) and another for secure web traffic (port 443). But this time around, you’ll create the endpoints based on the existing Load-Balanced Sets.
- On the next screen, give the endpoint a name, confirm and create. Repeat the same steps for the HTTPS endpoint.
- You should now have load-balanced ready Sitecore CD instances.
The next part of this tutorial, we’ll look at how to install and configure SQL Server 2012 AlwaysOn Availability Group. Please stay tuned for the Part 2 of this tutorial.
Comments are closed.