Improving Developer Experience for AEM Cloud Service

Last year AEM Cloud Service introduced Rapid Development Environments to help developers iterate over code and configuration changes faster, thus improving developer productivity. We did not stop there. Improving the developer experience for AEM CS customers is still a top priority for us.

In collaboration with several customers, we have identified a number of improvements around developer experience. In this talk we will demonstrate a number of improvements and new features in the AEM Developer Console, Rapid Development Environments, AIO CLI tooling... One example is improved access to AEM logs during development, one of our most requested improvements on the developer experience.

Join us in this session to learn about:

RDEs require deployment still, so they are network limited - any plans for offline testing (containers, vms?).

Natalia Angulo

For local development, we have the local SDK. Please let us know what's missing, we're interested in hearing from you.

Tomasz Sobczyk

Have you seen anyone who replaced local instances with RDE completely? (I am in the middle of prep for that). Any learnings?

Natalia Angulo

It was answered live, but leaving here a summary. Yes, some customers are using RDEs for CI/CD and creating pipelines to test their git pull requests. Therefore they started replacing the local SDK testing with automatic testing happening on RDEs via CI.

Rapid development env are really important topic. What is done in that regard to enchance the development experience for on promise aem?

jsedding

Rapid Development Environments are exclusive to AEM Cloud Service. One of their purposes is allowing development at a similar pace to what is already possible on a local SDK/local AEM instance. What do you think is missing from the on-prem developer experience?

Tomasz Sobczyk

Please have a look at AEM Compose :)

Dennis Fisch

The persistance backend seems to be different from regular AEMaaCS environments (which use MongoDB). Any plans on changing this in the future? This affects queries and updates to large sets of resources.

Robert Munteanu

Not an RDE expert, but I think anything that is performance sensitive should instead be executed in dev environments.

Bartłomiej Gątarski

Very valid question, I had a case where issue occured in AEMaaCS env, where RDE wasn't impacted. It was related with storage system.

Natalia Angulo

Hi! There are no plans for that specifically. We do have some plans for running indexing checks as we do for dev/stage/prod nowadays. Anyway, let me share my vision of the development flow for AEM as a Cloud Service: 1. RDE environments: daily development of new features or hotfixes, where you spend most of the development cycles. You could either deploy your changes from your local laptop or directly from your git pull requests via CI pipelines you could create. 2. DEV environment: integration environment where you deploy your code changes once you've already developed and tested in your RDE environments. Here you could perform extra testing as any other integration environment and therefore you could also identify potential slow indexes. 3. STAGE environment: pre-production environment ideal for performing load testing and any other testing that needs to be close to production (having large sets of resources). 4. PROD environment: deploy your changes live!

At the moment, only 1 RDE per customer is available. Will there be more RDE available per customer in future?

Ina

More can be licensed

Natalia Angulo

Adobe gives for free 1 RDE environment per AEM solution you purchase. You can buy more based on your needs.

Nilesh Mali

Any easy way to copy all the configurations and required content from cloud production env to RDE env.

jsedding

It is possible to ude the content copy tool[1] to copy content from other environments to an RDE. Regarding configurations, the assumption is that it should be quick and easy to deploy them to RDEs. Note that some configurations need to be different on different environments, which would make an automation risky. We hope that such initial setup tasks will also benefit from the snapshots feature we are working on. [1] https://experienceleague.adobe.com/en/docs/experience-manager-cloud-manager/content/using/content-copy

Beo

Forwarding logs to New Relic? Is it possible to forward to The new relic which is bundled with AEMaaCS?

Natalia Angulo

I'm not familiar with New Relic log forwarding but whatever works for dev/stage/prod in a cloud-based, it should work for RDEs too. I can see nowadays the configuration pipeline does not support New Relic forwarding type [1] (for any type of environment) so I'm taking note to forward it as a request to our Product Manager. If you're interested in making some follow-up I encourage you to ping us on our Discord #aem-rde channel https://discord.gg/aem-live [1] https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/developing/log-forwarding#logging-destinations

Vugar Aghayev

Is it possible to attach remote debugger to RDE? E.g., configure IntelliJ Idea to troubleshoot an issue

jsedding

This is not currently possible. However, we are aware of the requirement for remot debugging and we are experimenting with possible solutions. Check out the talk "Advancing Developer Experience: AEM as a Cloud Service Innovations"[1] for more on this topic. [1] https://adapt.to/2024/schedule/advancing-developer-experience-aem-as-a-cloud-service-innovations

Avdhesh

RDEs do not include a preview tier, any plans to enable preview tier for RDEs?

Natalia Angulo

What is the use case of having preview on RDEs?

Barry

What is the performance of creating and restoring snapshots? Seconds? Minutes?

jsedding

I expect the time of applying a snapshot to be similar to the time it takes for resetting an RDE. I.e. around 5-10 minutes.

Vugar Aghayev

Is it possible to configure token expire time which is issued when you rde install? It’s set to 5mins by default and my Vodaf… internet sucks to upload a complete package which is huge

Natalia Angulo

I encourage you to ping us via our Discord #aem-rde channel (https://discord.gg/aem-live). There's no current way of configuring such timeout but we could work with you to bump it up based on your needs.

Natalia Angulo

Another option is that you upload the package to a server and generate a public URL to access the resource. If you notice on [1], you can also install resources that are accessible via URL: ``` aio aeminstall -t content-package "https://repo1.maven.org/maven2/com/adobe/aem/guides/aem-guides-wknd.all/2.1.0/aem-guides-wknd.all-2.1.0.zip" ``` [1] https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/developing/rapid-development-environments#deploying-to-rde

Ina

Are the snapshots bound to a user or to the program?

jsedding

Our current thinking is that snapshots are bound to an environment. We are aware that sharing snapshots will add more value and we will be looking into ways to do so securely. I hope that we can share snapshots at least within a program in the not too distant future.

Michael

Is there a way to integrate RDEs to a CI/CD pipeline in order to run test automation (e.g. with GitHub actions using GitHub runners).

Robert Munteanu

Last year there was https://adapt.to/2023/schedule/automated-ci-with-aem-cloud-service , have you seen that?

Michael

👍

AIO CLI only supports Node 18 (EOL) and Node 20 (EOLfor active LTS *tomorrow*). How long will it take long until current version is supported?

Natalia Angulo

Good point! thanks for sharing this. We'll work on it asap to support Node version 22. We will announce it in our Discord #aem-rde channel once it's done (https://discord.gg/aem-live).

Mohit Kataria

Can we access JMX statistics using the new developer console?

Natalia Angulo

This information is not available in the AEM developer console nowadays. We're taking note to send it to our product manager as a feature request. Thank you!

Jesse Pinkman

I didn't see indexes tab in the new developer console, is it coming to get an overview of your indexes?

Natalia Angulo

Good point, it would be a handy feature. We're taking note to send it to our product manager as a feature request.