The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 1 Boost your productivity for free Maciej Majchrzak / @majchrzak_m
Aug 14, 2015
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 1
Boost your productivity for free
Maciej Majchrzak / @majchrzak_m
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 2
Open source in AEM
Adobe Experience Manager:
– Apache Sling
– Apache Felix
– Apache Jackrabbit Oak
– ...
Community
– ?
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 3
The Project
Chocolate Company
Marketing Platform
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 4
Project Scope
– Multi-channel, multi-lingual website built on Adobe Experience Manager
– Integration with internal news platform (dynamic content)
– Non-functional testing
– Platform set-up
– Deployment
– Maintenance
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 6
Development
Challenge #1 – Team:
– Getting up to speed
– Upskilling inexperienced
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 7
Development
ACS AEM Samples
http://adobe-consulting-services.github.io/acs-aem-samples/
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 8
ACS AEM Samples
Your benefits:
Easily accessible training
Code references and guidelines
Suitable for beginners and more advanced
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 9
Development
Challenge #2 – Code:
– Organization / structure
– Separation of concerns
– Reusablility
– Simplicity
– Readability + testability = maintainability
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 10
Development – Framework
Neba
http://neba.io
Slice
http://cognifide.github.io/slice
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 11
Neba
Your benefits:
Power of Spring
• Spring MVC apps with ease
• Integrations
• Dependency injection
Advanced mapping of Sling resources into Java objects
Easily testable and clean code
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 13
Slice
Your benefits:
Lightweight and powerful dependency injection
Easily testable and maintainable code
Improved code design and re-use
Advanced mapping of Sling resources into Java objects
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 15
Development
Challenge #3 – Dynamic content:
– How to include dynamic content (component) on a page?
– How to cache pages with dynamic content?
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 16
Development – Dynamic Content
Sling Dynamic Include
http://cognifide.github.io/sling-dynamic-include
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 17
Sling Dynamic Include
Your benefits:
Don’t bother dynamic components anymore
Significantly reduced implementation effort
Very simple configuration
Fast and efficient solution for pages with
dynamic fragments
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 18
Dispatcher optimization
Also check: Dispatcher Flush Rules
http://adobe-consulting-services.github.io/acs-aem-commons/features/dispatcher-flush-rules.html
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 19
Development
Challenge #4 – Quality:
– How we are sure that it does what it should?
– How to run tests automatically?
– How to run test often?
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 20
Development – Functional Testing
Prosper
https://github.com/Citytechinc/prosper
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 21
Prosper
Your benefits:
Lightweight integration tests – increased value
• Quick execution
• Can be run often
Powerful yet easy to write and read – BDD-style
Simplified maintenance of tests
Combine with Jacoco/Cobertura for test coverage
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 24
Go Live
Challenge #5 – AEM setup:
– User, groups and permissions
– Authorable error pages
– Domains and content mappings
– Sitemaps
– ...
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 25
Go Live – User, Groups & Permissions
ACTool
http://github.com/Netcentric/accesscontroltool
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 26
ACTool
Your benefits:
No need for clicking and manual ACL application
You can share them across multiple environments with ease
You can version config files in source repository
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 27
Other tools
Authorable error pages:
– Error Page Handler
– http://adobe-consulting-services.github.io/acs-aem-commons/features/errorpagehandler.html
Sitemaps:
– Simple Sitemap generator
– http://adobe-consulting-services.github.io/acs-aem-commons/features/simple-sitemap.html
Domains and content mappings:
– Carty
– http://cognifide.github.io/carty
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 28
Go Live
Challenge #6 – Security & Performance (load) tests
– How are we sure that our AEM instance is secure?
– How do we know we can handle assumed traffic?
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 29
Go Live – Security Testing
SecureCQ
https://github.com/Cognifide/SecureCQ
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 30
SecureCQ
Your benefits:
Security audit before go-live
Easy to extend by project-specific tests
Easy to run
https://github.com/adobe-marketing-cloud/
cq-java-securecq-maven-plugin
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 31
Go Live – Performance Testing
– No AEM-specific tools
– Other tools:
• JMeter (http://jmeter.apache.org/)
• The Grinder (http://grinder.sourceforge.net/)
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 33
Maintenance
Challenge #7 – Functional Changes:
– Content manipulation after changing application behaviour
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 34
Maintenance – Content Manipulation
AEM Groovy Console
https://github.com/Citytechinc/cq-groovy-console
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 35
AEM Groovy Console
Your benefits:
Run arbitrary Groovy code on AEM instance:
Migrate content with ease
Extensible
Debug with ease
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 36
Maintenance
Challenge #8 – Debugging
– How to reproduce a bug „safely”?
– Moving content from one environment to another
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 37
Maintenance – Content Sync
Grabbit
https://github.com/TWCable/grabbit
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 38
Grabbit
Your benefits:
Synchronize large repositories efficiently
No need to worry about storage space and network latency
Frequent content synchronization (live <-> staging)
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 39
AEM Open Source World
The future of digital marketing. London, Poznań, New York. © 02/07/2015 Page 40
Contribute
It’s Your Turn!