The document discusses lessons learned from automating deployments across 300+ production Adobe Experience Manager instances. It emphasizes that automation requires eliminating bugs and inconsistencies to make deployments and support bearable. True automation means not just running steps automatically but automatically checking correctness and actively reporting issues. Automation builds confidence when processes are run daily in test and production environments, minimizing manual intervention and distractions to achieve flawless, hands-free operation.
3. The background
• 50+ AEM 6.0 production environments
• 2-node authoring cluster
• 4 publish instances
• Ops team = 3 people
• Project team supporting Ops = 4 people
• Full deployment of all environments = 3h
+
4. The background
• An automated deployment process in its
basic shape worked early on.
• It took a lot of time to eliminate
• major issues and bugs
• inconsistencies
from the application (and product) to make
the automated deployments and the (user-)
support efforts bearable.
+
6. What doesn’t work
• Manual installation of hotfixes and
application packages
• Manual checks for correctness of the
deployment
• Waiting for feedback from end-users
+
7. Automation means
• Not only automatic
execution of steps
• But also automatic
checks of correctness
• Active reporting in
case something goes
wrong
+
8. Automation means
• Repeat the same
process over and over
again and always get
the same result.
• Or: Apply the same
process to N
instances and get the
same result.
+
9. +
The system should only be picked up
by the loadbalancer, if all bundles are
in state active and a request to the
homepage returns with HTTP
statuscode 200.
Epic: Avoid manual work
10. +
A system should only be used, if all
hotfixes have been applied correctly.
Epic: Avoid manual work
11. You can only trust a
process if you execute
it every day
+
12. Automation starts early
• Start in the DEV
environments.
• Run your automated
processes daily.
• Only then you can get enough
confidence to run them in
PROD
+
13. +
As project team we want the test
environments being deployed daily
with the latest snapshots and using
the same deployment procedures as
in PROD.
Epic: Get confidence
16. The need for manual intervention
breaks the purpose of automation
• Unlocking a page
• Restarting a bundle
• Adding ACLs
• Checking a logfile
• …
+
17. Focus on flawless operation
• Detect problems actively (healthchecks,
automatic logfile observation, end-to-end
monitoring)
• Authors should never rely on admin support to
recover from error situations
• Enable 1st level support to solve as many
problems as possible
• And if someone happens: provide enough and
timely information
+
18. +
As an author I don’t want to call
support to unlock a page in situations
when a workflow failed, but recover
from that situation on my own.
Epic: Reduce support calls
19. +
As IT operation engineer I want to get
an alert if the time to login exceeds 5
seconds.
Epic: Monitoring
21. +
As proactive developers we want not
only automate the deployments, but
also avoid the need to deliver
production support.
Epic: Plan the automation
“Automation” deserves its name, if you can push the button and go home
Some people think, that automating a manual click path into a curl-script can be called “automation”.
It prevents you execute the steps manually, but most often such scripts lack proper error handling. So in the end you still have to check the outcome of this script and validate the correctness.
Some people think, that automating a manual click path into a curl-script can be called “automation”.
It prevents you execute the steps manually, but most often such scripts lack proper error handling. So in the end you still have to check the outcome of this script and validate the correctness.
Some people think, that automating a manual click path into a curl-script can be called “automation”.
It prevents you execute the steps manually, but most often such scripts lack proper error handling. So in the end you still have to check the outcome of this script and validate the correctness.
“The system should be used only if all hotfixes are applied correctly.”
Some people think, that automating a manual click path into a curl-script can be called “automation”.
It prevents you execute the steps manually, but most often such scripts lack proper error handling. So in the end you still have to check the outcome of this script and validate the correctness.
It’s the same with baking: You don’t start your baking career with the wedding cake for your sister. But you rather start practicing years before with smaller cakes, you gain experience with it and confidence in your abilities, until you finally go for the wedding cake.
Some people think, that automating a manual click path into a curl-script can be called “automation”.
It prevents you execute the steps manually, but most often such scripts lack proper error handling. So in the end you still have to check the outcome of this script and validate the correctness.
“The system should be used only if all hotfixes are applied correctly.”
Assuming a “need to know” policy, many people knowing the admin password mean, that they all need to login as admin on a regular basis.
Image: 63693715
Bild notwendig, relying on the help of others – gebrochener Fuß
Bild notwendig
Some people think, that automating a manual click path into a curl-script can be called “automation”.
It prevents you execute the steps manually, but most often such scripts lack proper error handling. So in the end you still have to check the outcome of this script and validate the correctness.
“The system should be used only if all hotfixes are applied correctly.”
Some people think, that automating a manual click path into a curl-script can be called “automation”.
It prevents you execute the steps manually, but most often such scripts lack proper error handling. So in the end you still have to check the outcome of this script and validate the correctness.
“The system should be used only if all hotfixes are applied correctly.”
Some people think, that automating a manual click path into a curl-script can be called “automation”.
It prevents you execute the steps manually, but most often such scripts lack proper error handling. So in the end you still have to check the outcome of this script and validate the correctness.
“The system should be used only if all hotfixes are applied correctly.”
“Automation” deserves its name, if you can push the button and go home