New Repository in AEM 6 by Michael Marth

12,377 views

Published on

Published in: Technology, Business

New Repository in AEM 6 by Michael Marth

  1. 1. New Repository in AEM 6 and other goodies for developers Michael Marth, Adobe
  2. 2. About @michaelmarth Senior Engineering Manager at Adobe Responsible for Granite platform
  3. 3. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Before we start 3 Certifications
  4. 4. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Scalability Oak 4 AEM 6.0 Content Repository
  5. 5. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. AEM 6.0 Content Repository Goals  Scalability  Big repositories  Distributed, many cluster nodes  Write throughput  Parallel writes  Write performance  Many child nodes  Many ACLs 5 Project “Oak”  aka Jackrabbit 3, all open source  Apache Software Foundation http://jackrabbit.apache.org/oak/  Implementation of the JCR spec, JSR-283 Your apps run unchanged
  6. 6. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Architecture 6 JCR oak-core Micro kernel Oak API Micro kernel API
  7. 7. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Microkernel choose according to your scalability and performance requirements 7 jjjJCR Content Repository Persistence AEM Performance Optimized and Made for Scale
  8. 8. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Node Store Where nodes get stored 8 Nodes Binaries • Tar MK Tar files, locally • MongoMK MongoDB • … (other are WIP) oak-core JCR
  9. 9. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Data Stores Where the binary data gets stored 9 • File System (local, NAS, SAN) shareable • S3 for AWS deployments • In Tar files easier backup and ops • In MongoDB easier backup and ops oak-core JCR Nodes Binaries
  10. 10. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. TarMK Memory-mapped files 10 92 GB unused CQ5.x Tar PM 100GB RAM in Server 8GB JVM AEM6 Tar MK: 100GB RAM in Server 8GB JVM 92 GB off-heap used for running the repo from RAM
  11. 11. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. MongoMK Cluster Deployment Topologies 11 MongoS AEM with Oak MongoD Primary MongoD Secondary MongoD Secondary MongoDB replication r/w r r MongoS AEM with Oak MongoS AEM with Oak ShareNothing ShareNothing
  12. 12. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Micro Kernels Which one shall I use? 12 AEM6 Author default: TarMK local, fast, easy to operate “I need reliability”: TarMK + Failover instance HTTP-transported copy of instance, failover switch e.g. Nagios “I need scalability”: MongoMK Cluster Scale CPU (many AEM instances) Scale read throughput (many Mongo replicas) Scale globally (distribute replicas globally) “I cannot change the repository”: Remain on CRX2 Cluster Supported, but deprecated
  13. 13. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Micro Kernels Which one shall I use? 13 AEM6 Publish Primary use case is Publishing: TarMK as a “Farm” (independent instances) fast, independent, easy to operate Primary use case is User Generated Content: MongoMK in a Publish Cluster all Publish instances running on same MongoDB
  14. 14. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Search Pluggable Index Providers 14 • Property Index Provider stored in repo, backup’ed sync/async re-indexable asynchronously ordered indexes • Lucene full-text extraction stored in data store • Solr in JVM (OSGi runtime) or remote (for production) native queries language exposed oak-core JCR MK
  15. 15. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Search Configurable Indexes 15 • Index Definition via nodes not everything indexed by default anymore allows smaller, specialized, faster indexes no need to index nodes you do not search for • In AEM: pre-configured indexes for AEM itself • Define custom indexes for your application’s needs without an index the repo will be traversed on a query oak-core JCR MK
  16. 16. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Numbers Performance & Scalability 16 TarMK running on my MacBook (i.e. totally unscientific) • add nodes, session.save() for each node: xxx nodes added / sec • add nodes, batch save(): xxx nodes added / sec • add property, catch save(): xxx properties added / sec • import files from Wikipedia, flat hierarchy: MongoMK running on our Jenkins server • 1 Oak instance on MongoMK: nodes added / sec… • 3 Oak instances on MongoMK: nodes added / sec… (factor yyy) • 5 Oak instances on MongoMK: nodes added / sec…(factor yyy)
  17. 17. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Performance & Scalability Some Hints 17 Observations in a Cluster • Many Oak instances, high write throughput needed • Be mindful of observation listeners • Only listen to local events • Restrict paths you listen on Many child nodes • Many child nodes, high write throughput • Be mindful of sorted node types • nt:unstructured is sorted • oak:unstructured is not
  18. 18. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Efficiency We ♡ Sys Admins 18 Operations Dashboard
  19. 19. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Project Efficiency Granite Operations Dashboard provides control over system health, diagnosis and maintenance automation, efficiently and extensible. 19 Main features: • System health overview at a glance • Reducing time to find, analyze and fix issues • One-Click System Status to help file AEM Support tickets • Maintenance automation to reduce project operations
  20. 20. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 20
  21. 21. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 21
  22. 22. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 22
  23. 23. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 23 DEMO
  24. 24. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Efficiency We ♡ Sys Admins 24 One-Click Setup
  25. 25. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Project Efficiency One-Click Setup instantly fires up AEM instances in the cloud right 25 Main features: • Ready-made AEM configurations • Spins up machines in AWS – you maintain full control of the machines
  26. 26. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 26
  27. 27. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 27
  28. 28. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 28
  29. 29. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 29
  30. 30. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 30 DEMO
  31. 31. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Efficiency We ♡ Developers 31 Developer Mode
  32. 32. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Project Efficiency Developer Mode 32 Main features: • Inspect component performance right in the page • Run automated tests • Inspect component errors right in the context of the page
  33. 33. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 33
  34. 34. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 34
  35. 35. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 35
  36. 36. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 36
  37. 37. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 37 DEMO
  38. 38. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Efficiency We ♡ Developers 38 Eclipse Tooling
  39. 39. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 39 DEMO
  40. 40. What else is coming up
  41. 41. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 41 Sightly Beautiful Markup
  42. 42. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 42 Mobile PhoneGap Enterprise
  43. 43. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 43 one more thing™
  44. 44. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Sneak Peak 44 Granite.JS aka AEM Micro Engine
  45. 45. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Granite.JS Granite Javascript Platform 45 Main features: • Lightweight, scripting server stack • REST based content-driven web framework for server-side JavaScript development • Runs Sightly • Based on Node.js
  46. 46. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Granite.JS Architecture 46 jjj Coral UI / Sightly Sling AEM Granite/AEM - Java Oak REST Microkernel (Java) OSGi jjj Coral UI / Sightly Sling.JS Granite.JS – Node.JS Repository REST Microkernel (C) NPM
  47. 47. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Granite.JS Use Case (I) – Web Developer in AEM Projects 47 UI Dev codes Sightly, CSS, etc Brackets Grunt Granite.JS Java Dev codes Java, OSGi services Eclipse Maven Granite/AEM gitpush Maven AEM Production Pkg
  48. 48. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 48 DEMO
  49. 49. Thank for your attention

×