Sitecore 9.1 Hardware Requirements – Notes

Easy scenario … Azure PaaS

These days most of the customers decide to use Azure PaaS to host their production and non-production Sitecore environments because they are easy to maintain and cost efficient.   Sitecore provides also own recommendations which define stricly Azure resources which should be used for defined amount of traffic. Check those recommendations here:

https://kb.sitecore.net/articles/043375

Thanks to those recommendations, Solution Architects responsible for architecture of final solution can feel safe – you know … ‘it has been recommended by Sitecore’.

Not so easy scenario … On-Premise

And now … you are Solution Architect and you customer cannot use cloud solution … what to do, where to start?

via GIPHY

The most obvious answer which comes in such case to the head is : “check documentation”.

I did that and below I will share what I found and what can be useful – maybe it will save your time and for sure will let me to remember what I found. In few places I assumed that we can try to use Sitecore’s Azure recommendations to calculate hardware requirements for VMs/Dedicated Servers.

Hardware

What I found also in documentation is following text:

The recommended hardware requirements are for running the software on a single computer. For more information about running Sitecore on different kinds of hardware, consult your Sitecore partner or technical sales representative.

In case when you are working on the architecture for new Sitecore’s customer (or you are in the up-selling process) you can/should contact Sitecore Account Manager to get some help from their side – but remember – do not expect that someone will do your job.

Software requirements and configuration

When I was reading the documentation to find information about hardware requirements I found many important texts about software requirements and configuration. Please check them below:

  • All the servers must have set the same time – it is critical because, in case of different time set on the servers, aggregation results and stats will display incorrect data
  • If you plan to use one or more processing, dedicated publishing, and/or indexing servers that do not handle requests, you must use Application Initialization (https://docs.microsoft.com/en-us/iis/configuration/system.webServer/applicationInitialization/) to successfully start Sitecore after you recycle the application pool. If you do not do this, Sitecore will not launch and its application pool can shut down due to inactivity.
  • You must enable the Transport Layer Security (TLS) protocol version 1.2 on all of your Sitecore XP CM and Dedicated Dispatch servers (DDS) (https://www.microsoft.com/en-us/download/details.aspx?id=55266)
  • You must apply any available updates to the .NET Framework on every Sitecore installation
  • Sitecore XP 9.1.0 does not currently support Oracle databases for the Experience Database (xDB)
  • Sitecore XP 9.1.0 does not support the MMAPv1 storage engine because it does not support retryable writes. = replication for Mongo is not available.
  • Lucene only supports Content Search and does not support xConnect
  • IIS 10.0 is a must
  • Server with Identity Server must have installed .NET Core 2.1.3 Windows Hosting Module
  • .NET Framework 4.7.1 or later installed
  • Microsoft SQL Server 2017, 2016 SP2 (Minimum for XP), Microsoft SQL Server 2014 SP2 (Minimum for XM)

Client’s device requirements

From time to time someone can ask you also about the setup of client’s devices. So here you are:

  • Browsers compatibility : https://kb.sitecore.net/articles/087164
  • Processor: Intel Pentium 4, 2GHz or faster processor
  • RAM: 512 MB minimum, 1GB – recommended
  • TCP/IP connection at 512Kbps or faster to the Sitecore XP host
  • 1024 x 768 or greater screen resolution required for advanced operations
  • You do not have to install any additional software on the Sitecore XP clients that access Sitecore XP servers

Diagrams of architecture – examples

Alright, you know already what I found. I hope you found something interesting for you.

The question is – how to build architecture based on data from previous paragraphs? That is hard – you probably still  may have a feeling that we do not know enough to do that.

The first thing which I had checked before I started diagram with the servers was the diagram of database connections to check relations. Result of that check is available in my previous blog post: “All (almost) connections to databases in Sitecore 9.1“.

I recommend also to download and checked packages prepared by Sitecore in the “Download options for On Premise deployment” on download page https://dev.sitecore.net/Downloads/Sitecore_Experience_Platform/91/Sitecore_Experience_Platform_91_Initial_Release.aspx

When you unzip the packages you will find the smaller packages with configuration for all available nodes in the downloaded file.

After all that I was able to draw the diagrams which I also share with you – as maybe they will help someone.

WARNING: I am sharing that as an example – your final architecture can be different because of the different requirements of your customer – do not treat those diagrams as ‘the one and only correct’ architecture.

The first one is a diagram for standard Sitecore XP environment (click the image to open it in new tab – bigger size):

The second one is a diagram for Sitecore XP with JSS environment (click the image to open it in new tab – bigger size):


Summary

Basically that is all what I wanted to write today. If you would like to add something – please use comments section or find me on slack/twitter.

If you seek for tool to build own diagrams similar to those prepared by me – I recommend to check ‘draw.io’ tool available via Google Drive.

How to add https/ssl support to Sitecore 9.1 local instance?

I noticed that accidentally that by default CM application uses http not https – at least when we use installation scripts for on-premise XP0 topology.

Because I wanted to add https to my website I asked myself – “how can I do that EASILY?” I do not know how about you – but I hate to play with certificates on my local machine – very often it means many lost hours which I could spend on development of new features.

To achieve that I checked how Sitecore create and install certificates inside their scripts and I found the following task:

 Invoke-AddWebFeatureSSLTask

It took me few minutes to find final list of attributes which should be set to add certificate acceptable by services like identity server or xconnect. Final version is here:

Invoke-AddWebFeatureSSLTask -Hostname sc910.sc -SiteName sc910.sc -Port 443 -ClientCertLocation LocalMachine -OutputDirectory "C:\certificates" -RootDnsName "DO_NOT_TRUST_SitecoreRootCert" -RootCertName "root-authority"

HostName and SiteName should be values used by your website (check it in IIS configuration if you are not sure). Output directory is a place where you store your certificates. The rest of the parameters I would leave unchanged because they use default values from Sitecore’s installation scripts.

As a result of this task you should see:

  • new certificate file
  • new certificate registered in IIS
  • new binding added to your website

Because Identity Server uses http by default – please remember to update its configuration. If you do not do that – you will not be able to log in into Sitecore instance.
More details about that you will find here.