Sitecore XP 9.2 - Scaling with Dedicated CD - Quick Installation [part 2]

Warning: The post here contains the author's own opinions and suggestions. They may not conform with best practices from Sitecore. Apply them at your own risks.

If you have not read part 1, check out the link here first. Otherwise, delve down to the steps below.

1. Install DB server with MS SQL & SOLR

The installation of MS SQL 2016 and SOLR 7.5.0 need no introduction. You can easily find the guide here:

To install SOLR as a service, check out step 5 in here:
https://blogs.perficient.com/2017/10/26/setup-and-basic-preparation-for-sitecore-9-installation/

Assuming that you will use the default port 8983 for installing SOLR in this step (and subsequent steps)

Make sure that when installing MS SQL server, you are installing in mixed authentication mode so you will have SQL admin account to be used at later steps.

2. Install standalone Sitecore role on CD server

Using the guide here, you must install all prerequisites required for a standalone instance except MS SQL. 
If you are installing with Sitecore Installation Assistant, change the SQL server details at this step:
You need to specify the IP address of the DB server, SQL admin account & password that you obtain at step 1. You might also need to specify the port for the IP address as many networks have security restriction to block all the ports and open only ones necessary.

3. Install standalone Sitecore role on CM server

Before repeating step 2 for CM server, delete all the databases created in step 2 so your installation can finish without error.

4. Reconfigure CD & CM server with proper roles and permissions

Reconfigure CD instance

Because at step 3, you have deleted all previously created databases at step 1 and reinstall new databases, you will need to update all connection strings in CD instance to point to new databases. 

You will also need to update the SOLR connection to the SOLR server installed in step 1 instead of the local connection. 

Here are the places that need update:

1. path-to-your-CD-instance\App_Config\ConnectionStrings.config

Update all the SQL connection strings (core, security, master, web, messaging, xdb.marketingautomation, xdb.processing.pools, xdb.referencedata, xdb.processing.tasks, experienceforms, exm.master, reporting) with the connection strings taken from the CM instance

Update the solr.search connection string value from https://localhost:8983/solr to https://your-ip-of-solr-server:8983/solr

2. path-to-your-XConnect-instance\App_Config\ConnectionStrings.config
Update all the SQL connection strings (messaging, processing.engine.storage, reporting, xdb.marketingautomation, xdb.processing.pools, xdb.referencedata, collection) with the connection strings taken from the CM instance

Update the solrCore connection string value from https://localhost:8983/solr/yourproject_xdb to https://your-ip-of-solr-server:8983/solr/yourproject_xdb

3. path-to-your-XConnect-instance\App_Data\jobs\continuous\AutomationEngine\App_Config\ConnectionStrings.config

Update all the SQL connection strings (xdb.marketingautomation, xdb.referencedata, messaging) with the connection strings taken from the CM instance


4. path-to-your-XConnect-instance\App_Data\jobs\continuous\IndexWorker\ConnectionStrings.config

Update the SQL connection string collection with the connection string taken from the CM instance

Update the solrCore connection string value from https://localhost:8983/solr/yourproject_xdb to https://your-ip-of-solr-server:8983/solr/yourproject_xdb

5. path-to-your-XConnect-instance\App_Data\jobs\continuous\ProcessingEngine\App_Config\ConnectionStrings.config

Update all the SQL connection strings (processing.engine.storage, processing.engine.tasks, messaging, reporting) with the connection strings taken from the CM instance

Reconfigure CM instance

Because your CM instance will already have proper SQL connection strings, you only need to update the SOLR connections in CM instance.

Here are the places that need update:

1. path-to-your-CM-instance\App_Config\ConnectionStrings.config

Update the solr.search connection string value from https://localhost:8983/solr to https://your-ip-of-solr-server:8983/solr

2. path-to-your-XConnect-instance\App_Config\ConnectionStrings.config

Update the solrCore connection string value from https://localhost:8983/solr/yourproject_xdb to https://your-ip-of-solr-server:8983/solr/yourproject_xdb

3. path-to-your-XConnect-instance\App_Data\jobs\continuous\IndexWorker\ConnectionStrings.config

Update the solrCore connection string value from https://localhost:8983/solr/yourproject_xdb to https://your-ip-of-solr-server:8983/solr/yourproject_xdb

Securing CD instance

At this point, the configuration for CD instance is not different to the one in CM instance. You will need to make further changes to ensure that the CD instance is secured such as public users cannot access Sitecore backend administration modules. 
Make sure your CM instance is not exposed to public (this is the job of network guys :)

5. Optional Steps

If you have followed all the steps above, you already have a functional and quite secured scaled Sitecore system. Still, there are still something else you can consider doing if you have more time and/or you are the kind of person who do not like loose ends :)
1. Disable analytics on CM role
You may have noticed that XConnect is configured and running on CM instance by default installation. If you do not want to collect analytics data on CM instance even though they are peanuts comparing to CD instance. Here is the guide: https://doc.sitecore.com/developers/90/platform-administration-and-architecture/en/enable-disable-the-xdb-and-the-tracker.html
2. Further enhancing security
Apply all these measure if you can :)

Happy Sitecoring!

Comments

Popular posts from this blog

CI/CD with TeamCity + Sitecore 9.2 + Unicorn

Troubleshooting Sitecore XP 9.2 - Experience Analytics error - Exception System.ArgumentNullException: typeKey should not be null.