Continous delivery with Jenkins and Chef

download Continous delivery with Jenkins and Chef

of 46

  • date post

    05-Dec-2014
  • Category

    Software

  • view

    430
  • download

    0

Embed Size (px)

description

 

Transcript of Continous delivery with Jenkins and Chef

  • 1. Continous delivery pipeline for Symfony2 projects with Jenkins and Chef Micha Dbrowski http://github.com/defrag PHPers Krakw 10/07/2014
  • 2. Most common anwser?
  • 3. Most common anwser? Should be done
  • 4. Most common anwser? Should be done
  • 5. Continuous delivery (CD) is a set of processes, tools and techniques for the rapid, reliable and continuous development and delivery of software. What is continous delivery?
  • 6. Our highest priority is to satisfy the customer! through early and continuous delivery! of valuable software. Agile manifesto #1
  • 7. done === released What is done in Continous Delivery?
  • 8. Why? increase quality reduce cost reduct risk make customer happy delivery production ready software act on feedback
  • 9. Quality comes rst
  • 10. Building blocks from practical view Continous Integration Release automation Infrastructure automation Monitoring
  • 11. CI & Deployment pipeline
  • 12. Typical development workow Fork a repo
  • 13. Typical development workow Submit pull request
  • 14. Typical development workow Trigger build process on PR
  • 15. Typical development workow Code review
  • 16. Typical development workow Merge into master
  • 17. Typical development workow Trigger build on master branch
  • 18. Typical development workow Result of build is Release Candidate! (not every RC is deployed)
  • 19. How do we get there?
  • 20. Start with Jenkins
  • 21. Create new project
  • 22. Set up your build process
  • 23. Set up your build process Downloading dependencies using composer.! ! Dumping prod assets.! ! Ensuring empty cache and logs directories.! ! !
  • 24. Run your unit tests
  • 25. Run your unit tests ! Unit test build pass.
  • 26. Run your acceptance tests
  • 27. Run your acceptance tests ! ! Acceptance test build pass.
  • 28. Create package out of build result tarball! rpm! deb! etc.
  • 29. Create package out of build result
  • 30. Visualize your process with build pipeline
  • 31. Stop Deploy time
  • 32. Not only application Deliver your conguration in automated fashion
  • 33. Build pipeline revisited manualauto
  • 34. Quick Chef overview
  • 35. Make jenkins talk to your chef server knife ec2 server create! knife bootstrap! knife ssh!
  • 36. Make jenkins talk to your chef server
  • 37. Deploy app capistrano, fabric, knife plugin etc
  • 38. Chose the one that works for you
  • 39. Dead simple with Fabric and pychef @roles('web')! def deploy():
  • 40. Dead simple with Fabric and pychef fab env:staging deploy:25
  • 41. Dead simple with Fabric and pychef fab env:staging deploy:25 chef environment build no.
  • 42. Demo
  • 43. Wrapping up
  • 44. Benets speed of delivery quality cost reduction ability to respond to feedback quickly adapt to change
  • 45. Thank you