Automated Deployment of SharePoint 2013 in Windows Azure

As I have been getting deeper and deeper into Windows Azure and deploying workloads to Windows Azure, the IT Professionals that I speak with in the community and at local users groups seem to have the same key interest in the ease of deployment of workloads for a lab environment or even test/development of a particular workload. One such workload that seems to be a perfect fit for overcoming the challenges of creating an inexpensive, fully functional lab environment quickly is SharePoint 2013. I’ve had literally numerous conversations with colleagues, SharePoint folks and SharePoint Users Group attendees about the ongoing challenge of having a complete SharePoint farm available at their disposal to test a particular feature, get familiar with SharePoint 2013 or similar. I think a solution is finally here!

For those of you who aren’t aware of this challenge for BOTH IT Pros and Developers alike, you’re probably aware that SharePoint 2013 is a complex, multi-tiered and highly popular platform that offers many different highly-sought-after features and functionality. Its wonderful that SharePoint is made available to run on your own hardware on-premise or that you can consume many of the SharePoint 2013 features through Office 365. Both of these options have their challenges which complicate the evaluation and testing of SharePoint 2013. Running a SharePoint 2013 environment locally requires a fairly large SQL Server environment that is most likely no longer suitable for even the largest 32 GB laptops, and has lots of moving parts that you or your team many not have expertise in running as SharePoint 2013 requires a web front end, SQL back end, access to Active Directory, plus an app tier for any applications or functionality integrated into the SharePoint environment. OK, so I’ll run it in Office 365, right? Well that may be the right fit for you, however, keep in mind that the SharePoint Online functionality in Office 365 doesn’t offer the full feature set of SharePoint 2013 (No Business Intelligence, Enterprise Search, etc.) and is generally unable to integrate with many of the 3rd party SharePoint 2013 apps (K2, AvePoint, etc.) that integrate with the base SharePoint 2013 farm. OK, so now what? Windows Azure to the rescue! 

As presented at the recent Windows SharePoint Developer Users Group, there are a number of ways to get a FREE or very inexpensive SharePoint 2013 farm created and hosted in Windows Azure, one being a simple install and the other being a PowerShell-enabled automated deployment of an entire SharePoint 2013 farm. First off, be aware that the entirely FREE version only gets you a limited time (the Windows Azure FREE Trial does expire) and the SharePoint 2013 Trial that is offered as an image pre-setup in Windows Azure is a single server implementation of SharePoint and carries the technical and scale limitations of a single server SharePoint environment. If this interests, you go ahead and sign up for a Windows Azure FREE Trial and then sign into the Windows Azure Portal located at https://manage.windowsazure.com like at the picture below:

image

Once in the portal, click on the “+ NEW” in the bottom left hand corner of the screen and choose “COMPUTE” from the left hand column and “VIRTUAL MACHINE” from the center column, and “FROM GALLERY” from the third column as shown in the screen shots below.

image

image

The “FROM GALLERY” option opens a window with a list of pre-created Operating System Images, some of which include applications as well, such as what we’re looking for in this case, the “SharePoint 2013 Trial.”

image

From this point you can continue through the virtual machine wizard to create the single server SharePoint 2013 virtual machine hosted in Windows Azure that you will be able to configure on your own, including being able to use Remote Desktop to get into and manage the virtual machine.

While that’s certainly interesting and cool, its not as cool as the fully automated deployment of SharePoint 2013 that includes the full creation of an entire SharePoint 2013 farm with the associated web front ends, SQL Servers and more. Now keep in mind that a “fully automated” SharePoint 2013 deployment on Windows Azure will require you to use PowerShell with the associated Windows Azure module for Windows PowerShell as well as configure your machine and the Windows Azure subscription. Details on how to do this can be found here

Once you’ve got this going, the good folks in the Windows Azure product group have made a number of sample scripts and related documentation available for a Single VMs template and a Highly Available template for automating the creation of SharePoint environments in Windows Azure.

The Single VMs template is designed to produce a SharePoint farm for evaluation, development or testing.

  • 1 Windows Virtual Machine for Active Directory - Small Instance Size (1 core and 1.75 GB memory)
  • 1 SQL Server Virtual Machine - A6 Instance Size (4 cores and 28 GB memory)
  • 1 SharePoint Server 2013 Virtual Machine with all Services - Large Instance Size (4 cores and 7 GB memory)

The Highly Available template produces a SharePoint farm configured for high availability. Each tier is in an associated Availability Set. The SQL Server tier is configured with an AlwaysOn Availability Group with the SharePoint databases replicated for high availability.

  • 2 Windows Virtual Machines for Active Directory - Instance Size Small (1 core and 1.75 GB memory)
  • 2 SQL Server VMs - Instance Size A6 (4 cores and 28 GB memory)
  • 1 Windows VM for Quorum - - Small Instance Size (1 core and 1.75 GB memory)
  • 2 SharePoint Application Servers - Instance Size Large (4 cores and 7 GB memory)
  • 2 SharePoint Web Servers - Instance Size Large (4 cores and 7 GB memory)

Default instance sizes can be adjusted by modifying the configuration files in the \Config\Template directory.

As I mentioned, and as the documentation outlines, these scripts require the installation and use of the Windows Azure module for Windows PowerShell and related configuration to execute these scripts against your Windows Azure subscription. 

One of the fantastic features of Windows Azure is that after you’ve completed the setup of your SharePoint 2013 farm using one of the provided scripts, is that you can literally just turn the virtual machines off in Windows Azure and there is no charge for the virtual machines while they’re not running. Now keep in mind that if you shut down the virtual machines, you will lose the public virtual IP’s that you were assigned when you first provisioned the environment. If that’s an issue, you can shut them down and retain their public IP addresses, but the virtual machines will continue to accumulate billing time. 

The initial blog post on this topic authored by Michael Washam from the Windows Azure Product Group is located here.

The sample PowerShell Scripts .ZIP file for for both the Single VMs and Highly Available template can be downloaded from GitHub here.

The documentation on using these PowerShell Scripts is located here

To get up-to-speed on Windows Azure Infrastructure as a Service (IaaS), you can hit my blog post at https://aka.ms/IaaSSetup.

You can always come back to this blog post via the short URL https://aka.ms/SP2013onAzure or https://aka.ms/SPSNJ.

The Automated Deployment of SharePoint 2013 on Azure Slide deck can be found here.

Enjoy!