Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuos Deployment

Continuos Deployment

My talk at YAPC::EU in Frankfurt about Continuos Deployment and Continuos Testing.

324b08539a4859dcb625ea3dc4fb2717?s=128

Lenz Gschwendtner

August 20, 2012
Tweet

Transcript

  1. Continuos Deployment @norbu09 Monday, 20 August 12

  2. who is that guy anyway Monday, 20 August 12

  3. Austrian Bavarian Kiwi Monday, 20 August 12

  4. why would we want that? way too scary! Monday, 20

    August 12
  5. get out of my way let me code, don’t make

    me switch context Monday, 20 August 12
  6. robust rollout is key this implies robust rollback Monday, 20

    August 12
  7. Giovanni Monday, 20 August 12

  8. $ gio deploy Running deploy for 'githublicious' Loading git Plugin

    [git] Tag: [v1331523346] [bender] connected [bender] running update_cache From github.com:norbu09/githublicious db1629a..34c2176 master -> origin/master [bender] Fetching origin Fetching origin Updating db1629a..34c2176 Fast-forward Mojolicious/Plugin/Jenkins.pm | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) [bender] running restart Monday, 20 August 12
  9. $ cat .giovanni.conf [project "githublicious"] hosts = bender root =

    ~/githublicious init = ~/githublicious/restart deploy = update_cache, restart, notify rollback = rollback, restart, notify repo = git@github.com:norbu09/githublicious.git user = lenz Monday, 20 August 12
  10. fork it on github github.com/norbu09/Giovanni Monday, 20 August 12

  11. one step further Monday, 20 August 12

  12. Monday, 20 August 12

  13. githublicious github.com/norbu09/githublicious Monday, 20 August 12

  14. deploy with github post-receive hooks Monday, 20 August 12

  15. $ git branch origin/HEAD -> origin/master origin/admin_tools origin/affiliate_tracking origin/bugfix origin/dyndns

    origin/handle_migrate origin/login_split_testing origin/master origin/oauth origin/user_prefs_handling origin/voucher_codes ... Monday, 20 August 12
  16. define a “master” Monday, 20 August 12

  17. run anything on commit Monday, 20 August 12

  18. currently supports • Jenkins and Giovanni • Jabber and HipChat

    • git • tagged and timestamped rollout Monday, 20 August 12
  19. one step further Monday, 20 August 12

  20. Continuos Testing Monday, 20 August 12

  21. no bugs right now vs no bugs when i tested

    it Monday, 20 August 12
  22. stuff breaks over time Monday, 20 August 12

  23. The Eye Monday, 20 August 12

  24. Test Driven Monitoring Monday, 20 August 12

  25. • add a test directory • write Mechanizer or PhantomJS

    tests • run TheEye • get notifies if tests fail Monday, 20 August 12
  26. bin/TheEye [test directory] Monday, 20 August 12

  27. for your peace of mind Monday, 20 August 12

  28. • any test that outputs TAP • Prowl notifications •

    RRD and Graphite graphs currently supports Monday, 20 August 12
  29. summary Monday, 20 August 12

  30. automate everything Monday, 20 August 12

  31. notify a lot via Jabber / IRC / new thing

    of the day Monday, 20 August 12
  32. avoid context switching Monday, 20 August 12

  33. questions? @norbu09 Monday, 20 August 12