Building a Multi-Server SharePoint Farm in Windows Azure
Since the announcement of new services in Windows Azure last month, we have been eager to try out the installation and configuration of a SharePoint farm in the Windows Azure environment with dedicated domain controller, SharePoint, and database virtual machines linked to a virtual network. This post describes the configuration of the Windows Azure environment and the steps taken to get a SharePoint 2010 server farm up and running.
Windows Azure is a Microsoft Public Cloud platform that allows you to use any operating system, language, database, or tool. For a good introduction and features of Windows Azure see the www.windowsazure.com website.
As Windows Azure continues to evolve, the recent introduction of new services such as Virtual Machines and Virtual Networks is an exciting new development. Although there is a 2010 Information Worker Demonstration and Evaluation Virtual Machine (SP1) available for download that can be uploaded to Windows Azure, we were keen to explore building a multi server SharePoint Farm for ourselves.
If you are new to Windows Azure and would like to try it, then the first task is to sign up for a Windows Azure free trial using a Windows Live ID account. During the free trial signup process you will be required to provide your credit card details. Don’t be put off by this as you will be protected by the zero spending limit.
So once you are signed up and logged in to the Windows Azure Management Portal, you will be presented with the menu as below once the preview features are enabled for virtual machines & virtual networks.
Create Virtual Network
Before building virtual machines we will first create our virtual network details with address space and subnets for granular control as follows:
Name: chiragtest (you can substitute for your own)
Affinity Group: Create a new Affinity Group called chiragtest (you can substitute for your own). Affinity groups are a way to physically group Windows Azure services together at the same data centre to increase performance. Only one virtual network can be assigned an affinity group.
Region: Select West Europe from the drop-down list as the desired region (obviously you choose the region that best suits where you are located).
Affinity Group Name: chiragtest (you can substitute for your own).
Addresses: 192.168.0.0/16 (private address range, specified in CIDR notation)
Within Subnets area we create the following subnets:
BackEndSubnet: 192.168.2.0/24 (This isn’t actually used, but is created for possible future use)
Additional settings for DNS and Local Network are available. These are left as blank and therefore using Windows Azure service as the default DNS. As we are configuring our own domain controller, we will be using that as our DNS server. Our virtual network is now created successfully.
Next we create the storage from the menu options within the management portal as a prerequisite for creating virtual machines. The affinity group Affinity1 (West Europe) is selected as an option.
Once the storage is created you can configure monitoring.
So we are now ready to create our virtual machines and deploy them to the virtual network.
Create Virtual Machines
From the management portal we choose the Virtual Machine option to either create quickly or choose from the gallery of platform images. An image is a virtual hard drive (VHD) file that can be used to create a disk for a virtual machine. There are 4 steps to create virtual machine as illustrated in the screenshots below.
Enter VM name, local administrator password and choose the desired size.
Enter a DNS name for the virtual machine and link it to the storage and virtual network created before.
The availability set is a logical group of virtual machines spread across physical locations. Please note that we used only the FrontEndSubnet for all servers.
We now have our virtual machine set up and it took about 10 minutes to provision. For our SharePoint Farm deployment, we have servers that will become domain controller, SharePoint server, and database server. We selected the following images and sizes.
|Server Role||Virtual Machine||Platform Image||Size|
|Domain Controller||DC01||Windows Server 2008 R2 SP1 June 2012||Small (1 Core, 1.75 GB Memory)|
|Web Server||SP01||Windows Server 2008 R2 SP1 June 2012||Large (4 Cores, 7 GB Memory)|
|Database Server||DB01||Microsoft SQL Server 2012 Evaluation Edition on Windows Server 2008 R2 SP1||Large (4 Cores, 7 GB Memory)|
At this stage all our virtual machines are ready with only operating system disk of 30 GB capacity. So we will go ahead and add data disks to each of the servers.
Adding Data Disk to Virtual Machine
From the virtual machine configuration screen, click Create Disk and specify the size.
The following screen shows the total disks attached to all virtual machines.
Connecting to Virtual Machines
The virtual machines page lists all the virtual machines and the toolbar at bottom of the page allows you to connect via remote desktop client. You can also shutdown or restart machines from here.
All the work within the Windows Azure environment is now complete at this stage. You will note that the Windows Azure default DNS for all VMs is chiragtest.cloudapp.net
Widespread Cloud with a Chance of SharePoint
Logging into each of the servers, the following tasks were carried out using “developer best practice” to install and configure the SharePoint Farm – you have been warned!
DCO1 – This virtual machine was promoted to a Domain Controller with DNS chiragtest.com. The SharePoint service accounts were created via Active Directory Powershell with the script from Chirag Patel blog site.
DB01 – This virtual machine was joined to the chiragtest.com domain. SQL Server was already configured as part of the image used to create virtual machine.
SP01 – This virtual machine was joined to the chiragtest.com domain. SharePoint 2010 media was downloaded. The installation and configuration was run using the automated SharePoint 2010 PowerShell-based installation script. The process took about 2 hours to complete.
Cloud Services – Staging and Production
Now we have our SharePoint Farm setup and running, we can visit the cloud services option to monitor the following metrics: CPU, Data In, Data Out, Disk Read Throughput, Disk Write Throughput for our virtual machines, with display metric options.
The following screen shows us the total usage overview of all the virtual machines by number of cores.
Virtual Machine Endpoints
Each of the virtual machines has one endpoint configured for access via remote desktop. In the case of the SharePoint server we add a new endpoint to allow web traffic on port 80 so the SharePoint site can be accessed externally. We set up a CNAME in the PointBeyond.com DNS server, mapping spazure.pointbeyond.com to chiragtest.cloudapp.net. Subsequently within SharePoint Central Administration the alternate access mapping settings were configured to http://spazure.pointbeyond.com
Windows Azure Licensing
As part of the subscription the Windows Server operating system licenses are included. However, SharePoint 2010 and SQL Server licenses should be purchased separately. For further details you can visit the Windows Azure FAQ page.
I found the whole experience of working with the Windows Azure environment user friendly and easy to use. With total control and flexibility of changing and monitoring CPU, memory and data disk size whilst not having to worry about the hardware, routers, switches, operating system configuration and other dependencies – the benefits of IaaS (Infrastructure-as-a-Service) are obvious as you simply pay for what you use, enabling you to focus on your business challenges!
I hope you have found this post useful and of help as you embark on your own Windows Azure adventure!
So how will your company take advantage of an Azure environment?