$30 off During Our Annual Pro Sale. View Details »

The Addictive Nature of Automation

The Addictive Nature of Automation

Automation is generally accepted as “good.” I’d like to suggest that automation has rather addictive powers, too. Using my own experiences, but not any “real science”, I’ll explore how automation can make operations people happier, developers more productive, systems more resilient, and customers happier. I’ll share some of my experiences at CustomInk where we leveled-up our automation using tools such as Chef, Jenkins, and communication.

Originally presented at LOPSA-East 2013

Nathen Harvey

May 04, 2013
Tweet

More Decks by Nathen Harvey

Other Decks in Technology

Transcript

  1. None
  2. Addictive Automation Nathen Harvey nharvey@opscode.com @nathenharvey

  3. whoami • Nathen Harvey • @nathenharvey • Technical Community Manager,

    Opscode • Co-host Food Fight Show Podcast • Co-organizer DevOpsDC Meetup
  4. Automation • The use of information technologies to optimize productivity

    in the production of goods and delivery of services http://en.wikipedia.org/wiki/Automation
  5. Results of Automation • Operations people are happier • Developers

    are more productive • Systems are more resilient
  6. Results of Automation • Customer Satisfaction

  7. $DAY_JOB -1 • Make bachelorette parties memorable

  8. None
  9. When I joined... • One team working on a few

    applications simultaneously • Two-week sprints • Operations team deploys the code at the end of each sprint
  10. Business Requirements

  11. Process • Ticket included in the sprint planning session •

    Easy change, made at the beginning of the sprint • Change committed, developer done • Change sits in repo for 12 more days waiting on Ops to press the “deploy” button
  12. Deploy Time!

  13. Ceremony • Email everyone in the company • Announce time

    and date of the deploy • Full set of changes included • Schedules updated
  14. All Hands on Deck!

  15. Meanwhile... • Office pool for when the rollback will happen

  16. 17 Days later...

  17. Ship it! • Deploy small, independent changes • Deploy when

    change is ready
  18. Change the process • git checkout -b • Redefine "done”

    • Move from sprints to Kanban
  19. Verifying Changes • Staging and verifying many small changes in

    one or two staging environments doesn't work • Each topic branch must have its own staging environment
  20. Disposable Infrastructure • Short-lived branches need short-lived staging environments •

    Only feasible way is via automation
  21. Configuration Management • Your custom scripts and golden images are

    not sufficient • You need a configuration management framework
  22. Infrastructure as Code • Enable the reconstruction of the business

    from nothing but • a source code repository • an application data backup • and compute (bare metal or cloud) resources
  23. Development Environments

  24. cap jenkins:create cap jenkins:build cap jenkins:status cap jenkins:console cap jenkins:delete

    Automated CI • Jenkins tests every branch • Enable developers
  25. Stoplight

  26. Deploy • Developers deploy the applications • Ceremony is automated

  27. Results • Minimized work in progress • Shorter cycle times

    • Fewer integration bugs • People agitated when deploys slow down • Everyone deploys • Rollbacks are the exception
  28. Results • Developers have responsibility for getting features to production

    • Operations works on more interesting challenges • Customer satisfaction and sales increase
  29. How do YOU get started? • Look at the process

    • minimize handoffs • identify bottlenecks • Automate, automate, automate • Use the right tools • Enable and empower everyone
  30. Automation • Start with one function or application • Automate

    end-to-end • Take lessons learned to other areas
  31. The right tools • Distributed version control • Continuous Integration

    Server • Configuration Management Framework • Sensible and comprehensive Monitoring
  32. The right tools • Group chat • Video conferencing •

    Face-to-face conversations • Blameless Postmortems • Retrospectives • Continuous Improvement
  33. How do YOU get started? • Look at the process

    • minimize handoffs • identify bottlenecks • Automate, automate, automate • Use the right tools • Enable and empower everyone
  34. What Questions Do You Have? • Nathen Harvey • @nathenharvey

    • Technical Community Manager, Opscode • Co-host Food Fight Show Podcast • Co-organizer DevOpsDC Meetup