LibrarySites.Banner

Sitecore XP Development Hardware Recommendations

This blog post presents my recommendations about allocating hardware for developers working with the Sitecore ASP.NET web Content Management System (CMS) and Experience Platform (XP), also called Sitecore 8. Note that while similar concerns apply, application initialization time in production environments may be less important than in development due to less frequent ASP.NET restarts and load balancing, the latter of which can remove instances when appropriate. Hardware requirements in production environments depend on the performance profile of the specific solution under peak load. See also requirements for Sitecore servers and clients in the installation documentation available for your version of Sitecore.

Here I assume that you deploy your Sitecore solution to IIS running on the same workstation on which you run Visual Studio. This should be enough hardware to run relatively small things like SOLR (if you choose that over the default Lucene search engine in Sitecore) on the same machine. If you deploy to separate machines during development, excluding video, you would probably want equivalent hardware on those machines.

The following considerations apply when choosing hardware for a Sitecore development workstation:

  • I/O: Sitecore is relatively I/O intensive, especially with the content database, and especially at startup. Because ASP.NET restarts each time that you deploy your project (which generally means each time that you compile), a fast I/O subsystem can result in less time spent waiting for the application to initialize. I recommend that you get the fastest I/O subsystem that you can afford. Specifically, I recommend solid state hard drives. SSD is probably the most important hardware consideration for Sitecore developers. I also recommend that you use content databases installed on your workstation, typically using Microsoft SQL Server. If you consider a remote database server shared by a team of developers, for both performance and features, I recommend that you instead consider local databases with the Team Development for Sitecore (TDS) product from Hedgehog Development. If you must access content databases over a network, I recommend a very fast network connection from the workstation to the database. If you use the Experience Database (xDB), the speed of the network connection to Mongo should be less important than the speed of the connection to the content databases.
  • RAM: The amount of memory that Sitecore can utilize depends on the specific solution. In 2015, I would recommend at least 16GB for a developer workstation. More memory (almost) never hurts. Sitecore 8 documentation indicates a need for 8GB of RAM, but the software would almost certainly function with less.
  • CPU: While a faster CPU always helps, I do not think slow CPUs are available in new hardware. Except during compilation, application initialization, load testing, and other intensive operations, Sitecore CPU utilization should be relatively low in development environments. I would recommend investing in solid state hard drives and potentially memory over CPU. That being said, the faster your CPU, the better. Sitecore 8 documentation indicates a need for four CPU cores, but the software would almost certainly function with less. On the other hand, if your solution is computationally intensive, you may wish to invest more in CPU.
  • Virtualization: Allocate hardware meeting requirements documented by Sitecore and listed above to any virtualized Sitecore instance. While modern virtualization software and possible configurations can alleviate performance concerns, in general, virtualization does not benefit performance, especially when in the context of I/O (this issue is not specific to Sitecore). Depending on your hardware, virtualization software, and configuration, you may note better performance on physical rather than virtualized hardware. This holds for both the web server and the database server, although the management benefits of virtualization can override performance concerns.
  • Video: For developers, I recommend at least two large monitors. Preferences vary, but I like two with at least 1600xN resolution. More than three monitors seems like overkill, but some developers may be able to fully utilize that much space or more. You need a video hardware subsystem to support the monitors and resolutions that you like.

In general, faster hardware, bigger screens, and higher resolution are always advantages. The faster your hardware, the less time you will spend compiling and waiting for the application to initialize. More and larger screens can help you be more productive (though at some point, more screen space results in wasted resources, and excessive resolutions on undersized screens can lead to visual fatigue). All of that said, I have been running Sitecore on laptops for more than ten years, and I do not think there is any need for an extremely powerful workstation.

If you have additional perspectives about hardware requirements for Sitecore development machines, please comment on this blog post.

Resources

  • Another great post John.   For me, I have noted on development machines that investing in SQL Developer Edition (amongst other tools) seems to be worthwhile, since you can then take more of an advantage of (particularly) memory and (if you are lucky enough) the additional cores beyond 4. It helps a lot when doing the bulk operations we are so often tasked with.   I think this and Sitecore's background processes (event polling / indexing operations) means I wouldn't generally work with just a dual core when developing on Sitecore even though it does work.