Adobe.com Learnings with Edge Delivery AEM
In this session, you will hear about the challenges, learnings, and benefits adobe.com team discovered while migrating the website onto Edge Delivery AEM.
We will focus on topics that are familiar to every large-scale AEM project, including:
- CI/CD, Release & QA practices
- Metadata and indexing
- Web Performance
- Authoring UX and content validation
- Development tools
- Localization
puradawid
How did you deal with content migration?
Lars
You can migrated content with https://www.aem.live/developer/importer
puradawid
I mean the smaller migration, when you introduce a new component/model that handles different data structure, and eventually you need to change jt
Mariia Lukianets
If we need a different structure we usually enhance the code to support both structures (always backward compatible)
Tomasz Sobczyk
Spoke to Maria about it at greater length. Generally there is no solution for that in EDS apart from being backward compatible forever (Hi Java!)
Beo
How to govern that developers dont publish "foobar" content to adobe.com?
Mariia Lukianets
We have a 'drafts' folder and it is the only location where we modify documents. If I want to experiment with photoshop DE page, I would copy it to /drafts/de/mariia/* and do my experiments there. Content Authors additionally use SharePoint ACLs & document locking to protect their content. But devs normally have full access to all docs
Mariia Lukianets
For adobe.com we were happy with GitHub, so I am not sure if other repos are supported. I'd ask this question either in https://discord.gg/aem-live where the Engineering could answer it or address it to your Adobe contact person
Nilesh Mali
How can we get the AEM cloud pipeline checks on GitHub/Gitlab ?
Sanket Dixit
What's the time to live for a feature with this setup?
Mariia Lukianets
it depends, but in the most regular scenario: 1-2 days code review/addressing comments 1-2 days you team QA validation -> marking 'Ready for Stage' If Stage batch is not locked yet - it gets in, if locked you'll need to wait for the next batch another day or two 1-2 days for the batch to be validated and merged
Mariia Lukianets
Let's say 5 PRs are merged in Stage branch. PR #3 has a bug. We just revert PR with GitHub UI. Worse situation, PR #3 can't be reverted easily because PR#4 touched same files and we have a conflict? We revert both, first PR#4 and PR#3. The PRs should be tested very well before they reach stage to avoid risks&delays. And Stage batch handling is unmerciful to keep it efficient, no waiting for fixes :)
Tomek Niedzwiedz
Have you considered using automated visual comparison tests, e.g. Percy? I find that approach really neat when it comes to picking up unexpected changes, but it does require relatively stable content and I'm wondering how well it would work in a document based approach.
Mariia Lukianets
Automated visual or screenshot check is something I want to have (we don't have it yet, at least in my subteam :) ) It will save time for sure, but IMO still can't replace that last check on prod pages. Our prod content is changing rapidly so for autotest we would unlikely be able to use it, it would rather be some defined test pages. Those pages could also serve as documentation of all the supported features/blocks you have. But it still makes a lot of sense since you can catch UI regressions early.
Tomasz Sobczyk
Maria - you could have that still - snapshot pages before and after deployment :) We recommend visual regression tools - they save a lot of time
Mariia Lukianets
In the page & bulk metadata
Remo Liechti
When you have 3 PRs accumulated in stage, and for some reason one of those cannot be merged to main, how do you ensure to not block the other 2 from being merged to main?
nicoleh
How is the workflow when you have a bug on main?
Mariia Lukianets
If it's a critical bug that was introduced by last batch merged in the main - we would revert the whole batch & notify the devs they need to reopen their PRs again. However, I can't remember this scenario ever happening. More realistic is that there is some critical bug that was introduced a few batches ago but somehow wasn't noticed. Hotfix branch is created and will be merged to Stage for validation (nothing goes to prod directly). However depending on the urgency other PRs already present in Stage could be reverted, but mostly we just combine hotfix with regular PRs and ask for an urgent validation. To be fair we don't have many of high urgency bugs due to extensive testing happening prior to merge
Mariia Lukianets
feature flags could be implemented using bulk metadata. Since all your logic is executed in JS on the client you can read the feature flag value from the meta tag (or check for its existence) to toggle your feature. When the time comes you can add a flag to the metadata sheet & specify the scope with grep expression. Then re-publish the metadata - AEM will flush the catch on all related pages and your feature is on. I don't have a pure feature flag example at hand but in this session i talk about using metadata to schedule some content on the website, it might be helpful https://www.youtube.com/watch?v=AJ0N_qJfgbw
Beo
what if someone enters "fault" data into a sheet... how to debug?
Mariia Lukianets
someone did something wrong in metadata and you noticed means: 1. you know on which page it happens 2. you know what is wrong since you can check in the markup meta tags and see an issue to fix: 1. check page first to see if it's page metadata 2. if not. locate the bulk metadata file, filter by page URL (you might start with the full URL and keep removing the last part to find the exact row if the grep expression is used) 3. fix or ask an author to fix 4. republish - cache will be flushed automatically
Jurgen Brouwer - AmeXio
How are hotfixes handled? Can you bypass steps to speed up the process if really necessary?
Tomasz Sobczyk
Where can I find the docs for the events that are Sent to github after page publish?
Mariia Lukianets
https://www.aem.live/developer/github-actions 'resource-previewed' is not mentioned in the docu, but if you need it just ask the admin to enable it for your repo. 'resource-published' should be enabled by default
puradawid
So, the index spreadsheet can have the same number of rows as the number of pages in the entire website?
Mariia Lukianets
yes
Masoud Rozati
Bulk metadata can be split into several files (https://www.aem.live/docs/bulk-metadata). Why not do the for redirect, because redirects are usually managed by different teams
Mariia Lukianets
Do you mean why can't the redirects file can't be split? I haven't tried, but if it's the case I would address this as a feedback/question to the Engineering team. They might just implement it once it's reported, this is how it worked with splitting the metadata, it was added once people asked for it
Dominik Suess
The language root docs setup looks very much like MSM / languagecopies. This is supported by sharepoint / google docs with workflows?
Dominik Suess
I think she answered it in the next slide :)
Beo
How do you deal with l18n of currency, dates, etc. pp? eg DE_de != CH_de (64,33 for DE, 64.33 for CH)
Mariia Lukianets
We (the website) are requesting pricing from the internal service and specify for which country/language we need it, so in the response, we get the price value and format with currency. pricing information is not included in the word document, it's a dynamic link to the latest price and gets resolved on the client to always reflect the latest updates. That internal service is responsible for proper formats and the website is just one of their consumers, together with apps like creative cloud desktop etc