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

DevOpsDays Seattle 2017 - Continuous Integration: A bittersweet story

DevOpsDays Seattle 2017 - Continuous Integration: A bittersweet story

This is the bittersweet story of Continuous Integration. CI is practice that we fell in love with, embraced and then never fully committed to. I’ll share with you the current state of CI, what we think we are doing when we say CI and what we are really doing in terms of CI. Then I’ll remind us all why we fell in love with CI in the first place and make some suggestions on how to get back to the good stuff.

Presented at DevOpsDays Seattle 2017.

suziejprince

April 27, 2017
Tweet

More Decks by suziejprince

Other Decks in Technology

Transcript

  1. DevOpsDays Seattle 2017
    @pm_suzie

    CONTINUOUS
    INTEGRATION:
    A BITTERSWEET
    LOVE STORY

    View Slide

  2. DevOpsDays Seattle 2017
    Head of Product for ThoughtWorks
    Products
    12+ years experience with agile,
    continuous integration and
    continuous delivery practices
    Tweeting @pm_suzie

    View Slide

  3. @pm_suzie DevOpsDays Seattle 2017

    ci forever

    View Slide

  4. @pm_suzie DevOpsDays Seattle 2017
    hands up !

    View Slide

  5. @pm_suzie DevOpsDays Seattle 2017
    What is CI?

    View Slide

  6. @pm_suzie DevOpsDays Seattle 2017

    View Slide

  7. @pm_suzie
    – Jez Humble, continuousdelivery.com
    “ … I N C I D E V E LO P E R S I N T E G R AT E
    A L L T H E I R W O R K I N TO T R U N K
    ( A L S O K N OW N A S M A I N L I N E O R
    M A S T E R ) O N A R E G U L A R BA S I S
    ( AT L E A S T DA I LY ) . ”

    View Slide

  8. @pm_suzie DevOpsDays Seattle 2017
    daily
    master

    View Slide

  9. @pm_suzie DevOpsDays Seattle 2017
    Check everything in

    View Slide

  10. @pm_suzie DevOpsDays Seattle 2017
    Build every commit

    View Slide

  11. @pm_suzie DevOpsDays Seattle 2017
    Self testing code

    View Slide

  12. @pm_suzie DevOpsDays Seattle 2017
    Automate the build

    View Slide

  13. @pm_suzie DevOpsDays Seattle 2017
    Keep it fast!
    &

    View Slide

  14. @pm_suzie DevOpsDays Seattle 2017
    Show visible failures

    View Slide

  15. @pm_suzie DevOpsDays Seattle 2017
    Fix failures immediately

    View Slide

  16. @pm_suzie
    daily
    master

    View Slide

  17. @pm_suzie DevOpsDays Seattle 2017
    Why we fell in love
    with CI?

    View Slide

  18. @pm_suzie DevOpsDays Seattle 2017
    Avoid merge conflicts

    View Slide

  19. @pm_suzie DevOpsDays Seattle 2017
    Fast feedback

    View Slide

  20. @pm_suzie DevOpsDays Seattle 2017
    Reduce risks

    View Slide

  21. @pm_suzie DevOpsDays Seattle 2017
    Collective ownership

    View Slide

  22. @pm_suzie DevOpsDays Seattle 2017
    1996
    Steve McConnell describes the
    "Daily Build and Smoke Test"
    technique
    2000
    Martin Fowler’s first published
    his comprehensive Continuous
    Integration article
    2010
    Book “Continuous Delivery” by
    Humble and Farley published
    Our story so far…..
    1993
    Grady Booch used the phrase
    “continuous integration” in
    Object-Oriented Analysis and
    Design with Applications
    2007
    Book “Continuous Integration”
    by Duvall published
    2017
    Wikipedia lists 15+ continuous
    integration Tools
    2001
    The first continuous integration
    server Cruise Control is released
    2015
    CI described as “most essential
    technical practice” in SAFe
    1998
    Continuous integration is cited
    as a core practice of Extreme
    Programming (XP)

    View Slide

  23. @pm_suzie DevOpsDays Seattle 2017
    COMPLICATED
    IT’S

    View Slide

  24. @pm_suzie DevOpsDays Seattle 2017
    !*+,-

    View Slide

  25. @pm_suzie
    3%
    5%
    6%
    18%
    Daily
    68%
    Daily
    Weekly
    Monthly
    Other
    Never
    http://stackoverflow.com/research/developer-survey-2016#work-checking-in-code
    How often do you check in or commit code?

    View Slide

  26. @pm_suzie
    40%
    20%
    40% Practising
    Plans to practice
    No plans
    http://public.brighttalk.com/resource/core/88443/december_16_agile_in_the_enterprise_wholz_131607.pdf
    When did or will your organization begin to practice continuous integration?

    View Slide

  27. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/
    @pm_suzie
    Contextual research affinity wall

    View Slide

  28. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/
    @pm_suzie
    What do people know about Continuous Integration?
    Do they practice Continuous Integration?
    How do they practice Continuous Integration?
    What tools do people use to practice Continuous
    Integration?
    How do people define Continuous Integration?

    View Slide

  29. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/
    @pm_suzie
    You commit some
    code, something
    picks it up and
    builds and makes
    sure it still builds
    I push the code to
    the master branch
    after it's been tested
    on the test branch.
    That in return
    triggers something
    and gets deployed
    …testing your code
    all the time.
    Executing the code
    that you write all
    the time, making
    sure the code
    doesn't go stale

    View Slide

  30. https://blog.snap-ci.com/blog/2016/07/26/continuous-delivery-integration-devops-research/
    @pm_suzie
    We tend to do
    anywhere between
    15 and 50 branches
    in a push
    The most
    challenging thing
    is when you end up
    with a lot of
    features piled
    together in one
    commit
    Anytime a feature
    is finally complete
    then it get’s merged
    into master

    View Slide

  31. @pm_suzie DevOpsDays Seattle 2017
    COMPLICATED
    IT’S

    View Slide

  32. @pm_suzie DevOpsDays Seattle 2017
    “CI Theatre”

    View Slide

  33. @pm_suzie DevOpsDays Seattle 2017

    View Slide

  34. @pm_suzie DevOpsDays Seattle 2017
    Not getting the benefits of CI

    View Slide

  35. @pm_suzie DevOpsDays Seattle 2017
    Painful

    View Slide

  36. @pm_suzie DevOpsDays Seattle 2017
    Not ready for Continuous Delivery
    or DevOps

    View Slide

  37. @pm_suzie DevOpsDays Seattle 2017
    SAVE YOUR
    CI NOW!
    3 HOT TIPS

    View Slide

  38. @pm_suzie DevOpsDays Seattle 2017
    Commit more often

    View Slide

  39. @pm_suzie DevOpsDays Seattle 2017
    Automate, automate, automate

    View Slide

  40. @pm_suzie DevOpsDays Seattle 2017
    Trunk based development

    View Slide

  41. @pm_suzie
    daily
    master

    View Slide

  42. @pm_suzie DevOpsDays Seattle 2017

    ci forever

    View Slide

  43. @pm_suzie DevOpsDays Seattle 2017
    To be
    continued…

    View Slide