Create a SharePoint Farm in Windows Azure

15/07/2014

Creating a SharePoint farm in windows azure just got a whole lot easier. During WPC 2014 Microsoft released an update to the preview portal (http://portal.azure.com) that makes it possible to configure a SharePoint farm entirely from the portal. Needless to say I had to try it out.

  1. The first step in creating your SharePoint farm is to jump into the new portal http://portal.azure.com
  2. The click new, and find the SharePoint Server Farm optionazureportal_spfarm
  3. When clicked a new blade will load, that will enable a lot of customization azure_portal_setup_sharepoint_farm
    1. The first four boxes are for naming a resource group, and assigning a user name and password for the domain admin (remember this one).
    2. Then you can configure whether you want high availability (fail-over of all the servers, beware of the bill if you select this). If you are configuring a real production farm with fail-over you are probably better of doing it with powershell, but maybe this feature will fulfill some people’s need.
    3. Next up is the configuration of the individual servers that is gonna make up the farm. Be sure to go through all the configuration options, or at least specify what pricing tier you want for each machine
    4. When you configure the root domain name for you Domain Controller, it is a good idea to remember the forest root domain name, as you will need it later for logging into the machines
    5. Same goes for the user accounts used by the SharePoint serverazure_portal_sharepoint_farm_sharepoint_server
    6. When you are done with the servers it is time to configure storage and network, you don’t have a lot of options here, but make sure that you create the VHDs in the correct storage account, and you can probably do with just selecting the L1 pricing tier (locally redundant storage), if you are just building a dev or demo farm.
      azure_portal_sharepoint_farm_lrs
    7. The final step is to select your subscription and hosting location
  4. When you click create you have to be patient as the deployment of the network and machines will take 30 to 60 minutes.

Configuration for a high performant dev environment

I mostly see this new features as a tool for SharePoint developers, that don’t want to spend too much time on creating their enviroment, as well as being really useful for quickly spinning up demo/test environments. The configuration I chose to go with for my cloud dev environment is the following.

Machine Pricing Tier RAM Cores Price/Hour (Pay-As-You-Go) Price/Hour (MSDN)
Domain Controller Basic A1 1.75 1 $0.075 $0.047
SQL Server Standard A5 14 2 $2.10 $0.248
SharePoint Server Standard A5 14 2 $0.30 $0.248

With these prices you will be able to run your environment for around 276 hours, or more than 30 days if it is only online 8 hours a day, on a Visual Studio Ultimate MSDN subscription with $150 Azure Credit (MSDN subscribers don’t pay extra for SQL servers and only pay linux prices for the VMs) source. If you are not using a MSDN subscription, your price will obviously be a lot higher.

You don’t get to select what image your machines have, so the SharePoint server will be installed with Windows Server 2012 Datacenter while the Domain Controller will be installed with Windows Server 2012 R2 Datacenter.

The SQL server is running Windows Server 2012 R2 Datacenter, and have SQL Server 2014 Enterprise installed, which is the reason for the hefty price tag.

Here’s the systeminfo for the SharePoint server

Host Name: SJKPSPFARM-SP
OS Name: Microsoft Windows Server 2012 Datacenter
OS Version: 6.2.9200 N/A Build 9200
OS Manufacturer: Microsoft Corporation
OS Configuration: Member Server
OS Build Type: Multiprocessor Free
Registered Owner:
Registered Organization:
Product ID: 00184-90000-00001-AA620
Original Install Date: 7/15/2014, 6:56:05 AM
System Boot Time: 7/15/2014, 5:54:02 PM
System Manufacturer: Microsoft Corporation
System Model: Virtual Machine
System Type: x64-based PC
Processor(s): 1 Processor(s) Installed.
[01]: Intel64 Family 6 Model 45 Stepping 7 GenuineInt
el ~2200 Mhz
BIOS Version: American Megatrends Inc. 090006 , 5/23/2012
Windows Directory: C:\Windows
System Directory: C:\Windows\system32
Boot Device: \Device\HarddiskVolume3
System Locale: en-us;English (United States)
Input Locale: en-us;English (United States)
Time Zone: (UTC) Coordinated Universal Time
Total Physical Memory: 14,336 MB
Available Physical Memory: 11,197 MB
Virtual Memory: Max Size: 19,712 MB
Virtual Memory: Available: 15,297 MB
Virtual Memory: In Use: 4,415 MB
Page File Location(s): D:\pagefile.sys
Domain: sjkp.dk
Logon Server: \\SJKPSPFARM-DC
Hotfix(s): 114 Hotfix(s) Installed.
[01]: KB2799888
[02]: KB2737084
[03]: KB2742614
[04]: KB2750149
[05]: KB2756872
[06]: KB2757638
[07]: KB2758246
[08]: KB2761094
[09]: KB2764870
[10]: KB2765809
[11]: KB2769034
[12]: KB2769165
[13]: KB2770660
[14]: KB2770917
[15]: KB2777166
[16]: KB2779768
[17]: KB2780342
[18]: KB2784160
[19]: KB2785094
[20]: KB2785220
[21]: KB2789649
[22]: KB2795944
[23]: KB2798162
[24]: KB2800033
[25]: KB2800088
[26]: KB2802618
[27]: KB2803676
[28]: KB2805222
[29]: KB2805227
[30]: KB2805966
[31]: KB2807986
[32]: KB2808679
[33]: KB2811660
[34]: KB2812829
[35]: KB2813430
[36]: KB2815769
[37]: KB2822241
[38]: KB2823516
[39]: KB2829254
[40]: KB2829361
[41]: KB2830290
[42]: KB2835361
[43]: KB2836988
[44]: KB2839894
[45]: KB2840632
[46]: KB2843630
[47]: KB2845533
[48]: KB2847311
[49]: KB2849470
[50]: KB2849568
[51]: KB2850674
[52]: KB2851234
[53]: KB2853915
[54]: KB2855336
[55]: KB2856758
[56]: KB2861702
[57]: KB2862073
[58]: KB2862152
[59]: KB2862330
[60]: KB2862335
[61]: KB2862768
[62]: KB2862966
[63]: KB2862973
[64]: KB2863725
[65]: KB2864058
[66]: KB2864202
[67]: KB2866029
[68]: KB2868038
[69]: KB2868626
[70]: KB2869628
[71]: KB2871389
[72]: KB2871690
[73]: KB2871777
[74]: KB2871997
[75]: KB2875783
[76]: KB2876415
[77]: KB2877211
[78]: KB2877213
[79]: KB2881468
[80]: KB2882780
[81]: KB2883201
[82]: KB2884256
[83]: KB2887069
[84]: KB2889784
[85]: KB2891804
[86]: KB2892074
[87]: KB2893294
[88]: KB2893519
[89]: KB2896496
[90]: KB2898865
[91]: KB2898870
[92]: KB2900986
[93]: KB2901119
[94]: KB2901127
[95]: KB2903938
[96]: KB2904266
[97]: KB2909210
[98]: KB2911101
[99]: KB2912390
[100]: KB2913152
[101]: KB2922229
[102]: KB2926765
[103]: KB2928678
[104]: KB2929755
[105]: KB2930275
[106]: KB2931367
[107]: KB2934016
[108]: KB2939576
[109]: KB2955163
[110]: KB2956037
[111]: KB2957189
[112]: KB2957689
[113]: KB2964736
[114]: KB2965788
Network Card(s): 1 NIC(s) Installed.
[01]: Microsoft Hyper-V Network Adapter
Connection Name: Ethernet 2
DHCP Enabled: Yes
DHCP Server: 168.63.129.16
IP address(es)
[01]: 10.0.0.36
[02]: fe80::493d:5855:8ca2:9a88
Hyper-V Requirements: A hypervisor has been detected. Features required for
Hyper-V will not be displayed.

Disk configuration

When you setup the virtual machines, you are not able to specify what disk sizes and configuration you get. But the default configuration is pretty flexible. On all machines you get 126GB for the C: drive.
On the SharePoint Server you have 1TB on a data disk F: that is not used for anything. And on the SQL server you get two disks F: and G: that are both 1TB each. The F: drive is configured as the SQL data disk, while the G: drive is used as log disk.

If you are worried that you are gonna pay for all this disk space allocated for you, that you are not gonna use, then remember that in Azure you are only billed for the amount of space that you actually use on the VHDs, all the zero-bytes are not billed. To free up unused space after deleting big files you can run the following powershell script

Optimize-Volume -DriveLetter F -ReTrim

The disk defragment tool that is configured to run once a week on the disks will do the same for you.
optimize_drives_in_azure
But if you are using your machines development they might be shutdown for long periods of time so it might be a good idea to run the ReTrim command before shutting them down.

The SharePoint Farm Configuration

The SharePoint farm is updated with Service Pack 1, so the build version are 15.0.4569.1000. But other than that the farm configuration is pretty minimal, and it will require some effort before you have anything that resemble a real SharePoint farm.

Here is a screenshot of the preinstalled server services
services_on_server

And here is a look at our two lonely service applications that is preconfigured on the server.
services_applications

Everything is installed in the the default locations, so if you are used to something fancy here, then this is not the configuration tool for you.

Other than that you get a single application pool with a site collection with an empty site, and that is pretty much it.

One nice little touch is that the SharePoint site is accessible from the WWW per default on .cloudapp.net without you having to configure anything at all.

Conclusion

So obviously the GUI farm configuration is limited, but to me it seems like a pretty good fit for creating dev/test/demo enviroments. I just played around with some open source PowerShell scripts for setting up a similar farm, and using the GUI is WAY easier and will definately help drive Azure adoptation for SharePoint devs.