Empowering Teams: The RDE Advantage in AEM Development


AEM’s Rapid Development Environment (RDE) is a feature introduced by Adobe to enhance the development process for AEM as a Cloud Service. RDEs provide developers with a streamlined environment for building, testing, and deploying AEM applications rapidly.

Problem Statement: Local SDK Limitations and the Role of RDE

Developers utilizing the AEM SDK for local development often encounter challenges due to its limitations.

  • Local SDK lacks certain cloud-native features like Asset Processing and Analytics, leading to discrepancies in development environments.
  • Setting up multiple instances such as Author, Publish, and Dispatcher together can cause significant system slowdowns, impacting productivity
  • Regular updates are also necessary to align with the latest cloud version, adding further complexity to the development process.

Configuring these features becomes time-consuming or impossible due to constraints in local resources or compatibility issues with cloud-native functionalities.

Moreover, typical stages of development/hotfix with Local SDK would look like:

What if there was a way to validate code in a cloud-like environment, bypassing the need for extensive reviews, deployment approvals, and complex pipelines? Imagine the potential for faster development cycles and the ability to release hotfixes rapidly. This is precisely where the Rapid Development Environment (RDE) steps in to save the day.

How RDEs Facilitate Quick and Iterative Changes?

  • Environment: RDEs streamline the process of implementing swift and iterative modifications by offering developers pre-configured environments.
    • Every program is equipped with an RDE, ensuring convenience.
      In instances of Sandbox accounts, they automatically hibernate after a few hours of inactivity, optimizing resource management.
    • Upon creation, RDEs are configured with the most recent version of Adobe Experience Manager (AEM), ensuring compatibility and up-to-date functionality.
    • For Production (non-sandbox) programs, additional RDEs may be licensed, catering to varying project requirements.
  • Development: RDEs enable developers to seamlessly synchronize code from their local development environments, enhancing collaboration and efficiency.
    • They empower developers to deploy various components, including
      • content files
      • dispatcher configurations
      • OSGi configurations
      • Bundles
      • Individual files like HTL, .content.xml (dialog XML) deployment

With an RDE typical stages of development/hotfix would look like:

Advantages of RDEs:

  1. Rapid Iteration and Testing: With pre-configured environments and seamless code syncing capabilities, developers can iterate on changes rapidly and test them in real-time within the RDE environment. Thus, saving the time from Customer-specific and Cloud manager pipelines
  2. Enhanced Collaboration: RDEs foster collaboration among team members by providing a centralized platform where developers can work together in the same environment. This facilitates smoother communication, faster issue resolution, and promotes knowledge sharing among team members
  3. Version Control and Compatibility: RDEs come provisioned with the latest version of Adobe Experience Manager (AEM), ensuring compatibility and providing access to the latest features and enhancements. This eliminates compatibility issues and ensures that developers can leverage the full capabilities of the AEM platform.
  4. Verification of Hotfixes: Developers can leverage RDEs to quickly verify and test hotfixes or small code changes. Instead of waiting for these changes to progress through lengthy deployment pipelines, developers can deploy them directly to the RDE environment for immediate validation. Utilize git labels in CM to identify the code deployed via pipelines.
  5. Frontend Development Without Local Setup: RDEs offer a convenient solution for frontend developers who may not require a full AEM setup locally. With RDEs, frontend developers can work directly on the cloud-based environment, simplifying the development workflow, especially for frontend-focused tasks such as UI/UX design and development.
  6. Testing Cloud-Specific Features: RDEs are particularly useful for testing and validating features that are specific to cloud-based environments. Developers can deploy and test these features directly within the RDE environment, ensuring compatibility and functionality in the target cloud environment without the need for complex setup or configuration changes.

Setting up/using RDE:

Please refer to following links to learn how to set-up/use RDE:

Issues and Resolution

Unable to execute aio commands
Upon installing the aio plugin, users on official laptops may encounter difficulties when executing aio commands. These issues include:

  • “command not found”
  • “File C:\Users\<User_Name>\AppData\Roaming\npm\aio.ps1 cannot be loaded because running scripts is disabled on this system.”

Consider following if you encounter issues after installing aio:

  1. Utilize git bash for executing commands.
  2. Execute aio commands directly from the directory “C:\Users\<User_Name>\AppData\Roaming\npm”.

Unable to push to RDE instance
If you encounter the “unable to load certificates openssl” error while using status/install commands, you can apply the following quick fixes:

  • Temporarily disable SSL certificate verification:
npm config set strict-ssl false

Alternatively, you can bypass certificate verification by setting an environment variable:

export NODE_TLS_REJECT_UNAUTHORIZED=0
SET NODE_TLS_REJECT_UNAUTHORIZED=0       //For Windows command line

Please note that both commands pose a security risk as they bypass certificate verification, so they should only be used temporarily.

403 Unauthorized

If you encounter a 403 error with aio commands, especially if they were functioning properly the previous day, try logging out and then logging in again.

aio logout

aio login

Resetting an RDE:

At times, the purpose of an RDE may change, such as when transitioning from testing one feature to another. In such cases, a reset may be necessary. This process involves returning the environment to its original state, free of any previously installed content or code. Essentially, resetting an RDE is equivalent to recreating it from scratch. For detailed instructions and additional options, consult Adobe’s documentation.

Furthermore, a reset ensures that the RDE is updated to the latest available AEM version, providing developers with a refreshed starting point for their projects.

Updating RDE to the Latest Version:

As of February 2024, pipelines are employed to upgrade the version of an AEM as a Cloud Service (AEMaaCS) instance. However, as RDEs lack an associated pipeline, upgrading the version requires resetting the RDE. This process entails deleting all content and code, effectively recreating the RDE instance from scratch.

Best Practices for Using RDE

General:

  1. Single Project Support: Ensure only one project is deployed at a time to maintain the AEMaaCS experience. For multi-module setups, deploy modules as they would be on the Cloud Instance. Avoid deploying multiple projects simultaneously.
  2. Committing Code at Milestones: Validate code locally with the AEM SDK. Deploy to RDE and validate. If the issue is resolved, commit the code to git.
  3. Use RDE specific runmode when needed ‘rde’

Shared RDE, but single developer session at a time

  • Reset the RDE when transitioning to a new feature to ensure a clean development environment.

Collaborative Development on RDE

  1. Coordinate code changes by committing them to a shared git branch before deploying to the RDE if multiple developers need to collaborate in a shared environment.
  2. Reset the RDE if it has been used by another developer to prevent conflicts and maintain a clean environment for collaboration.

SDK v/s RDE

AEM SDK:

  • AEM SDK enables developers to establish and operate AEM instances directly on their local machines. Development and testing processes are contingent upon the resources accessible on the developer’s machine.
  • AEM SDK provides developers with a broad spectrum of AEM features and functionalities for both development and testing purposes. It incorporates essential tools such as CRXDE and OSGi Console, empowering developers to tailor and troubleshoot configurations in line with project specifications.
  • However, cloud-specific features would not be available on the SDK.
  • Development and testing processes are contingent upon the resources accessible on the developer’s machine.

RDE (Rapid Development Environment):

  • RDE furnishes a cloud-based platform for AEM development, testing, and deployment with latest AEMaaCS version
  • RDE provides pre-configured environments that facilitate swift iteration, testing, and deployment of AEM applications.
  • However, some AEM features may not be fully available in the RDE environment.
  • RDE fosters collaboration among team members.

Word of Caution:

  1. Some AEM Features May Be Unavailable: Certain AEM features, particularly Forms and Guides implementations, may not be fully available in the RDE.
  2. Single RDE Limitation: Only one RDE is available per program. Additional RDEs must be licensed and purchased from Adobe, depending on the team size.
  3. Integration Configuration Adjustments: Environments with integrations may necessitate configuration adjustments during RDE resets, particularly to meet security requirements.

Choosing the Right Tool:

  • Consider Project Needs: Decide based on project requirements, team collaboration, and scalability needs.
  • Opt for AEM SDK for comprehensive local development and testing.
  • Choose RDE for rapid iteration, collaborative development, and cloud-specific features.

Leave a comment