AEM Sites Architecture and Administration
Know the topology before the buttons
AEM Sites runs as a Granite platform on top of Apache Felix (OSGi), Sling and a JCR repository (Oak). Production topologies separate author (content creation, one or a few instances) from publish (public delivery, scaled horizontally) with a Dispatcher/CDN in front of publish. AEM as a Cloud Service removes manual instance management: environments are provisioned per program, author and publish are separate services, and code/config changes flow only through Cloud Manager pipelines.
Understand the standard repository layout: /apps for project code and components, /content for authored pages and DAM assets, /conf for context-aware configuration and editable templates, /libs for product code (never edit), /var for runtime data. Binaries live in the Oak data store, not as nodes.
Administration you must be able to reason about
- Users, groups and ACLs: permissions are ACEs on paths; use groups and
rep:globrestrictions rather than per-user grants.jcr:readon/contentdoes not grant access to/apps. - Packages: content packages (FileVault,
.zipwithfilter.xml) move content and code; they are the unit of deployment. - Replication vs distribution: classic replication agents on 6.5; AEMaaCS uses Sling Content Distribution plus a CDN.
- Cloud Manager: pipelines (full stack, web tier, config) and environment-specific OSGi configs delivered as
.cfg.json/config packages - editing OSGi configs in the local web console does not survive a cloud deployment.
Trap: questions that offer "edit /libs" or "use CRX/DE on Cloud Service" - always overlay into /apps and use the correct tooling per version.
Rule of thumb: if it is authored, it belongs under /content; if it is shipped with code, it belongs under /apps; if it is a product default, overlay it, never touch it.