3. 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.
6. 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
7. 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
8. 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
9. 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
10. 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!