Key Components
Component Front-End to Back | Purpose | Summary | Notes | Key Reading Matrial |
---|---|---|---|---|
Akamai | CDN (Content Distribution Network) | |||
Apache with Adobe Dispatcher Module | Web Server, Caching and Load Balancing | Caches into static content pages generated by CMS to improve performance. | ||
AEM Instance for Publisher | CMS Publisher | Serves the published content to the public. Uses Apache Sling for Web framework to expose the repository RESTfully. Bundles CRXDE Lite web interface to manage the repository at http://<host>:<port>/crx/de/index.jsp Powered by Apache Felix implementation of OSGi. | ||
Content Repository | CMS Publisher Database Cache | NoSQL File based data storage for content-centric applications, implementing Content Repository API for Java Technology (JCR 2.0). Uses Apache Jackrabbit Oak as manager (searching, versioning, transactions, etc.) of repository. Default storage format is tar files (TARMK) which also offers Cold Standby to sync repositories. | Rinku will specify default path here. | |
Lucene | Search Engine | |||
AEM Instance for Author | CMS Author | Create, upload and edit content and to administer the website. | ||
CMS Author Database | ||||
Microsoft AD | Centralized Authentication Directory | Optional and should failback to local authentication repository if AD fails. |
Adobe Experience Manager Shortlist of Project Documentation
Technical Notes
General
AEM 6.x with Apache Sling uses TarMK with Apache Jackrabbit Oak. Key aspect of speed is the combination deserializes the repository into memory. It is not caching the repository in memory. The repository exists in memory and uses the tar files to serialize adn persist the data. It will deserialize the entire repository into memory if enough memory available. So give AEM lots of memory.
Though AEM and Apache Sling runs in a JVM, the memory they use for repository is not the JVM heap, but the "off-heap" memory. You may limit it via Java parameter -XX:MaxDirectMemorySize. One consideration to gain memory is to set the Pool Size parameter of Apache Sling Job Thread Pool to 1. This iwll limit the memory used by jobs at the cost of speed of job completion when jobs are queued.
JCR implements a tree of nodes with asscotiated properties with all sorts or pointers (think object oriented database). Persistence manager by default is Tar, transaction aware, file system agnostic and uses Lucene to support SQL queries.
Adobe Acryonyms
AEM was previously called CQ.
CRX - references the bundle of technologies put together by Adobe.
Version Information
The BonsaFramework instructions were made for,
- AEM 6.2
- Apache 2.4.x
- Ubuntu Server LTS 64-bit (exact version should not matter)
Setup of Web Server Dispatcher
The Web Server Dispatcher is just the Apache Web Server (or equivalent) with a module (Adobe Dispatcher) to connect to AEM Publisher to retrieve and serve content.
The advantage is that the Web Server will build a cache of the content reducing load on the AEM Publisher. This is because the AEM Publisher dynamically builds the web pages at every request (even if they do not change). In addition, the Dispatcher can perform load balancing with multiple AEM Publishers.
You may want to read the Adobe Dispatcher online documentation for further background.
Install Apache Web Server per BonsaiFramework with hardening instructions.
Download module and load into Apache per the Adobe Instructions. If following the BonsaFramework you can copy and paste these instructions,
su - serveradmin mkdir aem cd aem mkdir aem-dispatcher cd aem-dispatcher # Initial instructions will use non-ssl version between Web wget https://www.adobeaemcloud.com/content/companies/public/adobe/dispatcher/dispatcher/_jcr_content/top/download_6/file.res/dispatcher-apache2.4-linux-i686-4.2.0.tar.gz tar -xvpf dispatcher-apache2.4-linux-i686-4.2.0.tar.gz
...
Setup of AEM Application Server
AEM package comes in two flavours,
- cq-quickstart-6.2.0.jar - executable to run as a Java process.
- cq-quickstart-6.2.0.war - install in a container like Tomcat
Enable license by entering at startup or in license.properties file (preferred to automoation).
By default the package starts up running both the author and publish components as one service. Enterprise configurations will want to segregate and this occurs with a file rename,
cq-<instance-type>-p<port-number>.jar
Modify temporary directory,
CQ_JVM_OPTS # may modify in serverctl or start script
Author Server
Rename file,
mv cq-quickstart-6.2.0.jar cq-author-p4502.jar
This will result in an author instance running on port 4502.
Publish Server
Rename file,
mv cq-quickstart-6.2.0.jar cq-publish-p4502.jar
This will result in an publish instance running on port 4502.
References
AEM Good Bad and Ugly - Pretty good technoloogy feature with descriptoin dump.