Scaling Content Delivery
You can scale Content Delivery by load balancing; by installing separate server roles on separate machines; by running the Content Deployer multi-threaded on one machine; by defining different publish behavior for staging sites or live sites; and by publishing different content to different servers based on BluePrinting.
- Content Delivery microservice load balancing
The optimal ratio of Presentation Servers to microservices depends on the specific load you place on your setup. Load testing may reveal that your Presentation Servers are putting too high of a stress on your Content Delivery microservices. If this is the case, then, depending on the specific type of microservice being used, you may be able to relieve the stress by running multiple microservice instances side by side and inserting a load balancer in between. - Content Delivery Presentation Server load balancing
Implement load balancing by replicating your Web site and implementing a load balancer on top of the Web sites. - Scaling out Content Delivery Server Roles to separate machines
Each of the Server Roles can be installed on a separate machine to improve Content Delivery performance. Especially the Content Deployer, which typically carries most of the performance burden, is best installed on a separate machine. In such a scaled-out scenario, if you install a standalone microservice on its own machine, ensure that its PowerShell installation script does not include a dependency on the Discovery Service. - Scaling out the Content Deployer
You can make the Content Deployer worker scalable if you store temporary incoming content in a Redis database, and use a JMS Content Deployer queue. All worker instances can then check the queue and pick up content from the database. - Multi-threaded Content Deployer
In addition to installing the Content Deployer on a dedicated machine, you can also make your Content Deployer multi-threaded. You configure the number of threads in the Content Deployer configuration. If you choose to do this, you may need to increase the database pool size(s) in your Storage Layer configuration file, cd_storage_conf.xml. The pool size of a database, as well as detailed management of the pool, is configured in itsStorageelement, specifically in thePoolchild element. - Content Delivery search feature scaling
The Content Delivery search feature can be scaled out in various ways, depending on your type of environment. - Use of parameters in configuration files
To make the deployment of Content Delivery software in different environments easier, most Content Delivery configuration files allow you to specify configuration values in the form of a parameter, rather than in the form of a hardcoded literal string. Content Delivery determines the actual configuration value at runtime by resolving the parameter using system settings. This allows you to reuse the same configuration files in different environments without having to modify those configuration files. The software behaves differently depending on the system settings in the specific environment.