Adobe AEM – Zero Down Time Deployment

GOAL: As a part of Zero Downtime deployment, AEM should support the content sync process between the “Authoring environment supporting the Member live environment” and “Authoring environment supporting UAT”.

Acceptance Criteria:

  1. Validate that while zero-downtime deployment occurs, two versions of production exist:
    1. One which provides the “Existing” sites which we continue to show to members during the zero-downtime release process
      1. Validate that the “existing” author instance continues to be available at prd-cq-authoring.*.com
      2. Validate that the “existing” publish instances continue to be availalbe at the respective sites’ URLs
    2. One which provides the “Updated” sites which which will be used for UAT
      1. Validate that the “updated” author instance is available at uat.prd-cq-authoring.*.com
      2. Validate that the “updated” publish instances are available at uat.*.com
      3. Note that the UAT subdomains are desired but could be another obscured url as long as we know that it is only available in the network or VPN and it does not replace the existing URLs for DXM or sites
  2. Validate that while the two production author instances are running, for all content, DAM and UGC:
    1. Making and publishing (or approving) any change on either author causes the corresponding change on publish instances
    2. Changes to include create, delete, edit, approve UGC, move, etc
  3. Validate that when UAT is complete and all production instances are ready switched to the “updated” code:
    1. Any new content which is
      1. published on the “existing” author since the instance split; and
      2. is not present on the “updated” author
      3. must be transferred to the “updated” author in its published state
    2. Any existing content which is
      1. updated and published on the “existing” author since the instance split; and
      2. is present on the “updated” author but has not been modified on the “updated” author
      3. must be transferred to the “updated” author in its published state
    3. Any UGC which is
      1. submitted on the “existing” author since the instance split
      2. must be transferred to the “updated” author in its published or approved state
    4. Any content which is
      1. modified on the “existing” author but not published
      2. must be transferred to the “updated” author at the original path# Any content which is
    5. Any content which is
      1. modified on the “existing” author and the “updated” author since the instance split
      2. must not transferred to the “updated” author at the original path
      3. must be available for one week in the “existing” or legacy author so that users can retrieve any changes if necessary
      4. Is captured in a manifest which includes path, last modified date, last modified username, publish status, AEM publish date (not actual publish date)
    6. Any UGC created on the “existing” environment is created on the “updated” author and publish environments

Out of Scope

  1. Handling the case where
    1. content is modified on the “existing”
    2. content is moved or deleted on the “updated”
    3. not necessary to block the replication of the file from existing to updated

Assumptions

  1. When UAT is complete, authoring can temporarily pause on both authors while the two are synced. SLA for the author unavailability should be less than 1 hour assuming no bulk operations have occurred on the “existing” author after the split.
  2. Larger fixUtil jobs are still expected to run over the weekends, at which time authoring will be inaccessible. The smaller fixUtil job needed to sync “existing” and “updated” can be run as part of the ZTD cutover to new production.

Authoring Content Sync Process

Listeners on Existing Author:

    1. We will have Replication and Modification event listeners running on Existing Author (supporting active live environment) to record Author user actions
    2. Author User actions are recorded in the following structure
      • Replication events (Activation, Deactivation) are recorded under “/content/zerodowntime/published////
      • Modification events are recorded under “/content/zerodowntime/updated////”
    3. Author User actions included are: Create, Copy, Delete, Edit, Move, Activate, Deactivate
  1. Standalone Java process:
    1. A Standalone process running out side of AEM will process the published and updated resources list recorded in the Existing Author CRX and will create the content on the UAT Author
    2. Primary Types in scope: Pages (cq:Page) and Assets (dam:Asset)
  2. Listeners on UAT Author: Listener running on UAT Author instance will listen on the custom property set for published changes written to the UAT author and will activate the resources that are published on Existing Author as well.

Pictorial View of the Sync Process:

image2017-2-12 22_28_16

Leave a comment