Publicité
Publicité

Contenu connexe

Publicité

Continuous Deployment of Clojure Apps

  1. Continuous Deployment of Clojure Apps Siva Jagadeesan 1Tuesday, April 30, 13
  2. “I am big believe in Continuous Deployment as long as is not touch production.” DevOps Borat @DEVOPS_BORAT 2Tuesday, April 30, 13
  3. Continuous Deployment Deploying every change to Production Optionally a short QA gate Practice of releasing every good build to users “continuous release” 3Tuesday, April 30, 13
  4. Continuous Deployment Release is in the hands of IT 4Tuesday, April 30, 13
  5. Continuous Deployment Release is in the hands of IT is this a good thing? 4Tuesday, April 30, 13
  6. Continuous Deployment Release is in the hands of IT is this a good thing? NO! 4Tuesday, April 30, 13
  7. Continuous Deployment Release is in the hands of IT is this a good thing? depends Business Reason NO! 4Tuesday, April 30, 13
  8. Continuous Delivery Release is in the hands of Business 5Tuesday, April 30, 13
  9. Continuous Delivery is about keeping your application in a state where it is always able to deploy into production. 6Tuesday, April 30, 13
  10. Continuous Deployment of Clojure Apps Siva Jagadeesan Delivery 7Tuesday, April 30, 13
  11. Process TechnologyPeople Continuous Delivery 8Tuesday, April 30, 13
  12. Who am I? Siva Jagadeesan Interests • Clojure • REST • Datomic • Continuous Deployment •TDD • Startups • Founder & CTO, Zolo Labs Inc • Director of Engineering, Runa Inc •@sivajag • siva@zololabs.com • http://blog.zololabs.com • http://techbehindtech.com About Me 9Tuesday, April 30, 13
  13. • first product from Zolo Labs • Your digital assistant • helps with professional networking and relationships • (and personal ones too!) 10Tuesday, April 30, 13
  14. Why Continuous Delivery? 11Tuesday, April 30, 13
  15. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software 12Tuesday, April 30, 13
  16. 13Tuesday, April 30, 13
  17. Our Goal • deliver high-quality, valuable software in an efficient, fast, and reliable manner 14Tuesday, April 30, 13
  18. 15Tuesday, April 30, 13
  19. Continuous Integration 16Tuesday, April 30, 13
  20. Continuous Integration development team 16Tuesday, April 30, 13
  21. Continuous Integration development team code 16Tuesday, April 30, 13
  22. Continuous Integration development team code requirements process of delivering software whole team 16Tuesday, April 30, 13
  23. Continuous Delivery development team code requirements process of delivering software whole team 17Tuesday, April 30, 13
  24. Benefits • Improved Team Attitude • More Responsive Team • Less Waste • Deployment Flexibility • Less Pressure • Less Bugs 18Tuesday, April 30, 13
  25. Process TechnologyPeople Continuous Delivery 19Tuesday, April 30, 13
  26. Principles • The process for releasing/deploying software MUST be repeatable and reliable • Automate everything! • If something is difficult or painful, do it more often • Keep everything in source control • Done means “released” • Build quality in! • Everybody has responsibility for the release process • Improve continuously 20Tuesday, April 30, 13
  27. Deployment Pipeline is an automated manifestation of your process for getting software from version control into the hands of your users. 21Tuesday, April 30, 13
  28. Aim Aids collaboration by making the process of building, testing and releasing software visible to everyone involved Improves Feedback Team can deploy any version of software to any environment at will without much effort 22Tuesday, April 30, 13
  29. image from wiki 23Tuesday, April 30, 13
  30. Deployment Pipeline Stages Commit Stage Automated Acceptance Test Stages Manual Test Stages Release Stage 24Tuesday, April 30, 13
  31. Deployment Pipeline image from continuous delivery book 25Tuesday, April 30, 13
  32. Deployment Pipeline Best Practices Only build binaries once Deploy the same way to every environment Smoke test your deployments Each change should propagate through the pipeline instantly If any part of the pipeline fails, stop the line 26Tuesday, April 30, 13
  33. Process TechnologyPeople Continuous Delivery 27Tuesday, April 30, 13
  34. This is easy ... 28Tuesday, April 30, 13
  35. Deployment Pipeline Stages Commit Stage Automated Acceptance Test Stages Manual Test Stages Release Stage 29Tuesday, April 30, 13
  36. Commit Stage Compile (if needed) Run tests Create Binaries / Artifacts Perform analysis of the code 30Tuesday, April 30, 13
  37. Commit Stage Compile lein compile lein -U to force retrieve latest snapshots lein profiles with-profile 31Tuesday, April 30, 13
  38. Commit Stage Run Tests lein test lein test-selectors to force retrieve latest snapshots lein plugins lein-cucumber lein-difftest lein-expectations lein-midje 32Tuesday, April 30, 13
  39. Commit Stage Create Binaries / Artifacts lein uberjar profiles to create different uberjars Plugins lein-dist lein-tar lein-set-version lein-sha-version lein-package 33Tuesday, April 30, 13
  40. Commit Stage Perform analysis of the code lein-cloverage lein-bikeshed Kitbit - https://github.com/jonase/kibit Eastwood - https://github.com/jonase/eastwood 34Tuesday, April 30, 13
  41. Acceptance and Manual Test Stages 35Tuesday, April 30, 13
  42. Types of tests image from continuous delivery book 36Tuesday, April 30, 13
  43. Clojure Web UI Testing clj-webdriver webdriver-logic [uses core.logic] 37Tuesday, April 30, 13
  44. Release Stage • lein run • chef • puppet • pallet 38Tuesday, April 30, 13
  45. to sum up ... 39Tuesday, April 30, 13
  46. Process TechnologyPeople Continuous Delivery 40Tuesday, April 30, 13
  47. Deployment Pipeline image from continuous delivery book 41Tuesday, April 30, 13
  48. Continuous Delivery development team code requirements process of delivering software whole team 42Tuesday, April 30, 13
  49. Benefits • Improved Team Attitude • More Responsive Team • Less Waste • Deployment Flexibility • Less Pressure • Reducing Errors 43Tuesday, April 30, 13
  50. Start doing continuous delivery to deliver high-quality, valuable software in an efficient, fast, and reliable manner. 44Tuesday, April 30, 13
  51. Questions? • @sivajag • siva@zololabs.com • http://blog.zololabs.com • http://techbehindtech.com • zolodeck.com 45Tuesday, April 30, 13
Publicité