10 Rules of Automation

10 Rules of Automation

How to make better automation,

Db868dc0adbe2c099013e32912b002d1?s=128

Patrick Robinson

December 01, 2016
Tweet

Transcript

  1. 10 rules of automation The value of automation comes from

    both what it does and its judicious application. Google’s Site Reliability Engineering
  2. Patrick Robinson Development Operations Engineer @ Envato @DrNemski ~ Twitter

  3. None
  4. Goals

  5. 1. Reduce toil “Toil is the kind of work tied

    to running a production service that tends to be manual, repetitive, automatable, tactical, devoid of enduring value, and that scales linearly as a service grows.” - Site Reliability Engineering
  6. 2. Build resilient automation “one could build a service that

    alerts its SREs several time day where each alert requires a complex response involving plenty of human judgement… [this] is definitely toil” - Site Reliability Engineering
  7. 3. Build systems that are easy to reason about

  8. How to get there

  9. 4. Prefer small tools “Do one thing do it well”

    ~ old unix proverb
  10. Five stages of (im)mutability

  11. Pets

  12. Wagyu beef

  13. Frankenstein

  14. Sir Nutkin

  15. Unicorn

  16. 6. Design modular systems Build artifact Run tests Deploy to

    production Run tests
  17. 7. Composed of loosely coupled components

  18. Caveats

  19. Don’t implement an automated process that requires unnecessary manual intervention

    8. Avoid automation fatigue
  20. 9. Don’t just automate a complex error prone process Cyclical

    dependencies between applications Unreliable api requests (especially asynchronous requests)
  21. 10. Avoid re-inventing the wheel If the tool only does

    95% of what you need it to, do the other 5% in Bash