Extending Continuous Integration

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    2 Favorites

    Extending Continuous Integration - Presentation Transcript

    1. Extending Continuous Integration
    2. About the speaker
      • Johannes Brodwall
      • Lame duck Lead software architect at BBS
      • Organizer Oslo XP meetup
      • Organizer Smidig 2008
      • Blog: http://brodwall.com/johannes/blog
      .meetup.com/13
    3. What’s the point of Continuous Integration?
      • Pay now to insure against defects
      • Pay less to deploy to production
      • Release whenever you want
    4. What is Continuous Integration?
    5.  
    6.  
    7.  
      • Unit test
      • Functional tests
      • System run in test harness
    8. Result:
    9. Every check in is is now tested
    10.  
    11. Will this find all our defects?
    12. No!
      • Limited to our test harness
      • Limited to our imagination
      • And then there’s performance
    13. So what should we do?
    14. (Hint: CI is about paying now to avoid paying later)
    15. Pay more now!
    16. Our approach: Automated system test
      • Realistic setup
      • Realistic load
      • Realistic variation
    17.  
    18. How to automate system tests
      • Automated build (and test)
      • Scrap old data
      • Install latest snapshot
      • Download production data
      • Replay production data
      • Verify result
      • Send results and logs via email
    19. ” Did you meet any problems?”
    20. No
    21. No, Only challenges!
    22. The hard bits
      • Installation
      • Integration
      • Simulation
      • Verification
    23. Installation
    24. How to automate installation
      • Easy, scripted, always working install
      • Simplify
        • (Replace WebSphere with Jetty)
        • (Combine components)
      • Reduce integration
      • All nodes look the same
    25. (Side effects)
      • Easy installation
      • Simpler design
      • Simpler architecture
    26. Integration
    27. Integration Dealing with dependencies
    28. Dealing with integration
      • Don’t integrate - Do it yourself!
      • Simulate other system
        • Fake responses
        • Keep canned data (data centric)
      • Integrate with test version
    29. Simulation
    30. Simulation Put realistic load on the system
    31. Simulation Depends on what you system does
    32. How to simulate production
      • In our case: Files
      • Crawler (Dyrkorn & Watne)
      • Load generator (D&W)
      • Record HTTP requests
    33. Verification
    34. Verification Finding out if it worked
    35. How to verify results
      • Compare with production
      • Verify integrity
      • Check logs
    36. Comparing
      • Store test result in database
      • Store production result in database
      • Full outer join on key fields
      • Find missing or mismatched status
      • Filter out know deviations
    37.  
    38. Date
    39. Number of files
    40. Okay
    41. Missing
    42. Extra
    43. Extra Mismatched
    44. Extra Extra Extra Known deviations
    45. Consistency checks
      • SQL expressions that pick out things that are weird
    46. Logging
      • It matters!
      • Error logs should be empty if everything is okay
    47. Result:
    48. Every build is now system tested
    49.  
    50. Will this find all our defects?
    51. No!
      • Limited integration
      • Limited stability
    52. No! Automated staging
    53. No! Automated staging
    54. Automated staging
      • ” Next” version
      • Lock-step with production
      • Promote after a week
      • Monitor 9:00-16:00
    55.  
    56.  
    57. Only when you can think as an operator, can you master your system
    58. Result:
    59. Every release is hardened
    60.  
    61. Will this find all our defects?
    62. No!
      • Wrong requirements
      • Poor solutions
      • New user behavior exposes bugs
      • Bugs we didn’t care enough about
    63. The goal: Release after every iteration
    64.  
    65. The sad reality: Pilot release after every iteration
    66. Pilot production
    67. Why releases every iteration?
      • Find more bugs
      • Try the easy solution first
      • Find new requirement faster
      Exploit opportunity
    68. Result:
    69. Find all the bugs cheaply!
    70. Make sure it always works
    71. Pay more now to pay less later
    72. The goal: Release after every iteration
    73. (And throw away the bugtracker)
    74. Thank you!

    + jhannesjhannes, 2 years ago

    custom

    396 views, 2 favs, 2 embeds more stats

    How to automate a release tool chain

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 396
      • 392 on SlideShare
      • 4 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 22
    Most viewed embeds
    • 3 views on http://localhost:3000
    • 1 views on http://static.slideshare.net

    more

    All embeds
    • 3 views on http://localhost:3000
    • 1 views on http://static.slideshare.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories