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:
- Developer experience improvements that are ready for you to use today
- Tricks and how we envision the development flow
- Streamlining the testing experience in the cloud
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.
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!
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
👍
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.