AEM as a Cloud Service

Understand what AEM as a Cloud Service is, how it differs from AEM 6.5, and what you need to know to develop and deploy on the cloud platform.

Last reviewed: December 2024

·AEM as a Cloud Service
✅
Quick Understanding: AEM as a Cloud Service (AEMaaCS) is Adobe's cloud-native version of AEM. Instead of running AEM on your own servers, Adobe manages everything — infrastructure, scaling, updates, and security. You focus on building your application; Adobe handles the rest.

🔍 What Is It?

AEM as a Cloud Service is Adobe's fully managed, cloud-native version of AEM. Key characteristics:

  • →Always up-to-date — Adobe pushes updates automatically, no manual upgrades
  • →Auto-scaling — scales up and down based on traffic automatically
  • →Containerized — runs on Kubernetes, with separate Author, Publish, and Dispatcher pods
  • →CI/CD native — code is deployed through Cloud Manager pipelines, not manual package installs
  • →CDN included — Fastly CDN is built in, in front of every AEMaaCS environment
  • →Separated storage — content is stored in a cloud-based Oak repository, not a local disk

AEMaaCS is not just "AEM in the cloud" — it's a re-architected platform with different deployment models, different APIs, and different constraints than AEM 6.5.

🎯 Why Do We Need It?

The Problems with AEM 6.x (on-premise):

  • →Manual upgrades every 1–2 years — expensive, risky, time-consuming
  • →Infrastructure management — servers, OS, JVM, networking
  • →Manual scaling — traffic spikes require pre-provisioning
  • →Slow deployments — package installs could take 30+ minutes

AEMaaCS Solves This:

  • →Zero-downtime updates — Adobe updates AEM automatically, no manual effort
  • →Elastic scaling — handles Black Friday traffic automatically
  • →Fast deployments — Cloud Manager pipelines deploy in minutes
  • →Global CDN — built-in Fastly CDN reduces latency worldwide
  • →Security — Adobe manages patches, security updates, and compliance

🏗️ What Happens in Real Projects?

How a Typical AEMaaCS Project Works:

  1. Development — Developers work locally using the AEM SDK (a downloadable JAR that mimics AEMaaCS)
  2. Code Review — Code goes through Git (usually GitHub/GitLab/Azure DevOps)
  3. Pipeline — Cloud Manager detects the commit and runs the CI/CD pipeline
  4. Testing — Automated tests run (unit tests, integration tests, UI tests)
  5. Deployment — Code deploys to Dev → Stage → Production environments
  6. Content — Content authors work in the cloud Author environment
  7. Delivery — Users get content via CDN → Dispatcher → Publish

Environments in AEMaaCS:

  • →Development — For developer testing
  • →Stage — For QA and UAT
  • →Production — Live site

Each environment has Author, Publish, and Dispatcher tiers.

⚙️ How It Works

Architecture Differences from AEM 6.5:

FeatureAEM 6.5AEMaaCS
DeploymentPackage ManagerCloud Manager Pipeline
ScalingManualAutomatic
UpdatesManual upgradesAutomatic
StorageLocal filesystemCloud Oak
CDNOptionalBuilt-in (Fastly)
DispatcherSelf-managedManaged by Adobe
Mutable content/apps is writable/apps is immutable

Immutable vs Mutable Content:

This is the biggest conceptual shift from AEM 6.5:

  • →/apps, /libs, /oak:index — Immutable — only deployable via Cloud Manager pipeline
  • →/content, /conf, /var — Mutable — manageable through AEM UI and replication

Implications:

  • →You can't install packages directly to /apps in production
  • →All code changes go through the pipeline
  • →OSGi configurations are deployed as code, with secrets and environment-specific values supplied by Cloud Manager
  • →Content changes are published through the managed AEM publication flow; cache invalidation is handled by AEM, Dispatcher, and CDN rules

Cloud Manager:

Cloud Manager is Adobe's CI/CD platform for AEMaaCS. It:

  • →Connects to your Git repository
  • →Runs build pipelines (Maven build + quality checks)
  • →Deploys to AEMaaCS environments
  • →Manages environment variables (for OSGi config)
  • →Runs code quality, security, and performance checks
  • →Provides access to deployment history, build logs, and environment status for production support

AEM as a Cloud Service — Architecture Overview

⚙️

Cloud Manager

CI/CD Pipeline

Git → Build → Deploy

🌐

CDN (Fastly)

Global Edge Cache

Built-in SSL

✏️

AEM Author

Content Authoring

Template Editor

🚀

AEM Publish

Content Delivery

Auto-scaling

🛡️

Dispatcher

Caching Layer

Security Filter

☁️

Cloud Storage

Oak Repository

Asset Storage

💻 Example

AEMaaCS Development Setup — Key differences and configurations for developing on AEM as a Cloud Service.

yaml
# .cloudmanager/config.yaml
# Defines pipeline behavior

kind: "PipelineConfig"
version: "1"
metadata:
  envTypes:
    - dev
    - stage
    - prod
data:
  # Dispatcher configuration validation
  dispatcher:
    enabled: true
  # Frontend build pipeline
  frontend:
    enabled: false
  # Code quality thresholds
  codeQuality:
    coverageMinimum: 80
    duplications: 5

🤔 Common Confusions

❓ Can I still use package manager to install code in AEMaaCS?

For content (pages, assets, configurations in /content and /conf), yes. For code (/apps), no — /apps is immutable in production and stage. You must use Cloud Manager pipelines to deploy code changes. This is the biggest workflow change from AEM 6.5.

❓ What is the AEM SDK and why do I need it?

The AEM SDK is a downloadable JAR file that runs a local AEMaaCS-compatible instance on your machine. It's how developers work locally without needing a cloud environment for every code change. Download it from Adobe Software Distribution portal.

❓ How do I manage secrets (API keys, passwords) in AEMaaCS?

Use Cloud Manager's "Secret" environment variables. In your OSGi config, reference them as $[secret:MY_SECRET]. Never hardcode secrets in code or configuration files. Cloud Manager injects them at runtime.

❓ Is AEMaaCS backward compatible with AEM 6.5 code?

Mostly, but not 100%. The APIs are the same, but some things that worked in 6.5 don't work in AEMaaCS — especially anything that writes to /apps at runtime, uses deprecated APIs, or relies on specific filesystem paths. Adobe provides the AEM Analyzer Maven plugin to check compatibility.

🚨 Common Production Issues

Pipeline fails at code quality step

check the code quality report in Cloud Manager. Common issues: low test coverage, critical SonarQube violations, deprecated API usage.

Content published in Author not visible on Publish

check publication status, content distribution queues, referenced assets/fragments, and whether CDN or Dispatcher cache is still serving the old response.

OSGi config not loading

in AEMaaCS, custom OSGi configs should use .cfg.json naming and valid JSON types. Confirm the PID, run mode folder, and Cloud Manager environment variable names.

Dispatcher or CDN cache not refreshing

republish the affected content, verify the vhost catches invalidation requests for localhost and Adobe cloud host aliases, and confirm Cache-Control headers match the intended TTL.

Build succeeds but deployment fails

check the deployment logs in Cloud Manager. Often caused by content package validation errors or missing dependencies.

External integration works locally but fails in cloud

check outbound allow lists, secret variables, service-specific environment variable scope, and timeout handling in the OSGi service.

✅ Best Practices

Use the AEM Analyzer Maven plugin in your build to catch AEMaaCS compatibility issues early.

Never write to /apps at runtime

all code changes must go through the pipeline.

Store stable non-secret configuration in Git and use Cloud Manager variables only for secrets or values that genuinely vary by environment.

Set up automated tests (unit, integration, UI)

Cloud Manager runs them on every pipeline execution.

Use the Dispatcher SDK for local Dispatcher testing before pushing to Cloud Manager.

Monitor pipeline execution times

slow builds indicate code quality or dependency issues.

Use persisted GraphQL queries instead of ad-hoc queries

they're cacheable by the CDN.

Create support runbooks for pipeline failures, stuck content publication, cache issues, and integration outages before go-live.

🏛️ Architect's Note

Senior Architect's Perspective

AEM as a Cloud Service represents a paradigm shift in AEM architecture. The key principles to internalize:

Immutability: Code is immutable in production. This forces better engineering practices — no more "quick fixes" via package manager in production.

Cloud-Native Patterns: Design your application for horizontal scaling. Avoid in-memory state, use distributed caching, and design services to be stateless.

CDN-First: With Fastly CDN built in, design your caching strategy from day one. Use Cache-Control headers, persisted GraphQL queries, and Dispatcher rules to maximize CDN hit rates.

Observability: AEMaaCS integrates with Adobe Experience Platform and provides built-in logging and monitoring. Invest in proper logging from the start — you'll need it when debugging production issues.

For architects evaluating AEMaaCS vs AEM 6.5: If you're starting a new project, choose AEMaaCS. The operational benefits (auto-updates, auto-scaling, managed infrastructure) outweigh the migration effort for new projects.

💬 Frequently Asked Questions

How long does a Cloud Manager pipeline deployment take?

A full pipeline (build + quality + deploy) typically takes 15–45 minutes depending on test suite size and build complexity. Non-production pipelines (dev) are faster. Production deployments include additional quality gates.

Can I have multiple production environments in AEMaaCS?

Each AEMaaCS program has one production environment. You can have multiple development and staging environments. For multi-site/multi-region setups, you use AEM's Multi-Site Manager within a single production environment.

What happens to my AEM instance during an Adobe update?

Adobe updates are deployed using a rolling update strategy — instances are updated one at a time with zero downtime. You'll receive advance notice of major updates. Your code is tested against the new AEM version before the update is applied.

How does local development work with AEMaaCS?

Download the AEM SDK from Adobe Software Distribution. Run it locally (java -jar aem-sdk-quickstart.jar). Develop and test locally, then push to Git. Cloud Manager picks up the change and runs the pipeline to deploy to your dev environment.

Is AEMaaCS HIPAA/SOC2/GDPR compliant?

Yes. AEMaaCS is built on Adobe's enterprise cloud infrastructure which maintains HIPAA, SOC 2 Type 2, ISO 27001, and GDPR compliance certifications. Check Adobe's Trust Center for current compliance documentation.

🎯 Key Takeaways

1AEMaaCS = fully managed, auto-updating, auto-scaling AEM on Adobe's cloud
2/apps is immutable — all code changes deploy via Cloud Manager pipeline
3Cloud Manager is the CI/CD platform — Git → Pipeline → Deploy
4Use environment variables for secrets and environment-specific config
5AEM SDK allows local development that mirrors the cloud environment
6CDN (Fastly) is built in — design caching strategy from day one

🎯 Practice this topic in interviews

↗ Where this topic fits

Sources

Sources / References

Use these AEM references to verify the concept in official docs and continue into the most relevant SplashRide pages.

Related SplashRide pages

SplashRide AEM learning path

Browse the full AEM topic collection and learning order on SplashRide.

AEM Interview Prep

Practice AEM interview questions and scenario-based answers.

AEM Developer Career Path

This AEM developer career path explains how to become an AEM developer through JCR, Sling, HTL, client libraries, Dispatcher, Cloud Service delivery, project depth, and interview-ready enterprise implementation skills.

Drupal Developer Career Path

A practical route through Drupal content modeling, site building, theming, modules, configuration management, APIs, performance, deployment discipline, and interview preparation.

AEM Dispatcher

Understand the AEM Dispatcher — the caching and security layer that sits in front of your publish instance. Learn how it works, how to configure it, and why it breaks in production.

Content Fragments

Learn what Content Fragments are, how they differ from regular page content, and why they're the foundation of headless AEM delivery.