Question

We're planning to introduce DMS to our customer's Sitecore installation. It's a rather popular site in our country and we have to use proxy caching server (it's Nginx in this case) to make it high-traffic-proof.

However, as far as we know, it's not possible to use all the DMS features with caching proxy enabled - for example personalization of content - if it gets cached it won't be personalized.

Is there a way to make use of all the DMS features with proxy cache turned on? If not, how do you handle this problem for high-traffic sites - is it buying more Content Delivery servers to carry the load, or extending current server with better hardware (RAM, CPU, bandwidth)?

Was it helpful?

Solution

You might try moving away from your proxy caching for some pages, or even all.

  • There's no reason not to use a CDN for static assets and media library assets, so stick with that
  • Leverage Sitecore's built-in html cache for sublayouts/renderings - there are quite a few options for caching
  • Use Sitecore's Debug feature to track down the slowest components on your site
  • Consider using indexes instead of doing "fast" or Sitecore queries
  • Don't do descendants query "//*" (I often see this when calculating selected state for navigation - hint: go the other way, calculate the ancestors of the current page)

@jammykam wrote an excellent answer on this over here.

John West wrote a great blog post on this also, though a bit older.

Good luck!

OTHER TIPS

I've been wondering about this myself.

I have been thinking of implementing an ajax web service that: - talks to the DMS and returns JSON - allows you to render the personalised components client side - allows you to trigger anlaytics events

I have been googling around and I haven't found anyone that has done it and published the information yet. The only place I have found something similar is actually in the mobile sdk, but I haven't had a chance to delve into it yet.

I have also not been able to use proxy server caching and DMS together successfully. For extremely high loads, I have recommended to clients to follow the standard optimization and scaling guidelines, especially architecting for proper Sitecore sublayout and layout caching for as much of the site as possible. With that caching done, follow it up by distributing across multiple Content Delivery nodes with load balancing to help support high volume with personalization at the same time.

I've heard that other CMS's with personalization use a javascript approach to load the personalized content on the client-side, but I would be worried about losing track of the analytics data that is gathered when personalized content is loaded and interacted with.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top