Introduction to DevOps

2,943 views

Published on

An introduction do DevOps principles given at LeanKanban France conference in November 2014.

Published in: Technology

Introduction to DevOps

  1. 1. . DDeevvOOppss Julien Pivotto November 6th, 2014
  2. 2. . wwhhooaammii JJuulliieenn PPiivvoottttoo • Open-Source consultant at inuits.eu • FOSS defender since 2004 • DevOps believer and evangelist • @roidelapluie on twitter/github
  3. 3. . . ınuits.eu
  4. 4. . DevOps
  5. 5. . AA ttrraaddiittiioonnaall ddeevv sshhoopp Friday, 5PM ”Here is the tarball, put this code live, now! We are on air in 20 minutes!”
  6. 6. . AA ttrraaddiittiioonnaall ooppss sshhoopp • Dependencies? • Database? • Security? Scalability? • Performances? • Availability?
  7. 7. . . 10 days in production Public domain http://en.wikipedia.org/wiki/File:Explosions.jpg
  8. 8. . WWhhaatt iiss hhaappppeenniinngg?? Dev • New features • New releases • Response to change Ops • Stability • Availability • Security .
  9. 9. . If agility/lean is limited to one silo, you’ve a problem
  10. 10. . LLeett''ss ttaakkee aa cclloosseerr llooookk • Devs do sysadmin work ▶ Testing ▶ Database work ▶ Small deployments • Ops do development work ▶ Bash, python scripting ▶ Infrastructure as Code ▶ Monitoring
  11. 11. . IITT iiss eevvoollvviinngg YYoouu nneeeedd ttoo ppllaayy tthhee ggaammee • More velocity • More changes • Volatile environments • Scalability • No space for slow moves • No space for old teams
  12. 12. . WWhhaatt iiss DDeevvOOppss?? DevOps is getting Developers and Ops working together!
  13. 13. . DDeevvOOppss ddaayyss • 200X-2009: World. Patrick Debois, Gildas Le Nadan, Andrew Clay Shafer, Kris Buytaert, Jezz Humble, Lindsay Holmwood, John Willis, Chris Read, Julian Simpson, Luke Kanies, John Allspaw and lots of others… • 2009: Ghent • 2014: Ghent • Dozens of others (Paris in 2013 and 2015)
  14. 14. . DDeevvOOppss ddaayyss • Talks in the morning • Open-Space in the afternoon • Some big companies have organized internal DevOps days
  15. 15. . DevOps is a cultural and professional movement Adam Jacob, OpsCode
  16. 16. . DDeevvOOppss Culture Automation Measurement Sharing John Willis and Damon Edwards
  17. 17. . WWhhaatt ccaann DDeevvOOppss bbrriinngg yyoouu?? • Faster TTM • Reliability • Awareness • Trust
  18. 18. . > Culture Automation Measurement Sharing
  19. 19. . . Burn the silos CC-BY 2.0 https://www.flickr.com/photos/cbroders/15427579647
  20. 20. . BBuuiilldd oonnee tteeaamm • People with different skills ▶ Development ▶ CI, CD ▶ Testing ▶ Infrastructure ▶ Monitoring
  21. 21. . A team with one goal: Helping the business
  22. 22. . . Enable communication CC-BY 3.0 http://commons.wikimedia.org/wiki/File:Fiap-paulista-coworking.jpg
  23. 23. . CCoommmmuunniiccaattiioonn • Sit together • Mix open space and offices • Standup (virtual, physical) • Mails, mailing lists, chat • Direct communication • One language to rule them all
  24. 24. . BBuuiilldd TTrruusstt • Experiment • Measure success • Measure failure • Automate the things • Trust between people
  25. 25. . . Play together CC-BY-SA 3.0 http://www.flickr.com/photos/kona99/3987853510/
  26. 26. . PPllaayy ttooggeetthheerr • More idea, creativity • Different approaches • More fun and comprehension • Build trust
  27. 27. . SShhaarree rreessppoonnssiibbiilliittiieess • Everyone is responsible • Everyone is on call, even managers • No fingerpointing • Give access
  28. 28. . Do you let a blind person paint your home?
  29. 29. . DDeeffiinniittiioonn ooff DDoonnee A software project is NOT done until your last user is dead Kris Buytaert
  30. 30. . Culture > Automation Measurement Sharing
  31. 31. . AAuuttoommaattee aallll tthhee tthhiinnggss • Reproducable build • Robust build ▶ Build on a prod-like environment ▶ No more "works on my machine" • Test • Deploy
  32. 32. . You need to get more confident with your code
  33. 33. . TTeesstt aauuttoommaattiioonn • Unit tests • Regression tests • Compatibility tests • Selenium, cucumber, … • TTD, BDD
  34. 34. . DevOps (<)> Continuous Delivery
  35. 35. . HHoowwmmaannyy ddeeppllooyyss aa ddaayy?? It is NOT a contest! BUT
  36. 36. . CCoonnttiinnuuoouuss IInntteeggrraattiioonn • Everyone works in one branch • Run tests on the code • Make a build each time • Deploy each build to a development environment • Run tests on that environments
  37. 37. . Continuous Delivery or Continuous Deployment
  38. 38. . CCoonnttiinnuuoouuss DDeelliivveerryy • A fresh build is always ready to be deployed • The code is always in a good state • Features flag • Human action is needed to deploy
  39. 39. . CCoonnttiinnuuoouuss DDeeppllooyymmeenntt • Same as Continuous delivery… but • Code is automatically deployed • 0 downtime • Silent upgrades • No human intervention • Requires mature testing infrastructure
  40. 40. . . Pipelines
  41. 41. . LLeeaarrnniinngg ppaatthh • Continuous Integration on a Development platform • Continous Deployment to UAT • Continuous Delivery to Prod
  42. 42. . PPrroommoottiioonnss • First click a button • Get more confident • Remove the button
  43. 43. . DDeeppllooyymmeennttss If it hurts, do it more often!
  44. 44. . IIAACC • Infrastructure as Code • Put infrastructure under version control • History, amend, modelize your infra • Deploy monitoring, backups, apps • This is NOT bash scripting • Deploy new platforms at will • Think puppet, chef, …
  45. 45. . YYoouurr iinnffrraa ccooddee iiss……ccooddee • Puppet/Chef/…code must be deployed • Use CI/CD for them also • Run tests on them • Use the same path
  46. 46. . OOrrcchheessttrraattiioonn • Restart all httpd • Which servers have php 53 installed? • Configure db, trigger commands.. • On multiple server at the same time • Think mcollective, ansible, …
  47. 47. . Culture Automation > Measurement Sharing
  48. 48. . Feedback
  49. 49. . MMeettrriiccss • Collect tons of metrics • Build dashboards • Learn from logs • Learn from *
  50. 50. . MMoonniittoorr EEVVEERRYY ppllaattffoorrmm • Dev, Uat, Prod • See the troubles early • Measure performance • Observe side effects
  51. 51. . SSttaarrtt wwiitthh ddeevveellooppmmeenntt
  52. 52. . TThheenn rruunnttiimmee • OS ▶ disk, cpu, i/o, memory • Middleware ▶ queues ▶ API calls ▶ connections • Application ▶ response time ▶ users ▶ objects ▶ usage
  53. 53. . MMeeaassuurree eevveerryytthhiinngg • Deployments • Commits • Tickets • Kanban queues • WIP
  54. 54. .
  55. 55. . RReeaaddmmeettrriiccss • Get business keys, values • Share dashboards with dev ops mgmt • Find metrics that matter • Expose them • Learn from them
  56. 56. . UUsseemmeettrriiccss • Analyze them • Prevent expectable failure • Correlate failures • Root cause analysis
  57. 57. . Culture Automation Measurement > Sharing
  58. 58. . SShhaarree • Talk about your experience • Use Open Source software • Publish your re-usable code • Avoid lock-ins
  59. 59. . I have just shared my experience with you!
  60. 60. . Conclusion: What DevOps is not…
  61. 61. . DevOps is NOT about tools
  62. 62. . DevOps is NOT adding a new team
  63. 63. . DevOps is NOT a job title
  64. 64. . DevOps is NOT a methodology
  65. 65. . You need to make it work for you
  66. 66. . BBaacckklloogg aanndd ppaarrttiicciippaattee • http://www.devopsdays.org/ • http://devopscafe.org/ • http://jedi.be/blog/ • http://codeascraft.com/ • http://krisbuytaert.be/ • The Phoenix Project • @devopsdaysparis - April 2015 - Same venue
  67. 67. . TThhaannkk yyoouu Any question?
  68. 68. . CCoonnttaacctt Julien Pivotto julien@inuits.eu @roidelapluie INUITS bvba Belgium +32 473 441 636 https://inuits.eu

×