Clustered server environments

Last updated Friday, February 26, 2016 in Sitecore Experience Platform for Administrator, Developer

A clustered content delivery environment consists of a collection of servers grouped together to improve scalability and performance. Each cluster can contain two or more content delivery instances, each with its own session state server. You can also group clusters together in the same place or spread them across different geographical locations.

In a clustered content delivery environment, the same cluster of web servers serves all the visits for a single contact. This ensures that all interactions have fast access to the current state of the contact. If a single contact opens multiple concurrent sessions from different browsers or devices, the xDB ensures that each session sticks to the same cluster. A contact can only move to another cluster when they end all their current open sessions and start a new one or the session expires.

Content delivery server cluster architecture

You can configure a clustered server environment for content delivery and to improve scalability and performance. For example, to improve performance and enable horizontal scaling of content delivery, you can create multiple content delivery clusters.

A content delivery cluster consists of the following components:

  • Content delivery instances
  • Session state database – to ensure that a contact sticks to the same content delivery cluster, each cluster must have a shared session state server (Microsoft SQL Server or MongoDB).
  • Load balancer – that distributes traffic to the appropriate content delivery instances in the cluster (not shown in the diagram). The load balancer is the public endpoint of the cluster. The DNS name for the load balancer must use the same naming scheme that you use when you configure your clustered server environment.

Two content delivery clusters with two content delivery instances in each cluster:

Content delivery server cluster

Server clusters and session state

Sitecore uses session state for storing information about the current contact interaction, contact state, and any other related data.

  • Private session state collects data on the interactions and the devices used by the contact.
  • Shared session state data includes all data that is unique to a contact and that can be shared across simultaneous sessions, such as contact details and any triggered engagement automation states.

If a contact opens multiple, concurrent sessions from different browsers or devices, the xDB ensures that each contact stays connected to the same server cluster where their interaction originated. A contact can only move from one cluster to another once the active sessions have ended or expired.

Server clusters and hostnames

Content delivery clusters share the same naming scheme, which is closely tied to the server geo-local DNS configuration settings:

  • All server clusters respond to a global hostname that is configured in DNS to resolve to the IP address of the closest cluster. For example, www.sitecore.net, which maps to 4.4.4.4 in Asia and 8.8.8.8 in the United States.
  • Each cluster must have a unique hostname that globally resolves to the cluster's IP address. For example, asia.sitecore.net maps to 4.4.4.4 globally, and us.sitecore.net maps to 8.8.8.8 globally.
Send feedback about the documentation to docsite@sitecore.net.