Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OMG BUILDZ

OMG BUILDZ

To all my downtrodden build monkeys of the world.

Scott Robinson

November 03, 2011
Tweet

More Decks by Scott Robinson

Other Decks in Programming

Transcript

  1. 0!
    10!
    20!
    30!
    40!
    50!
    60!
    70!
    80!
    90!
    1! 2! 4! 8! 16!
    # of contributors!
    Builds / hr"
    (avg. 1 - 4 commits / hr)!

    View full-size slide

  2. L = λW
    Little’s Law

    View full-size slide

  3. 1!
    2!
    3!
    4!
    5!
    6!
    7!
    8!
    Build 1!
    Build 2!
    Build 3!

    View full-size slide

  4. Smoke Build Test Deploy

    View full-size slide

  5. Smoke Build Test Deploy Test

    View full-size slide

  6. Smoke Build Test Deploy Test
    Build
    Build
    Test
    Test

    View full-size slide

  7. Smoke Build Test Deploy Test
    Build
    Build
    Deploy
    Deploy
    Test
    Deploy
    Test

    View full-size slide

  8. Smoke
    Important
    Mess
    Less Important
    Mess

    View full-size slide

  9. Feedback Cycle

    View full-size slide

  10. Feedback Cycle
    • Order stages by team value
    • Do not stop for regression
    • Do not mark tests as broken

    View full-size slide

  11. What stops you from
    continuing with
    confidence?

    View full-size slide

  12. •Resourcing
    •Configuration
    What takes our time?!

    View full-size slide

  13. On Designing and
    Deploying Internet-Scale
    Services
    http://bit.ly/ReadThisPaper

    View full-size slide

  14. Use Virtual Machines

    View full-size slide

  15. Use Virtual Machines
    • Snapshot and Clone
    • Validate machines
    • Resource by Capability

    View full-size slide

  16. Resource by Capability
    • Windows
    • JRuby
    • Selenium
    • build
    • project-a
    • scott’s box
    YES NO

    View full-size slide

  17. Use Configuration
    Management

    View full-size slide

  18. Use Configuration
    Management

    View full-size slide

  19. Use Configuration
    Management
    Vagrant

    View full-size slide

  20. Configuration
    • Version build configuration
    • Build scripts in the source tree
    • Use build artifacts

    View full-size slide

  21. •Keep build time low
    •Each stage in a pipeline
    increases confidence
    •Builds are part of your
    software

    View full-size slide

  22. fin
    The hardest part about builds is safe experimentation.
    Sadly, our tools make this hard for us.

    View full-size slide

  23. Thank You
    — Andrew K.
    — Brady L.
    — Brian G.
    — Dane B.
    — Darren S.
    — Dave R.
    — Evan B.
    — James F.
    — Julio M.
    — Kristan V.
    — Maha N.
    — Rob H.
    — Ryan B.
    — Sam G.
    — Scott S.
    — Sreeni A.
    — Wen D.

    View full-size slide