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