Too long, didn’t read (TLDR) summary
|
On 9th July 2014, Microsoft published an article titled . Amongst other announcements, that article introduced the idea of templates within Azure Infrastructure as a Service () for multi-machine/tier applications such as SharePoint:
“Create, deploy, monitor and manage rich virtual machines’ based applications, and manage virtual networks within a fully customizable Portal experience. In addition to creating simple virtual machines, we are adding the ability to automate the deployment of rich multi-machine application templates with a few clicks. With this, deploying a multi-tier, highly-available SharePoint farm from the portal will be a few clicks away!”
Sure enough, a quick trip over to the confirmed that this functionality is available within the gallery (for me at least):
In this blog, I briefly note down my thoughts on how this offering has been positioned, then go on to discuss what you get, and some of the main assumptions that Microsoft have made when putting these templates together. Note that I have no “inside” information – everything here is inferred from the Azure Preview Portal, and inspection of the VMs that are provisioned when creating an Azure “SharePoint Server Farm”.
When might we deploy an Azure “SharePoint Server Farm”?
Looking at the screenshot above of the Azure Preview Portal, it isn’t obvious whether the Azure SharePoint Server Farm is intended for development, testing, production or all of the above. The article is clearer, as it differentiates between a “basic” farm (three VMs, no HA) and a “high-availability” farm (nine VMs with HA), and briefly notes their intended purpose (emphasis added):
- “You can use this [basic] farm configuration for a simplified setup for SharePoint app development or your first-time evaluation of SharePoint 2013.”
- “You can use this [high-availability] farm configuration to test higher client loads, high-availability of the external SharePoint site, and SQL Server AlwaysOn for a SharePoint farm. You can also use this configuration for SharePoint app development in a highly available environment.”
As you can see, it appears that an Azure SharePoint Server Farm is intended for development, test and evaluation purposes. There is no mention of production workloads, and I speak to some of the possible reasons for that below.
What do I get?
By clicking the “Create” button in the Azure Preview Portal, you will either create a “basic” or “high-availability” SharePoint Server 2013 farm. The topologies of those farms are shown below:
“Basic” Azure SharePoint Server Farm (3 VMs, no high-availability), from the
“High-availability” Azure SharePoint Server Farm (9 VMs, including a SQL Server 2014 AlwaysOn availability group), from the
Clearly there are a ton of configuration options within each VM that are not spoken to above. Here are some of the key design choices that I noted whilst perusing my Azure SharePoint Server farm:
- A new forest and root domain are created along with your Azure SharePoint Server farm. If you already have existing AD DS infrastructure in Azure IaaS, there does not appear to be a way of installing SharePoint within that infrastructure.
- A SQL Server 2014 AlwaysOn availability group is created automatically. This requires SQL Server 2014 Enterprise Edition, which isn’t cheap (as reflected in the VM costs shown below).
-
The following choices were made regarding SharePoint Server 2013:
- SharePoint Server 2013 Service Pack 1 is installed (build 15.0.4569.1000).
-
A single content-serving Web Application is created, with a single root path-based Site Collection. This does not align with for new SharePoint 2013 environments.
- Interestingly, port 80 is open within the Windows Firewall, exposing this Web Application to the Internet. We would typically expose SharePoint to the Internet using a reverse proxy server such as the , and ensure that all Web Applications are SSL-secured for security reasons.
- Interestingly, port 80 is open within the Windows Firewall, exposing this Web Application to the Internet. We would typically expose SharePoint to the Internet using a reverse proxy server such as the , and ensure that all Web Applications are SSL-secured for security reasons.
- No Service Applications are provisioned aside from those that are created automatically when creating a new farm (the Security Token Service and Application Topology Service).
- Only the Setup and Farm Accounts are provisioned. In production, it is unlikely that those accounts would be sufficient, assuming that Microsoft’s are followed.
- All SharePoint VMs host an instance of the Distributed Cache Service. Some Microsoft staff (including ) recommend dedicated Distributed Cache servers for performance and stability reasons.
- SharePoint Server 2013 Service Pack 1 is installed (build 15.0.4569.1000).
- The default pricing tier/specifications SQL Server and SharePoint VMs do not meet Microsoft’s minimum . For example, Web and Application servers require 12 GB RAM and 4 CPU cores per server, and the default pricing tier selected for those VMs (A2 Standard) provides 3.5 GB RAM and 2 cores. I expect the default specifications for Azure SharePoint Server Farm VMs to be insufficient per SharePoint 2013 Service Application resource requirements, even if those VMs are intended for development or testing purposes.
These design points underline the idea that an Azure SharePoint Server Farm is a starting point for development and testing. We still need to apply additional effort to get these guys into a state that is ready for anything but the most basic SharePoint development. Today, that effort would most likely take the form of applying a PowerShell script to automate “remaining” Service Application, Web Application and systems configuration in order to produce a farm that is aligned with the production environment(s) that it supports.
It’s worth noting that if an Azure SharePoint Server Farm were intended for production usage, the act of creating it via the Azure Preview Portal does not remove the need to . Once we arrive at a design, it is likely that we would choose the “high-availability” option for production as a starting point, then add or remove VMs to meet our requirements. Identity integration would be a key design consideration given that “Azure SharePoint Server Farms” come with a dedicated Active Directory Forest (essentially a ). Taking all of this into account, I question how much time we would save by using the Azure SharePoint Server Farm template in production, and can see why the feature is marketed as a development/test capability.
How much is it?
It’s always challenging to talk about pricing in a blog post, as Microsoft licensing agreements differ from customer to customer. What I will do is put together a quick “back of the napkin” price list so that you can see the relative cost of the “basic” and “high-availability” Azure SharePoint Server Farm options. Note that these are list prices, and I only list the default pricing tier costs mentioned on the Azure Preview Portal. Additional licensing costs (such as those required for SharePoint) are likely to apply, and an MSDN subscription may make this more affordable, as . I’m no licensing expert, so please check with your licensing reseller before committing to anything.
List prices for “basic” Azure SharePoint Server Farm (default pricing tiers on pay-as-you-go) on July 20th, 2014
VM role | Quantity | Default pricing tier | Monthly cost |
Domain Controller | 1 | A1 Standard | 42.61 |
SQL Server | 1 | A5 Standard | 2130.67 |
SharePoint | 1 | A2 Standard | 85.23 |
£ 2258.51 |
List prices for “high-availability” Azure SharePoint Server Farm (default pricing tiers on pay-as-you-go) on July 20th, 2014
VM role | Quantity | Default pricing tier | Monthly cost |
Domain Controller | 2 | A1 Standard | 85.22 |
SQL Server | 2 | A5 Standard | 4261.34 |
SQL Server File Share Witness (FSW) | 1 | Basic A0 | 9.47 |
SharePoint | 4 | A2 Standard | 340.92 |
£ 4696.95 |
A few points to note about the pricing shown in the Azure Preview Portal (and listed above):
- The default pricing tier/specification of individual VMs in each “tier” is the same in both the “basic” and “high-availability” options.
- As explained earlier in this post, the default pricing tier/specifications SQL Server and SharePoint VMs do not meet Microsoft’s minimum . For example, Web and Application servers require 12 GB RAM and 4 CPU cores per server, and the default pricing tier selected for those VMs (A2 Standard) provides 3.5 GB RAM and 2 cores. I expect the default specifications for Azure SharePoint Server Farm VMs to be insufficient per SharePoint 2013 Service Application resource requirements, even if that farm is intended for development or testing purposes. Of course, you can bump up those specifications at an additional cost.
- SQL Server VM costs appear to include SQL Server licensing fees, whereas SharePoint VMs do not. This is reflected in the “choose your pricing tier” dialogue shown below.
“Choose your pricing tier” dialogue for SQL Server VMs
“Choose your pricing tier” dialogue for SharePoint VMs
Personally, I find it a little odd that you can’t change the SQL Server license that is applied when creating a SharePoint farm via the Azure Preview Portal. Although SQL Server Enterprise licensing is required for the “high-availability” option (per usage of a SQL Server 2014 AlwaysOn availability group), I can’t think why an Enterprise license would be required for the “basic” option, and imagine this choice significantly increases cost.
By the way, if you find yourself wondering how to reduce costs whilst a development or test environment is not in use, I have found the PowerShell cmdlet to be very useful. As noted in that article, shutting down all VMs in a cloud service releases the associated public virtual IP address, which may be a problem if you have public DNS infrastructure that points to that IP. In my case, this hasn’t been a problem as the Azure SharePoint Server Farm that I created is temporary in nature. Also note that stopping (de-allocating) VMs means that you won’t incur compute charges, but you will
Stopped (de-allocated VMs), after running Stop-AzureVM
For what it’s worth, I incurred a cost of just over £10 for “spinning up” a “high-availability” Azure SharePoint Server Farm, then de-allocating it right away using Stop-AzureVM. You can see in the chart below that the “OTHERS” category makes up a small percentage of the overall cost, which presumably includes storage. Remember that costs vary by region and by subscription, so your mileage may vary.
Cost of “spinning up” a “high-availability Azure SharePoint Server Farm” with default options selected
Wrap-up
That’s all for now. If you’d like to know a little more about the configuration of a “high-availability” Azure SharePoint Server Farm, feel free to download an SPSFarmReport that I ran post-creation.
Great post & solid analysis. I spun up one same day as it was announced & deprovisioned it 2 days later & paid like $50 for it in credits. I like the deallocation posh script idea, I created a hybrid farm structure for TechEd 2014 & in 5 days I blew through $150 in credits.
Great post, very informative. I too have access to the SharePoint Farm preview but yet to fire it up. I get allocated about 150 month with my Bizspark subscription so I will see how it goes with the basic setup.
Thanks.