Continuous integration

  • 326 views
Uploaded on

This was my talk from November Camp 2013

This was my talk from November Camp 2013

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
326
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
9
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Tobias Nyholm Continuous Integration Tobias Nyholm
  • 2. Tobias Nyholm About me • • • Doing Symfony since 1.2! Master thesis at KTH! Happy Recruiting
 
 We sort your pile of resumés 2
  • 3. Tobias Nyholm Every software project 3
  • 4. Tobias Nyholm What is efficiency? • • • Resource efficiency ! Every developer works full time! You develop all day without distractions like Facebook or coffee breaks 4
  • 5. Tobias Nyholm What is efficiency? • • • • Flow efficiency! Developer A completes X in 4 h! Developer B completes the same task X in 3 h! Developer B is more efficient than A 5
  • 6. Tobias Nyholm What is quality? • • • • • Reliability ! Performance Efficiency! Security! Maintainability! Size of the project Ref: CISQ's Quality model 6
  • 7. Tobias Nyholm Extreme Programming - Definition • • • • • • • • • • • • • • Plan sprints! Test Driven Development! Communication with the customer! Continuous Integration! Refactoring! Small releases! Coding standards! Collective code ownership! • • Pair programming! 100% test coverage! Simple design! System metaphor! Sustainable pace! No overtime! Leave optimization until last! Write test for all bugs Ref: http://en.wikipedia.org/wiki/Extreme_programming 7
  • 8. Tobias Nyholm Extreme Programming • • • • • KISS and DRY! Test Driven Developmet! Trust your test code! Share knowledge between developers! Be happy and healthy 8
  • 9. Tobias Nyholm Overview 9
  • 10. Tobias Nyholm Story Cards 11
  • 11. Tobias Nyholm Overview - Development 12
  • 12. Tobias Nyholm Overview - Revision control 13
  • 13. Tobias Nyholm Branching 14
  • 14. Tobias Nyholm Git vs SVN 15
  • 15. Tobias Nyholm Overview - Jenkins 17
  • 16. Tobias Nyholm Jenkins is the heart of CI 18
  • 17. Tobias Nyholm Important stuff • • • Quick feedback! SVN/GIT - hook! Only CM should have permissions to change the rules in Jenkins 19
  • 18. Tobias Nyholm Overview - Build servers 20
  • 19. Tobias Nyholm Build fast • Build SNAPSHOTS from master! • Short build queues (< 10 min)! • Multiple build servers! • Parallel builds 21
  • 20. Tobias Nyholm Overview - Test 22
  • 21. Tobias Nyholm Overview - Analysis 23
  • 22. Tobias Nyholm Sonar • • • • A platform for code analysis! Make you own quality profile! Create alarms when the profile is violated! Break the build when an alarm triggered 24
  • 23. Tobias Nyholm Sonar - Rules • Plugins like PHPMD, PHP Depend, PHP_CodeSniffer etc! • • • • Complexity! Comments! Size of the source code! Performance 25
  • 24. Tobias Nyholm Sonar - Benefits • • • • Change history! Unified code that is easy to maintain! Reduce complexity! More documented code 26 Quality - Definition ✓Reliability ✓Performance Security ✓Maintainability ✓Size of the project
  • 25. Tobias Nyholm Upload to artefact repository 27
  • 26. Tobias Nyholm Overview - Deployment 28
  • 27. Tobias Nyholm Puppet is king 29
  • 28. Tobias Nyholm Capistrano, Ant, Octopus • • • • • Check out code! Migrate the database! Empty cache, warm up cache! Run scripts! etc 30
  • 29. Tobias Nyholm Distribution • • • Distribute file automatically att each build! No developer should manually update any server! No human errors 31
  • 30. Tobias Nyholm Environments • • Local environment of every developers machine! • • • QA environment where you move files when needed! Staging environment where Jenkins moves files automatically! Production environment! Make sure that the customer or project manager provide you with these 32
  • 31. Tobias Nyholm On HappyRecruiting 33
  • 32. Tobias Nyholm Overview - Verification 34
  • 33. Tobias Nyholm Summary 35
  • 34. Tobias Nyholm Thank you Tobias Nyholm 2013-11-22 36