There are lot of developer platforms being moved to the Azure and other cloud platforms considering the many capabilities and benefits it has. In this article, I will be writing about how to setup a SharePoint development environment to a whole development team. This is with experience and I will be focusing considering a combination of following SharePoint Server roles as a developer environment.
- A shared domain controller
- A shared database server
- A shared workflow manager farm
- Non-Shared SharePoint Application Server
A descriptive configuration for each server role is as follows. A complete list of virtual machines along with there pricing and capabilities is available at the Azure Virtual Machine pricing page here. When selecting the virtual machines, please do consider about the CPU, RAM and the number of cores, but not the size of the hard disk. It is mainly because the disk space is something that can be attached and increased.
I will be mainly using the A series - Standard tier machines as they do suffice with the requirements for SharePoint development environment machines.
Shared Domain Controller
The domain controller is the least resource consumptive server role in a SharePoint environment. But it is crucial that you make sure its availability as well. We can simply go with an A1 instance. It has the following configuration.
- 1 Core
- 1.75 GB RAM
- 0.09 USD per hour (Can differ with the region)
Having a failover cluster will make sure the reliability of the domain controller depending on your requirement. But so far we work with a single domain controller and have not faced any issues.
Also consider attaching a new disk and have the domain controller database files stored there other than C drive or the temporary disk (D drive).
Shared Database Server
Given we will be having a Shared Database Server, the memory requirements increase with the number of developers. When the database server is shared, you will have to create separate SQL Server instances to each SharePoint farm (each developer). Therefore it would be better make the selection based on the number of developers.
When we had 3 developers we went with an A5 instances and had to increase up to A6 with the growth of the development team. A5 and A6 instance configurations are as follows.
- 2 Cores
- 14 GB RAM
- 0.32 USD per hour (Can differ with the region)
- 4 Cores
- 28 GB RAM
- 0.64 USD per hour (Can differ with the region)
Having a Shared Database Server can make things manageable as well as cost effective many times. But it is associated with certain risks. So in such cases you can ensure Always On availability within SQL server and have another server within a single Azure cloud service. Having multiple instances within a single cloud service ensures the availability in 2 ways.
Firstly it is at the SQL Server database level and secondly its with the SLA assurance by Microsoft by making the service up at 99.9% throughout the year. Which means it can be maximum 4.38 hours an year.
Also make sure the database files are stored in a separate disk attached to the virtual machine.
Configuring the Workflow Manager and SharePoint Servers will be discussed in the next article.