1. Deploying with Sitecore on Azure

Configure Sitecore for xDB on Azure

Version:

You can configure an on-premise Sitecore environment for use with a self-managed Experience Database (xDB) Azure deployment; that is, an Azure-based, self-supported xDB server. According to the Sitecore xDB topology, you can deploy the following roles to the Cloud:

  • Processing

  • Reporting

  • XConnect Collection

  • XConnect Collection Search

  • XConnect Reference Data

  • Marketing Automation Operations

  • Marketing Automation Reporting

You can use xDB in combination with on-premise Sitecore XM installation guide to provide the Experience Database features in the Cloud. Refer to the Sitecore Experience Platform installation guide and the Sitecore Azure deployment guide for the correct connection strings between environments, and to prepare the correct client certificate configuration.

Prepare to configure Sitecore for xDB on Azure

Before you configure Sitecore for xDB Cloud, you must:

  • Deploy the Sitecore Identity Server, Content Management (CM), and Content Delivery (CD) roles according to the Sitecore Experience Platform installation guide.

    Important

    You must use the XP Scaled packages to install the CM and CD roles as the 9.1 or later XM Scaled packages do not include the binaries and configuration files required to run xDB.

  • Create and install a Client Authentication Certificate by following the steps in the Sitecore Experience Platform installation guideProduction Environment SetupSetting up Client Certificates, (SIF does this automatically).

  • Decide on a topology that suits you best, choose either the xDB Single or xDB scaled topology for Azure.

  • Install the full XP, then to remove all other roles, follow the instructions in Clean up roles.

To ensure your Sitecore instance(s) have access to the Client Authentication Certificate:

  1. In the Control panel, Administrative toolsCertificate Manager, open the certificate.

  2. Right-click the certificate file, then click: All TasksManage private keys, and then click Add.

  3. In the pop-up dialog, in the From this location field, select your local computer.

  4. Enter the type object names in the following format:

    • If you are running Sitecore as an App Pool: IIS AppPool\<Instance name>

    • If you are running Sitecore as a Network Service: provide read access to Network Service

  5. On the Security tab, select your group or user name and select the Allow check box for read-access.

Configure on-premise Sitecore roles

To configure the on-premise Sitecore roles, you must set up the connection strings and patch configuration files.

Note

Do not make changes directly to the configuration files. Instead, you must create a patch file that performs the required changes during run time.

The XM Content Management role

  1. Append xDB connections to the ConnectionStrings.config file. When you installed the CM role using the XP Scaled packages, the xDB connection strings were included and are therefore already present. This means you must only ensure that the values are correct.

    <add name="xconnect.collection" connectionString="https://XConnectCollectionURL"/>
    <add name="xconnect.collection.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue=CertificateThumbprint" />
    <add name="xdb.referencedata" connectionString="<XdbRefDataDBConnectionString>"/>
    <add name="xdb.referencedata.client" connectionString="https://XConnectRefDataUrl" />
    <add name="xdb.referencedata.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" />
    <add name="reporting.apikey" connectionString="XdbReportingAPIKey" />
    <add name="reporting" connectionString="<XdbReportingDBConnectionString>" />
    <add name="xdb.marketingautomation.reporting.client" connectionString="https://XConnectAutomationReporting"/>
    <add name="xdb.marketingautomation.reporting.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" />
    <add name="xdb.marketingautomation.operations.client" connectionString="https://XConnectAutomationOperations" />
    <add name="xdb.marketingautomation.operations.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue=CertificateThumbprint " />
    <add name="sitecore.reporting.client" connectionString="https://CortexReporting"/>
    <add name="sitecore.reporting.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" />
  2. To set up a connection to the Processing and Reporting servers, open the \App_Config\Sitecore\Marketing.xDB\Sitecore.Xdb.Remote.Client.config file, and set the serviceUrl parameter for the Reporting and Processing nodes to point to the URLs of the Reporting and Processing services that are deployed as a part of xDB respectively.

The XM Content Delivery role

Append the xDB connections to the ConnectionStrings.config file. When you installed the CD role using the XP Scaled packages, the xDB connection strings were included and are therefore already present. This means you must only ensure that the values are correct.

<add name="xconnect.collection" connectionString="https://XConnectCollection" />
<add name="xconnect.collection.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue=CertificateThumbprint" />
<add name="xdb.referencedata.client" connectionString="https://XConnectRefDataUrl" />
<add name="xdb.referencedata.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" />
<add name="xdb.marketingautomation.reporting.client" connectionString="https://XConnectAutomationReporting"/>
<add name="xdb.marketingautomation.reporting.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" />
<add name="xdb.marketingautomation.operations.client" connectionString="https://XConnectAutomationOperations" />
<add name="xdb.marketingautomation.operations.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue=CertificateThumbprint " />
Note

The Reporting API Key has a unique value, for example, a GUID, that is used for authentication when communicating from the CM role to the Reporting Web App. This is called a Certificate Thumbprint value. You must use the same value for xDB deployment and the CM connection string.

Turn off CMS-only mode

To turn off CMS-only mode for both the CM and CD roles:

  • Open the \App_Config\Sitecore\Marketing.xDB\Sitecore.Xdb.config file, set the Xdb.Enabled and Xdb.Tracking.Enabled settings to true. For example:

          <setting name="Xdb.Enabled" value="true" />
          <setting name="Xdb.Tracking.Enabled" value="true" />

Clean up roles

To clean up roles that are not CD, CM, or Identity Server,

  1. Stop and remove the following IIS websites:

    • collection

    • ma

    • mareporting

    • prc

    • proccessingEngine

    • refdata

    • rep

    • reporting

    • search

  2. Remove the following databases:

    • MarketingAutomation

    • Processing.Pools

    • Processing.Tasks

    • ProcessingEngineStorage

    • ProcessingEngineTasks

    • ReferenceData

    • Reporting

    • Xdb.Collection.Shard0

    • Xdb.Collection.Shard1

    • Xdb.Collection.ShardMapManager

If you have suggestions for improving this article, let us know!