adobe experience manager: top 5 common pitfalls to avoid · 2020-06-19 · © 2018 adobe systems...
TRANSCRIPT
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Adobe Experience Manager: Top 5 Common Pitfalls to avoid
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Speakers
2
Chadwick ChengLead Technical Support Consultant -AEM
Aswinkumar LoganathanAEM Cloud Engineer
Zoran NikolovskiAEM Cloud Engineer
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Guest Speaker
3
Richard MouldingeCommerce Practice Manager
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Adobe Experience Cloud
4
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Customer Challenges
5
Maintenance Architecture Configuration
Tuning Upgrade Performance Testing
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Agenda
Tuning Maintenance Performance Security Upgrade Customer Story
6
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
TuningZoran Nikolovski
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Apache Oak – Node Storage
8
JCR / Oak API
Oak Core
Node StorageDatabase / Persistence
API
Two Node Store OptionsSegment - Tar Document - MongoDB
AEM AEM 1 AEM 2
MongoDBPrimary
MongoDBSecondary
reads /writes
reads / writes
Tar
Segment
MongoDBSecondary
Document
ApacheOak
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Optimize AEM Architecture – Maximize Performance
Key Points to consider: External Datastore (File/S3/Azure)
SegmentMK (TarMK) : for Performance DocumentMK (MongoMK) : for High Availability/Horizontal Scalability
For more information:https://docs.adobe.com/docs/en/aem/6-3/deploy/platform/data-store-config.htmlhttps://helpx.adobe.com/experience-manager/6-3/sites/deploying/using/recommended-deploys.html
9
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Tuning your OAK repository
Create custom indexes for frequently used search queries set includedPaths to restrict the index to only certain content paths
Prevent expansive queries from overloading the system. -Doak.queryLimitInMemory=500000
-Doak.queryLimitReads=100000
-Dupdate.limit=250000 (only for DocumentNodeStore, eg. MongoMK, RDBMK)
For more information:
http://jackrabbit.apache.org/oak/docs/query/query.html#Slow_Queries_and_Read_Limitshttp://aemfaq.blogspot.com/2014/08/oak-query-log-file-analyzer-tool.htmlhttp://docs.adobe.com/docs/en/aem/6-0/deploy/upgrade/queries-and-indexing.html#Configuring%20the%20indexes
10
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AEM Assets Optimization
Key points to consider: Replication Binary-less Replication – Large Asset Implementations
Workflows Transient Workflows
'or' Offloading
Network & Storage NodeStore on High Performance SSD
For more information:https://helpx.adobe.com/experience-manager/6-3/assets/using/performance-tuning-guidelines.htmlhttps://helpx.adobe.com/experience-manager/6-3/assets/using/best-practices-for-assets.html
11
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Optimize Assets Replication
Binary-less replication – save storage space and improve performance
12
AuthorInstance Publish
Instances
DataStore(File/S3/Azure)
Replicationof nodes, excluding
binary files
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Optimize Asset Workflows
Configure Granite Workflow Queue Reduce max retries - 3 Set max parallel jobs – ½ # of CPU cores
Disable features that aren’t required Binary Text extraction Sub-asset generation Metadata writeback
Enable Transient Workflows Or Offload Asset Workflows to another AEM instance
Official documentationhttps://docs.adobe.com/docs/en/aem/6-3/administer/content/assets/best-practices-for-assets/performance-tuning-guidelines.html
13
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Optimize Network and Storage for Assets
Tar/MongoDB - High performance SSD storage Store the index cache on a separate drive Configure java temp folder – RAM drive Allocate sufficient network bandwidth – MongoDB Use https for transfer – avoid slowdown due to firewalls
14
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
New Asset Workflow Processes
Adobe’s Image Transcoding Library Core Image handling functions (Encoding , Transcoding , Image resizing , etc) Advantages over other 3rd party libs (performance, scalability and quality)
PDF Rasterizer Accurate Output Selective & Quality thumbnails Faster processing - Less memory usage
Both supported in AEM 6.3 and 6.4 Both compatible with Offloading and Transient Workflow
For more information:https://helpx.adobe.com/experience-manager/6-3/assets/using/imaging-transcoding-library.htmlhttps://helpx.adobe.com/experience-manager/6-3/assets/using/aem-pdf-rasterizer.html
15
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Maintenance
Chadwick Cheng
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AEM Maintenance
For more information:https://helpx.adobe.com/experience-manager/kb/AEM6-Maintenance-Guide.html
17
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AEM 6.4 Maintenance
18
Enhanced logging Version purge and Audit purge stop at end of maintenance window
*ERROR* [FelixStartLevel] org.apache.jackrabbit.oak.plugins.segment.SegmentTrackerSegment not found: cbc28630-4ea0-4372-a7f1-8fcd10c57572. Creation date delta is 3 ms.org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment cbc28630-4ea0-4372-a7f1-8fcd10c57572 not foundat org.apache.jackrabbit.oak.plugins.segment.file.FileStore.readSegment(FileStore.java:1294)at org.apache.jackrabbit.oak.plugins.segment.SegmentTracker.readSegment(SegmentTracker.java:242)
Looks Familiar ?
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance
Chadwick Cheng
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance: Implementation
21
Site Performance API calls to be handled client side Make external service calls fault tolerant Set timeouts Cache Exponential back-off algorithm
Optimize client-side performance CSS in html <head> JS in end of <body> Minify and GZip client libraries
Cache JS and CSS
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance: Implementation
22
Author Instance Performance Reduce the total components per page Avoid nesting paragraph systems
For more information:http://helpx.adobe.com/experience-manager/kb/optimize-aem-site-performance.html
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance: Caching
23
Browser CDN AEMDispatcher
AEM
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance: Caching
24
Browser CDN AEMDispatcher
AEM
Send me /content/test.htmlGET /content/test.html HTTP/1.1
Here’s /content/test.html, cache it for 5 minutes.
200 OKCache-Control: max-age=300Last-Modified: Wed, 21 Mar 2018 06:00:00 GMT…
Has the file been modified?If-Modified-Since: Wed, 21 Mar 2018 06:00:00 GMT
No.304 Not Modified
• HTTP response headers:Cache-Control: max-age=300Last-Modified: Wed, 21 Mar 2018 06:00:00 GMT
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance: Caching
25
Browser CDN AEMDispatcher
AEM
• Same HTTP Headers as browser• Use a CDN that supports stale-while-revalidate and stale-if-error• GZip compress everything except pre-compressed file formats
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance: Caching
26
Browser CDN AEMDispatcher
AEM
• Leverage Cache-Control header & disable flush agents• Leverage re-fetching dispatcher flush
For more information:https://helpx.adobe.com/experience-manager/kb/optimizing-the-dispatcher-cache.html
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance: Caching
27
Browser CDN AEMDispatcher
AEM
• Send headers:Cache-Control: max-age=300Last-Modified: Wed, 21 Mar 2018 06:00:00 GMT
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Indexing in AEM
Define indexes for custom queries Use Oak lucene property indexes Be specific avoid rules that index everything e.g. nt:base nodetype
For more information:https://docs.adobe.com/docs/en/aem/6-3/deploy/platform/queries-and-indexing.htmlhttps://helpx.adobe.com/experience-manager/6-3/sites/developing/using/troubleshooting-slow-queries.htmlhttps://docs.adobe.com/ddc/en/gems/oak-lucene-indexes.html
28
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
SecurityChadwick Cheng
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
User / Group Permissions
Do not grant admin access to everyone Never modify out-of-the-box group or user permissions Instead add groups as members of out-of-the-box groups Define permissions against groups, not users Leverage rep:glob type ACLs to allow multi-tenancy
For more information:https://helpx.adobe.com/experience-manager/kb/how-to-leverage-rep-glob-aces-to-manage-permissions-on-multi-ten0.htmlhttps://helpx.adobe.com/experience-manager/6-3/sites/administering/using/security.html
30
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Service Users
Use in application code instead of “admin” session Define ACLs directly for the service user
Leverage ACS Commons “Ensure Service User”
For more information:https://adobe-consulting-services.github.io/acs-aem-commons/features/ensure-service-users/index.htmlhttps://helpx.adobe.com/experience-manager/6-3/sites/administering/using/security-service-users.html
31
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
User Administration
6.3 Enhancements Closed User Group feature modified
6.4 Enhancements Assets UI - Closed User Groups support (6.3 SP1 CFP2)
New user properties UI
For more information:
https://helpx.adobe.com/experience-manager/6-3/sites/administering/using/closed-user-groups.html
32
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
UpgradeAswinkumar Loganathan
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Why upgrade?
Platform perspective Adds stability Helps scalability
ROI perspective New features
Helps reduce customizations
For more information:https://helpx.adobe.com/experience-manager/kt/platform-repository/using/upgrade-aem-article-understand.html
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Types of Release and Updates
Full Release Maintenance Releases Service Pack
Cumulative Fix Pack
Oak Cumulative Fix Pack
Hotfix
Feature Pack
Overlay
• Includes new features, improvements, bug fixes
• Yearly Release• Delivered as a standalone product installer• Ex: AEM 6.3, 6.4, etc.
• Includes improvements & bug fixes• Quarterly Release• Delivered as a package via package share• Ex: AEM 6.3.1.0, 6.4.1.0, etc.
• Includes all fixes through specific dates (CFP3 = CFP1 + CFP2) Available only for versions <= 6.3
• Monthly Release• Delivered as a package via package share• Ex: AEM 6.3.2.1, 6.3.2.2, etc.
• Similar to CFP• Contains only oak related fixes• Released as necessary
• Includes fixes for specific issue• Provided as necessary• Individual hotfixes publicly unavailable as
individual packages anymore• Grouped and delivered within CFP’s & SP’s
• Includes new features, improvements & bugfixes
• Features backported from next version• Released as necessary• Delivered as package via package share
• Includes bugfixes for javascript & jsp• Released as necessary• Delivered as package by AEM customer
care
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Types of Releases and Updates
Full Release Maintenance Releases Service Pack
Cumulative Fix Pack
Oak Cumulative Fix Pack
Hotfix
Feature Pack
Overlay
For more information:Release updates: https://helpx.adobe.com/experience-manager/aem-releases-updates.htmlRelease roadmap: https://helpx.adobe.com/experience-manager/maintenance-releases-roadmap.html
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
What do we upgrade?
AEM Software Custom Code Authoring User Interface
(if not already done)
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Upgrade Types
In-Place Upgrade Data Migration
38
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
In-Place Upgrade
Pros Preferred upgrade method Follow official documentation Simpler for large deployments Versions are retained by default
Cons Author instance downtime
For more information:https://helpx.adobe.com/experience-manager/6-3/sites/deploying/using/in-place-upgrade.html
39
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Data Migration
Pros Potentially avoid downtime Simple for small systems and lower environments
Cons Complex and time consuming for large systems Unofficial method – power users only Error prone
For more information:https://gist.github.com/andrewmkhoury/280c6d0ac1db03b57c58https://www.slideshare.net/TomaszRkawek/crx2oak-all-the-secrets-of-repository-migrationhttps://jackrabbit.apache.org/oak/docs/migration.html
40
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Code Upgrade
1. Install to fresh AEM version2. Disable /libs ui overlays under /apps3. Update maven dependencies – Uber jar version4. Upgrade ACS commons package5. Upgrade to core components6. Use unit tests7. Test and find broken API calls8. Fix the issues and retest
New in 6.4 - Pattern Detector Runs on older AEM version Detects potential 6.4 upgrade-breaking changes Generates a report
41
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Testing
Regression test all the hosted applications
Test the authoring functionality
Re-run load and stress tests
42
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Avoid surprises
Test upgrade on a copy of production Know your hardware and software maintenance schedules Know the related 3rd party application release schedules Always take Backups before upgrade Test and validate the backup and restore process end to end
Upgrade ACS Commons package to the right version Update the right configuration for versioned clientlibs
Update the right configuration for error pages
43
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Factors Contributing to Delay
Inadequate planning and preparation Low level of automation Lack of sufficient test environments Inadequate time for testing Low test coverage Low visibility on organizational procedures Lack of communication with stakeholders Lack of training
44
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Why TouchUI?
TouchUI has more features than ClassicUI All new features are being developed in TouchUI Most new features work only with TouchUI ClassicUI is going to be decommissioned
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Did you know?
Touch UI is not all about component dialogs A lot of touch UI features can be used OOB
(except those related to page editing) Classic dialog can be used within touch UI’s
page editor till touch dialogs are enabled Content is frequently updated using only
10% to 15% of the components More than 60% of the components are usually used
only in 1 or very few number of pages
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Recommendations for TouchUI transition
Enable touchUI as the default navigation UI for author
Create touch dialogs for page properties Prepare a component report to prioritize
the high value components Create touch dialogs for the components based
on priority in multiple smaller phases Do not approach touchUI transition as
one big project Develop all new components with Touch dialogs
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Need help with upgrade?
Business case Product capability showcase Implementation Training Quick questions
Reach out to your Adobe Customer Success Manager today
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Customer StoryRichard Moulding
eCommerce Practice ManagerSuncorp
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Takeaways
Store large files in an External Datastore Tune configurations to suit your use case for optimal performance
Have a robust maintenance and system monitoring plan Try to upgrade to the latest version TEST comprehensively before moving to production
50
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
What’s Next ?
Experience League https://landing.adobe.com/experience-league/
HelpXhttps://helpx.adobe.com/support/marketing-cloud.html
Adobe Customer Care Office Hours https://helpx.adobe.com/customer-care-office-hours.html
Come visit us at the Adobe HUB !
51