Don't Panic! Preparing Your AEM Projects for Real-World Scale and Complexity

In the realm of AEM Cloud Service implementations, projects that function seamlessly in controlled environments may face unexpected challenges as they scale. Just as seasoned travelers ensure they have their towels before embarking on a journey, it's crucial for AEM teams to be prepared for the complexities of large-scale operations.

We will explore real-world scenarios where projects, initially successful on a small scale, encountered obstacles when subjected to large repositories, high traffic volumes, and concurrent editorial activities. By examining these cases, we aim to highlight prevalent anti-patterns and provide actionable strategies to fortify AEM implementations against scalability issues. Attendees will gain insights into best practices and guardrails that ensure their projects are equipped to thrive in complex, high-demand environments.

Robert

CHR: it was possible before AEMaaCS to get the rata af Dispatcher level. Where can this be found in AEMaaCS environment?

Jörg

it should be provided in CloudManager

Michal

What if a customer is not happy with caching HTML ?

Robert Wunsch

Teach the customer technology . Tell them about the repercussions / issues - no system scales indefinitely. Indefinitely scaling is indefinite costs. And cache what you can, look into SDI (Sling dynamic includes) to cache the elements which can be cached, and only use short ttls for components which need it.

Jörg

It's not about being happy with it, it's about the necessity to do it. Because the latency will kill any user experience. And latency will inevitably happen if you need to send requests from Australia to Frankfurt.

mpetria

there are two valid reasons for not wanting CDN caching, but in general CDN is a must for public sites.
1. is private content - for this you must disable caching for all private resources (Cache-Control: private)
2. you have your own CDN - it is still recommended to have some caching in Adobe Managed CDN, but in theory if you are confident on the caching implemented in your own CDN you could serve Surrogate-Control: no-store to disable Fastly caching. https://experienceleague.adobe.com/en/docs/experience-manager-learn/cloud-service/caching/how-to/disable-caching

Helge

Any recommendations on how to handle custom cdn cache purging? Can we purge by tags with aem’s flavored fastly ?

Konrad

I would rather rely on short TTLs and don't ever go into invalidating CDN

qvecchio

You can do purge by surrogate keys https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/content-delivery/cdn-cache-purge#surrogate-key-purge. But yes, relying on TTLs is recommended

Henry Kuijpers

Normally, even if your content is so frequently changing, it should still be okay to cache it at for at least a few minutes.

Helge

Normally yes but we are talking about user generated content here which is not private content. (Think of comments)

Tad

Scaling question: are there still hard limits being set on horizontal publisher scaling based on contract CR volume? Or can any site potentially scale publishers up massively if you get a protracted 20X traffic spike?

Jörg

There are not hard limits based on contract CR volumes (and never were); we have a default configuration which works for most of the customers. If you let us know that the default is not working for you, we are happily looking into your specific case and adjust the configuration. We will also do that later on when we have found out the hard way, that it is needed.

Tad

Curious. A helpful Adobe Support person once told me, after a customer outage, that the customer was only contracted for a "max of 8 pubs" and wouldn't scale past that unless a new contract limit was negotiated, and I always thought that might not have actually been true. :(

sabdouni

I have seen some ADOBE contracts, there is reaaly CR limits on them

Jörg

CR limits are often parts of contracts. @Tad: That information from support was incorrect.

Yegor Kozlov

Do you have a monkey testing tool to simulate AEM activity ?

Masoud Rozati

re. query string removal: isn't it the best practice to ignore request parameters at Dispatcher, so that they don't even generate any load there?

Jörg

Better ignore them at the CDN level (traffic rules can do that for you)

qvecchio

You can use a CDN request transformation rule (https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/content-delivery/cdn-configuring-traffic#request-transformations) and we even provide an option to automatically remove well-known marketing parameters (`removeMarketingParams: true`)

sabdouni

How to run stress testing/load testing without being throttled by AntiDDOS Infra? Especially if testing injectors are running on a Cloud infrastructure

Jörg

* you need to spread your injectors across the regions where you traffic is coming from.
* do not run these tests from single instances (IPs), so rate limits are not triggering.
* Don't ratelimit these injectors :-) The default Anti-DDOS settings are quite generous, your stress test is unlikely to hit them.

Tomasz Sobczyk

Are you planning to provide any more mature observability tools (like configurable alerts) to customers? Currently we cannot do deep dive monitoring or instrumentation and we cannot use new relic fully either