AEM in 40 Days
CalendarPhase 6 · Deploy, Operate, Secure

Day 40 of 40

Migration, Modernization and Review

Moving legacy projects forward, then tying the whole course together

~55 min read8 videos6 source pages

By the end of today you should be able to

  1. Describe the phases of a move to AEM as a Cloud Service
  2. Name the migration tools and say what each one does
  3. Explain repository modernisation and why /etc had to be emptied
  4. Tie the whole course together into a coherent mental model

Why migration is a topic for you

Even on a greenfield project you will meet this material. Legacy patterns are everywhere in older documentation, Stack Overflow answers and any codebase more than a few years old. Knowing what changed and why is how you tell current advice from advice that will fail a pipeline.

The phases

  1. Readiness — run the Best Practice Analyzer (BPA) against the existing instance. It reports incompatibilities and effort.
  2. PlanningCloud Acceleration Manager (CAM) turns BPA findings into a tracked plan across the project.
  3. Implementation — refactor code and configuration with the modernisation tools.
  4. Content transfer — move the content with the Content Transfer Tool (CTT).
  5. Go-live — cut over, with a final content top-up.

The tools

  • BPA — analyses a source instance and reports what will not work on Cloud Service.
  • CAM — the planning and tracking hub, consuming BPA reports.
  • CTT — extracts content into a migration set and ingests it into a Cloud Service environment. Supports top-up runs, so you can move the bulk early and sync the delta at cutover.
  • Bulk Import — imports assets in volume from cloud storage, more efficient than CTT for large DAMs.
  • Code Repository Modernizer — restructures a legacy project into the mutable/immutable package layout Cloud Service requires.
  • Dispatcher Converter — transforms a legacy Dispatcher configuration into the Cloud Service structure (day 37).
  • Index Converter — converts custom Oak index definitions to the Cloud Service naming and format (day 33).
  • AEM Modernization Tools — convert static templates to editable ones, foundation components to Core Components, design configurations to policies, and classic UI dialogs to Touch UI.
They are accelerators, not magic

Every one of these produces output you must review. The Dispatcher Converter gets you most of the way and still needs validation; the component converter handles the mechanical parts and leaves the judgement to you. Budget review time.

Repository modernisation

Classic AEM scattered things across /etc: clientlibs, designs, templates, cloud service configuration, tags. Cloud Service's mutable/immutable split made that untenable — /etc mixed both kinds of content in one tree.

The moves you should recognise:

  • /etc/designs/apps clientlibs, with design configuration becoming policies in /conf.
  • /etc/clientlibs/apps, served via /etc.clientlibs (day 19).
  • /etc/cloudservices/conf as context-aware configuration.
  • Static templates in /apps → editable templates in /conf.

This is also why so much older documentation looks wrong: it predates the split. When a page tells you to put something in /etc, check its "Applies to" banner.

Pulling the course together

Forty days in one paragraph, which is worth being able to say out loud:

AEM stores everything — content, code and configuration — as nodes in a JCR repository. Sling maps a URL to a node and uses that node's sling:resourceType to find the code that renders it. That code is HTL for markup and Sling Models for logic, packaged as OSGi bundles and content packages built by Maven from a project the archetype generated. Authors work on the author tier, composing pages from components that editable templates and their policies permit; publishing replicates content to publish, which sits behind the Dispatcher and a CDN. Everything reaches an environment through a Cloud Manager pipeline that enforces quality gates, and the boundary between immutable /apps and mutable /content and /conf is what makes that pipeline model possible.

If you can explain that, and you know where to look when a piece of it misbehaves, you have what the forty days were for. The final exam checks it.

Today's takeaway

BPA finds it, CAM plans it, the modernisation tools refactor it, CTT moves the content. And the mutable/immutable split is why /etc had to go.

Watch

Adobe's own videos for this topic. They load only when you press play.

Moving to AEM as a Cloud Service - Think Differently
Moving to AEM as a Cloud Service - BPA and CAM Project Setup
AEM Modernization Tools - All-in-One Conversion - Usage
AEM Modernization Tools - Page Structure Conversion - Usage
AEM Modernization Tools - Component Conversion
Repository Modernization - Moving to AEM as a Cloud Service
Using the Content Transfer Tool
Intro to Cloud Acceleration Manager

Read on Experience League

The primary sources these notes are drawn from.

Your notes

Saved automatically to this browser.

Check yourself

11 questions on today's material. 80% to pass.

Take the quiz