December 05, 2016
The Sitecore Experience platform supports a wide range of deployment options. In this series we explore these options and the implications to licensing, performance, availability or uptime, business continuity and total cost of ownership. In this first post we cover some of the fundamentals in Sitecore including base requirements and common terms. Unless otherwise noted the concepts in this series are for Sitecore 8.2.
Sitecore is a .NET Web App
Sitecore is a .NET application that has been designed to run in Windows Server’s Internet Information Services (IIS). The administrative interfaces to manage content are accessed via HTTP and HTTPs.
Base level requirements:
- Windows 8, Windows Server 2008 R2+
- Internet Information Services 7+
- Microsoft .NET 4.5.2
There is a single version of the Sitecore software that can be installed into one or more IIS sites. Each instance of Sitecore can then be configured to perform different functions – more on that later. This concept of a single installation or instance of Sitecore is important. An instance is the primary means by which Sitecore licenses the product – number of production and non-production instances.
Database Tier - Content and User Management
The content, security and users are stored in several relational databases:
- Master database: The repository where content is authored. There is only one master database.
- Web database: The repository of approved content - content is published from master to web; the website is served from the web database. A Sitecore solution may have multiple web databases to facilitate distributed servers or preview targets.
- Core database: Configuration of the Sitecore software as well as the user store.
Sitecore supports the following database platforms, choose whichever is best for your organization:
- SQL Server 2012 or 2014
- Oracle Database 11G R2
Database Tier – Analytics, Reporting, Session State
There are several other database tier decisions to be made.
If deploying the full Sitecore Experience Platform and the Experience Database, Sitecore requires:
- Reporting. A relational database that is the result of analytics aggregation and used, as the name implies, for reporting. The same SQL Server, Oracle choice.
- Session State. The session state database tracks all interactions and manages user sessions. Supported options are SQL Server and Mongo.
- Mongo collections. Sitecore xDB requires for Mongo collections to store interactions and profile data.
If you are new to Mongo, it is a NoSQL database technology that started as an open source project. It can also be purchased with commercial support and enhanced security features. For new deployments, Mongo versions supported are 3.2.1+. Sitecore has legacy support for Mongo 2.6, but this version is considered end of life by Mongo and should not be deployed in a new install.
Indexing
Sitecore relies on built-in indexing technology. By default, Sitecore uses Lucene.Net and can be configured to support Solr. In scaled environments, Solr is highly recommended. Solr is Java based and would typically run in Apache / Tomcat, but the choice of Java container is up to you.
Taking Stock of the Solution Components
As you can see from this overview, to deploy a Sitecore solution you will require a range of products. In a development scenario you can install all of these components on a single workstation, but obviously as you move towards production environments, distribution of the workload will become critical.
To summarize, if you want to install a basic one instance development environment of Sitecore you will need an appropriate Windows workstation or server and:
- Install Sitecore in IIS
- Install SQL Server or Oracle to handle content, users and possibly sessions
- Install Mongo to handle analytics and possibly sessions
- Install Apache/Tomcat and Solr to provide indexing
Our personal development workstations at nonlinear to run all of this software are Windows 8 Pro, i7 processor, 16 GB RAM and, 250GB + SSB Dell laptops.
In a production setting, that is a lot of software on a single server or virtual machine. A recommended minimal deploy would look something more like the following diagram with three servers.
In subsequent articles we explore how Sitecore scales.