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

A Build Monkey's Apology

Scott Robinson
September 26, 2012

A Build Monkey's Apology

Where I confessed my sins and sought atonement from an audience.

Scott Robinson

September 26, 2012
Tweet

More Decks by Scott Robinson

Other Decks in Technology

Transcript

  1. A Build Monkey's
    Apology
    Scott Robinson
    ThoughtWorks

    View Slide

  2. Excuses
    Scott Robinson
    Apologist

    View Slide

  3. Apologetics (from Greek ἀπολογία,
    "speaking in defense") is the discipline of
    defending a position (often religious)
    through the systematic use of information.

    View Slide

  4. Automate Everything
    Scott Robinson
    Occasional DevOp

    View Slide

  5. I broke the build.
    Sorry.

    View Slide

  6. Smoke Build Test Deploy

    View Slide

  7. Smoke Build Test Deploy Test

    View Slide

  8. Smoke Build Test Deploy Test
    Build
    Build
    Test
    Test

    View Slide

  9. Smoke Build Test Deploy Test
    Build
    Build
    Deploy
    Deploy
    Test
    Deploy
    Test

    View Slide

  10. Smoke
    Important
    Mess
    Less Important
    Mess

    View Slide

  11. Feedback Cycle

    View Slide

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

    View Slide

  13. What stops us from
    continuing with
    confidence?

    View Slide

  14. I broke builds while
    fixing a broken build.
    Sorry.

    View Slide

  15. View Slide

  16. Will it debug?

    View Slide

  17. View Slide

  18. Configuration
    • Version control build configuration
    • Build scripts in the source tree
    • Use new pipelines and agents

    View Slide

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

    View Slide

  20. Who is on the pager
    tree for the build?

    View Slide

  21. Audience Participation?

    View Slide

  22. I broke dependencies
    for my team.
    Sorry.

    View Slide

  23. I fixed it. Live.

    View Slide

  24. Version Control

    View Slide

  25. Configuration
    Management

    View Slide

  26. Configuration Management

    View Slide

  27. I didn’t test Chef.
    Sorry.

    View Slide

  28. Configuration Management
    Vagrant

    View Slide

  29. I tested Chef... in
    production.
    Sorry.

    View Slide

  30. What does
    “production” mean?

    View Slide

  31. Summary of Mistakes
    • Broke the build.
    • Broke builds while fixing a broken build.
    • Broke dependencies for my team.

    View Slide

  32. Sorry.

    View Slide