The Anatomy of Sitecore 9 – Part 1 Introduction

Sitecore used to be a fairly monolithic application: it had the idea of a Content Management Server and (multiple) Content Delivery servers, but conceptually all that has changed with version 9. Sitecore has embraced a microservice-based architectural pattern, and now the various roles and functions of a Sitecore instance are (potentially )separated out into multiple separate sites and applications.

There are now nine Roles in Sitecore:

Four Sitecore roles: Content Delivery, Content Management, Processing, and Reporting.
Five xConnect roles: Search, Collection, Reference Data, Marketing Automation, and Marketing Automation Reporting.

According to Sitecore these Roles are:
Content Delivery
The Content Delivery (CD) role handles requests from visitors across channels, determines which content to serve, and renders output in the relevant format for the channel. This is a role that most people should be very familiar with, (multiple)public facing servers serving content to unauthenticated and authenticated users.

Content Management
The Content Management (CM) role enables authors to create, manage, and publish content. This role is the Edit instance: teams of Editors updating and publishing content, often secured within a company VPN, exposed to authenticated users.

The xDB Processing (Processing) role analyses and aggregates collected data to make into usable data in reporting. This role takes the Sitecore Analytics (User interaction) data and prepares it in real time for further reporting.

The xDB Reporting (Reporting) role retrieves reporting data from various data sources to use in Sitecore reporting applications.

xConnect Search
The xConnect Collection Search service role allows you to search contacts and interactions using the xConnect Client API or another API that consumes the oData service.

xConnect Collection
The xConnect Collection service role performs the following functions:
Receives contacts and interactions, either individually or in a batch.
Allows reading of contact and interaction data by ID or identifier.
Supports data extraction.
The xConnect Collection service can be accessed using the xConnect Client API or another API that consumes the oData service.

xConnect Reference Data
The Reference Data Service role allows you to create or retrieve reference data using the Reference Data Client API. Examples of reference data include event definitions and airport codes.

xConnect Marketing Automation
The Marketing Automation Operations service allows you to manage contact enrollments or register live events using the Marketing Automation Operations API.

xConnect Marketing Automation Reporting
The Marketing Automation Reporting service role allows you to retrieve plan and enrollment statistics using the Marketing Automation Reporting API.

This architecture has implications for the provisioning and deployment of Sitecore: in order to create a working Sitecore instance the different components need to be set up to speak to each other, and in anything other than a Development environment, this interaction needs to take place securely using HTTPS, Certificates and Thumbprints.

The implication of this fact is that in order to install Sitecore 9, it is generally necessary to use either the Sitecore Installation Foundation (SIF) for local or On-Premises installation or the Azure Quickstart Templates and Toolkit for Azure.

One of the first confusing things with Sitecore 9, is the lack of a single zip file containing a vanilla Sitecore site and the three basic Core, Master, Web databases. The databases and the vanilla site is still there, but it is a little concealed in the variety of options that make up the new architecture.