Continuous integration
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Continuous integration

on

  • 455 views

This was my talk from November Camp 2013

This was my talk from November Camp 2013

Statistics

Views

Total Views
455
Views on SlideShare
455
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Continuous integration Presentation 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