Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DevOps at ACCU 2012

6,830 views

Published on

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

Published in: Technology, Self Improvement
  • Be the first to comment

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

×