DevOps at ACCU 2012

5,072 views
4,608 views

Published on

Slides from "DevOps and Infrastructure-As-Code" at ACCU 2012 (25-28 April 2012, Oxford).

Published in: Technology, Self Improvement
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,072
On SlideShare
0
From Embeds
0
Number of Embeds
448
Actions
Shares
0
Downloads
41
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

DevOps at ACCU 2012

  1. http://shipitsquirrel.github.com/Monday, 30 April 12
  2. DevOps & Infrastructure As Code Gavin Heavyside - ACCU 2012 - 27 April 2012 gavin@heavyside.co.uk @gavinheavysideMonday, 30 April 12
  3. Getting Software Into Production • Deliver value to customers • New features • Bug fixesMonday, 30 April 12
  4. Software Releases • QA cycle • Downtime during deploy • Out-of-hours • Stress • RiskMonday, 30 April 12
  5. “The Cloud” • Virtualisation & Cloud IaaS lowered cost of entry for businesses • No hardware, but still sysadmin tasks • Small companies get big company issuesMonday, 30 April 12
  6. Agile Infrastructure • New technologies iterate fast • Changing platform requirements • Cutting-edge vs tried-and-testedMonday, 30 April 12
  7. Monday, 30 April 12
  8. Monday, 30 April 12
  9. Monday, 30 April 12
  10. • www.mydrivesolutions.com • Insurance telematics • Linux, chef, GIS, Ruby, Rails, SQL, NoSQL, AWS, C++Monday, 30 April 12
  11. Monday, 30 April 12
  12. DevOps • Name invented around 2009 • DevOps Days around the world • Making releases easier through collaboration and automationMonday, 30 April 12
  13. Development • Driven by functional requirements • Business needs • Features • Working on desktop OS • Local configuration & settingsMonday, 30 April 12
  14. Operations • Driven by non-functional requirements • Stability • Performance • Monitoring & Alerting • Minimising operational riskMonday, 30 April 12
  15. Monday, 30 April 12
  16. Monday, 30 April 12
  17. Infrastructure As Code • Repeatability • Automation • Agility • Scalability • Reassurance • Disaster RecoveryMonday, 30 April 12
  18. Infrastructure As Code • “Break the infrastructure down into independent, reusable, network-accessible services. Integrate these services in such a way as to produce the functionality your infrastructure requires” - Adam JacobMonday, 30 April 12
  19. Key Principles • Modularity • Cooperation • Composability • Extensibility • FlexibilityMonday, 30 April 12
  20. Key Principles • Repeatability • Declaration • Abstraction • Idempotence • ConvergenceMonday, 30 April 12
  21. Chef vs Puppet A Battle To The Death?Monday, 30 April 12
  22. Chef • Open-Source Configuration Management • Developed by Opscode • Solo, Server, HostedMonday, 30 April 12
  23. Chef • Scriptable, repeatable systems • Write cookbooks containing recipes • resources, attributes, data bagsMonday, 30 April 12
  24. Cookbooks & Recipes • Cookbooks are the canonical unit of distribution & sharing in Chef • Cookbooks contain • Recipes • Attributes • Templates & FilesMonday, 30 April 12
  25. Attributes • Every node has attributes • Saved on Chef server • Updated each chef-client run • Cookbooks specify default attributes • Override per-role and/or per-nodeMonday, 30 April 12
  26. Roles • Roles contain other roles and recipes • Define what you want your node to beMonday, 30 April 12
  27. Monday, 30 April 12
  28. Data BagsMonday, 30 April 12
  29. Using a Data BagMonday, 30 April 12
  30. Chef ServerMonday, 30 April 12
  31. Knife • command line tool to interact with Chef • manage cookbooks, roles, data bags • Search nodes • Bootstrap nodes • Plugins to manage cloud serversMonday, 30 April 12
  32. Keeping nodes up to date • Run chef-client as a service • Updated a cookbook? • Applied to all nodes automaticallyMonday, 30 April 12
  33. Test-Driving Infrastructure • http://www.cucumber-chef.org/ • https://github.com/Atalanta/cucumber-chefMonday, 30 April 12
  34. Monday, 30 April 12
  35. Monday, 30 April 12
  36. Monday, 30 April 12
  37. Vagrant • http://vagrantup.com • Lightweight, reproducible, portable VMs • Configure with Puppet, Chef & others • Package boxes for others to useMonday, 30 April 12
  38. Live DemoMonday, 30 April 12
  39. Monday, 30 April 12
  40. NoOps • PaaS • Heroku, Elastic Beanstalk, etcMonday, 30 April 12
  41. Monitoring & Alerting • Nagios, greylog2 etc • Hosted options • #monitoringsucksMonday, 30 April 12
  42. Metrics • “If you can’t measure it, it doesn’t exist” • Track performance • Critical counters • Report against SLAs • Identify problems & bottlenecksMonday, 30 April 12
  43. Metrics • Statsd, GraphiteMonday, 30 April 12
  44. Monday, 30 April 12
  45. CommunicateMonday, 30 April 12
  46. CommunicateMonday, 30 April 12
  47. Zero-Downtime Deploys • Deploy updated code • Graceful restarts • Allow existing processes/requests to complete • New requests get processed by updated codeMonday, 30 April 12
  48. Configuration • The configuration of an environment is as important as the code • Settings, values, orderingMonday, 30 April 12
  49. Database Schemas • Make your db migrations non-destructive • Update the schema before deploying codeMonday, 30 April 12
  50. • https://github.com/mydrive/capistrano- deploytags • https://github.com/mydrive/capistrano- detect-migrationsMonday, 30 April 12
  51. Recap • Bridge the gap between dev & ops • Put your infrastructure in source control • De-risk deploys by doing lots of them • Automate everythingMonday, 30 April 12
  52. @gavinheavyside gavin@heavyside.co.ukMonday, 30 April 12

×