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:
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?
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.
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):
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.