In a past article, I listed 27 tips to ensure optimal Sitecore performance; if only it was that simple. The reality of a modern marketing platform is that you will inevitably have peaks and valleys in traffic that are driven by seasonality and campaign activity. The 27 tips are a great place to start, but to move to the next level you need to plan for elasticity. The notion of elasticity is not new, but there are a few Sitecore specific considerations.
More users requires more computing power to service requests and more memory for user specific caches. Adding resources to a virtual host is a great way to manage the requests, but Sitecore can only take advantage if the cache limits have been updated in Sitecore. The prime candidate is the HTML cache size for the website. By default it is only set to 10MB; 100MB or more is more appropriate in our experience. If your virtual machine / cloud provider scales automatically, you’ll need something to trigger the cache size update in Sitecore.
Just a note – adding a new Sitecore server to your production environment does require you having the appropriate licensing.
If you are working with particularly high volume pages, files or images, you’ll want to plan for a Content Delivery Network or explore having your load balancer perform caching of these assets. If this is not an option we’ve also worked with clients to deploy reverse proxy solutions like Apache Squid to serve this function. Just one note – Squid lags on Windows so you may want to consider a Linux powered OS to handle this function.
We have incorporated all of these features and more, in our Keystone Accelerator for Sitecore. If you want to see Keystone in action check out our demo videos.