Just like toilet training, DevOps migration is a path of self discovery. We’ll all get there because there aren’t many 20 yr old wearing nappies now, are there!
Here are 8 important concepts to work with and they resonate with everything you do to make sure your toddler is off nappies.
If you want to move to a new level in your life, you must break through your comfort zone and practice doing things that are not comfortable.
T. Harv Eker
1. Introduce Change
To start training my daughter I took her to the shops and asked her to select her favourite character undies. This was my way of introducing her to change but where her choice/opinion was valued. Similarly, at your organisations,
- Introduce Change. Identify the teams (development and operations) that are cloud enthusiasts in your organisation.
- Carry out workshops with such teams and find out the easiest achievable tasks. Work out the bare minimum requirements to build and MVP/Proof of Concept. Preferably a new service/component.
- Get them excited!
2. Ditch the pull-ups!
No shadow support just mainstream!
The reason we bought the character undies was to ditch the pull ups altogether! Pull ups give a faint sense of backup which delays the process of self-reliance. To be entirely self-reliant, ditch the external support system.
- Encourage the teams to work out their monitoring and alerting mechanisms.
- Build a support roster and a team support schedule, office hours to start with.
- Have the team members support the application and work towards reducing support needed to maintain the application.
The sense of ownership needs to kick in before anything can be implemented.
3. A Glass of Warm Water
Weird feeling in the belly
After the pull-ups being ditched, I would wake my daughter in the morning, sit her on the toilet and get her a glass of warm water to drink, cause you know warm water helps get the body clean up system going.
After a few weeks of warm water in the morning, she realised that “weird feeling in the belly” was and what it meant. In retrospect, it was the “sensation” that one feels before a nature’s call that my daughter needed to be accustomed to. Similarly, the development team need to know the “sensations” that lead to an outage.
In another terms, it’s the monitoring and altering system the developers need to get accustomed to and work towards building such metrics.
4. Poo in my Belly!
Don’t fear a false alarm
Once, my daughter figured out how she feels when she has to poop. She would yell out “There is poo in my belly!!” and I’d sit her on the toilet and she’d, you know, go.
Sometimes successful, sometimes a false alarm.
We kept doing this every time my daughter wanted to use the toilet. After a few weeks, she understood which ones are false calls and which ones are the right ones. So keep revisiting the metrics/alerts to get the right “sensation”. Once, the teams have their metrics right, it gives them confidence that they would know when things go south! And that it would be the right alert that goes off!
5. Toilet on the Clock
Remember the change
Even after being accustomed to when to go do a poo, wee was still a problem. I had to make sure she “remembers” that she is not wearing nappies any more. Hence, toilet on the clock. Make sure the teams are aware of their dashboards and revisiting their metrics with time. This helps tune the thresholds of the alerts.
Also, the team members are reminded of the new mindset.
Reduces the “I completely forgot we were meant to configure monitoring as well” responses in times of outages. Running tests on a schedule for attestation really helps establish the system is functionally operational.
Every kind of attestation serves to add to the team’s confidence in running the system they own.
6. Automate!
For a while I would take my daughter to the toilet and help her sit and clean up. There comes a time that a parent’s back gives way! In short, Automate!
Encourage automation to maintain immutability and stability of configuration.
The team leads should constantly remind team members to steer clear of manual hackery of systems. Automation helps the team track how the application ecosystem changes.
A CI/CD staged flow also helps stage the changes through the environments and catch issues before they hit production. Again this builds confidence in the teams that their infrastructure and application configuration are rid of manual intervention.
7. Accidents! Oops!
Just be prepared for accidents. No Blame!
Even after the whole journey there will be accidents.
Have some bloated thresholds and response times committed and reduce them gradually. Treat accidents as learning experiences towards building fault-tolerant apps. Fault-tolerant from the ground up - infrastructure, automation, applications etc.
8. Poo Stars!
Appreciate! Appreciate! Appreciate!
Chart out goals for the team. For example, first staged deployment through to production or first successful game day, etc.
Make sure that every win is celebrated, irrespective of the accidents along the way.