Auto-scaling support
Xperience projects can distribute computing among multiple applications. Each application increases the number of requests the project can handle, allowing you to scale performance as necessary. You can also use this feature to increase availability – if one of the servers hosting the project stops working, the other servers ensure the project continues running normally.
Auto-scaling ensures the following configuration and data is automatically synchronized between all applications:
- cached content and object data
- physical files uploaded to media libraries
The following image illustrates the structure of a scaled environment:
If you update a page or upload a file using server 192.168.1.2, the other servers usually wouldn’t know about this change. However, the auto-scaling feature ensures all servers are notified and perform an appropriate action in response – clearing the cache or copying the file to their local file system in this case. This is because all auto-scaled instances are connected to the same project database, which is used by Xperience to store and retrieve the necessary synchronization metadata.
Scale Xperience applications
SaaS environment
For projects deployed to the SaaS environment, no configuration is necessary. The number of available instances depends on your license tier. When the load increases to peak levels in the production environment, an additional instance is temporarily added to ensure load balancing. One auto-scaling instance is available across all tiers. If more instances are required, they can be purchased through a custom service plan.
Self-managed cloud hosting
Xperience auto-scaling is also compatible with other third-party cloud hosting providers, such as Microsoft Azure, that provide their own auto-scaling solutions. Deploy the project to Azure Web Apps or Azure Virtual Machines as you would any other application and use the scaling functionality inside Azure Portal.
Self-managed on-premise hosting
For self-managed projects, auto-scaling is enabled by connecting all running applications to the same database.
- Create separate copies of your Xperience application.
- Open an application’s configuration file (appsettings.json by default).
- Check that
CMSConnectionString
points to the same database for all applications. - Deploy and run all applications.
Xperience automatically recognizes all running applications connected to the project’s database and synchronizes the necessary information between them.