DevOps: A Practical Guide

12
DevOps: A Practical Guide Dan Jones, CTO

Transcript of DevOps: A Practical Guide

Page 1: DevOps: A Practical Guide

DevOps: A Practical Guide Dan Jones, CTO

Page 2: DevOps: A Practical Guide

2

Don’t freak out.

Page 3: DevOps: A Practical Guide

3

According to Ernest Mueller, an author of the Agile Admin…

DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support. DevOps means breaking down the traditional silos that have existed between Ops and Devs.

Page 4: DevOps: A Practical Guide

4

Page 5: DevOps: A Practical Guide

5

The 2015 State of On-Call Report

Page 6: DevOps: A Practical Guide

6

Continuous integration and Continuous Delivery / Deployment

•  CI tool (e.g. Jenkins) •  Automated Tests (e.g. Unit tests, Cucumber, Selenium)

Share the responsibility of supporting the product

•  “Give your developers a pager smart phone and put them on-call”

Automate Configuration Management (Infrastructure as Code) •  Puppet, Chef, Ansible, Salt

Implement Monitoring and Metrics schemes •  Service Monitoring: Icinga (nagios), Zabbix, Sensu •  Metrics: Graphite / Graphana •  Log Management: ELK stack, SumoLogic, Loggly, etc •  App Performance Monitoring: New Relic, AppDynamics, etc

DevOps Practices – Specific techniques used as part of implementing the above concepts and processes

Page 7: DevOps: A Practical Guide

7

Your system is the guy carrying the bag of manure

Keeping the system running

Your System

So you have the process nailed and things are humming along.

But … In reality things probably look like this

You should always expect that a big Fan is right around the corner

Page 8: DevOps: A Practical Guide

8

So what should you do?

Think defensively

-  Over build your resources initially to handle unexpected load •  Strive for 50% - 75% capacity

-  Monitor and Measure everything

•  Helps anticipate future issues and when you need to scale

-  Build a staging env that is as close to production as you can afford •  Perform load testing on that environment

-  The database will become a bottleneck sooner or later

•  Don’t skimp on hardware •  Have a scaling plan that you periodically revisit

Page 9: DevOps: A Practical Guide

9

But service disruptions and outages will happen

Ways to minimize the impact (i.e. decrease Mean Time To Resolution (MTTR))

-  Make sure your notification system gets the right people involved quickly -  Have up to date remediation docs (runbooks) easily accessible

-  Use ChatOps to collaborate (e.g. Slack, HipChat) -  Conduct blameless post-mortems and weekly on-call reviews to

continuously improve

Page 10: DevOps: A Practical Guide

10

Final Thoughts

DevOps is a large set of processes and tools and can feel overwhelming Like Agile, implement the things that make sense for your business and evolve over time DevOps is a culture that needs to be embraced across the organization It can be difficult to inject that culture down the road, so embrace it from the start!

Page 11: DevOps: A Practical Guide

Questions?

Page 12: DevOps: A Practical Guide

Reach me at: [email protected] Twitter: @danjones914