AEM best practices for critical areas
- AEM architecture and design
- Choosing the right storage architecture for your Adobe Experience Manager (AEM) deployment will help your system’s performance and reliability. The basic rule is that TarMK is designed for performance, while MongoMK is used for scalability.
- Develop a SOLID architecture. Compliance with SOLID principles should result in a system that has a strict separation of concerns.
- It is important to keep AEM platform upgrades in mind while designing solutions, especially when you plan to extend OOTB behaviors. Always apply customizations in the /apps directory and either overlay on top of the corresponding nodes in the /libs directory or use sling:resourceSuperType to extend the out of the box behavior. While some modifications may be needed to support a new AEM version, the new version should not overwrite your customizations if you’re following this practice.
AEM performance and scalability
- Implement and execute load and stress tests that simulate realistic scenarios. This helps demonstrate whether the AEM application, architecture, and installation will perform well once it is live in a production environment.
- Tune Sling Job Queues to prevent an overall performance impact and high Java heap consumption.
- Create custom OAK indexes for all frequently used search queries. For most deployments, Adobe recommends using the Lucene Index.
- Make as many requests cacheable by CDN/Dispatcher as possible, ensuring high performance.
AEM maintenance and support
- Use specific tools and/or endpoints for monitoring metrics in AEM, the JVM, and the OS to retrieve information about the system’s health and to find bottlenecks.
- Configure maintenance tasks by using the Maintenance Card (Tools > Operations > Maintenance).
- Use the Health Report system that provides information on the health of an AEM instance through Sling Health Checks. It offers measurements and thresholds of certain configurable counters and in some cases will offer information on how to resolve the issue.
- Following the principle of least privileges, it’s recommended that every repository access is done by using the session bound to the user request and proper ACLs.
- Avoid assigning access rights on a user-by-user basis. Always update the Default Users and Groups immediately after installation to help prevent any security issues.
- Protect against Cross-Site Scripting (XSS). Adapt the OOTB AntiSamy configuration file to your own security needs by overlaying the configuration file.
- Use the CSRF Protection Framework and configure Dispatcher to prevent CSRF attacks.
- Complete the Dispatcher Security Checklist in accordance with the official Dispatcher configuration guide.
AEM customer experience and content strategy
- When possible, everything should be stored in the repository rather than on separate third-party data sources like databases. This applies to authored content and binary data like images, code, and configurations.
- Follow David’s model and use the “content model first” design principle.
- Use the framework of tools provided by AEM for authoring targeted content and presenting personalized experiences. One common way to deliver personalized experiences is to use AEM Experience Fragments and Adobe Target.
- Organize assets using tags. Tags, as a metadata, allow you to easily search assets, create collections using the search results, boost search ranking for some assets, and leverage AI algorithms of Adobe Sensei for asset discovery.
Want to learn more
about Exadel Marketing Technology Practice?
- Include integration tests in your automated testing process. Integration tests are often undeservedly disregarded, however they allow you to cover unobvious testing cases such as validation of Dispatcher setup and a basic replication workflow.
- Automate the translation of page content, assets, and user-generated content by integrating translation service providers with AEM and creating translation projects.
Aem best practices to deliver the ultimate user experience: key takeaway
Keep these AEM best practices in mind to develop a solid AEM architecture, solve your AEM performance issues, provide well-organized and secure AEM maintenance and support, and ultimately deliver successful AEM projects. These tips will help you build a better AEM customer experience and content strategy.