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

Provisioning from Development to Production, BedCon 2013

Provisioning from Development to Production, BedCon 2013

Berlin Expert Days Talk April 2013

Oliver Wehrens

April 08, 2013
Tweet

More Decks by Oliver Wehrens

Other Decks in Technology

Transcript

  1. PROVISIONING FROM
    DEVELOPMENT TO
    PRODUCTION

    View full-size slide

  2. ANDRE VON DEETZEN
    @VDANDRE
    OLIVER WEHRENS
    @OWEHRENS

    View full-size slide

  3. “FASTER TIME TO MARKET”

    View full-size slide

  4. 4-6
    MEANTIME BETWEEN
    DELIVERIES IN WEEKS

    View full-size slide

  5. 150
    DEV / QA / OPS

    View full-size slide

  6. >100
    SOURCE REPOSITORIES

    View full-size slide

  7. “FASTER TIME TO MARKET”

    View full-size slide

  8. 3
    AREAS TO CHANGE

    View full-size slide

  9. WORKFLOW
    DEPLOYMENT
    ARCHITECTURE

    View full-size slide

  10. ARCHITECTURE

    View full-size slide

  11. MANY SMALL SERVICES

    View full-size slide

  12. STATELESS SERVICES

    View full-size slide

  13. INDEPENDENT DEPLOYABLE

    View full-size slide

  14. STABLE INTERFACES

    View full-size slide

  15. DEPLOYMENT PIPELINE

    View full-size slide

  16. Stages & Version
    Stage Version
    DEV Development
    Testing
    Release
    Candidate
    Stable
    Certified
    Release

    View full-size slide

  17. Tests
    Unit- + Componenttests
    Component -
    Integrationtests
    Smoke-
    tests
    DEV
    Testing
    Stable
    Way to production

    View full-size slide

  18. YUM Repo
    Stable
    YUM Repo
    Testing
    YUM Repo
    DEV
    YUM Repo
    Stable (Rechenzentrum)
    DataCenter

    View full-size slide

  19. YUM Repo
    Stable
    YUM Repo
    Testing
    YUM Repo
    DEV
    YUM Repo
    Stable (Rechenzentrum)
    DataCenter

    View full-size slide

  20. YUM Repo
    Stable
    YUM Repo
    Testing
    YUM Repo
    DEV
    YUM Repo
    Stable (Rechenzentrum)
    DataCenter
    Contract with Ops

    View full-size slide

  21. YUM Repo
    Stable
    YUM Repo
    Testing
    YUM Repo
    DEV
    YUM Repo
    Stable (Rechenzentrum)
    DataCenter
    Contract with Ops

    View full-size slide

  22. YUM Repo
    Stable
    YUM Repo
    Testing
    YUM Repo
    DEV
    YUM Repo
    Stable (Rechenzentrum)
    DEV-NET
    DataCenter
    Same Binary
    across
    all stages!

    View full-size slide

  23. YUM Repo
    Stable
    YUM Repo
    Testing
    YUM Repo
    DEV
    YUM Repo
    Stable (Rechenzentrum)
    DEV-NET
    DataCenter
    Same Binary
    across
    all stages!

    View full-size slide

  24. CONFIGURATION
    MANAGED BY
    PUPPET

    View full-size slide

  25. VCS CI
    Unit Tests

    View full-size slide

  26. Dev
    Dev
    Test with
    Mocks

    View full-size slide

  27. Dev
    Dev
    Test with
    Mocks
    Release
    Candidate
    Testing
    SmokeTests

    View full-size slide

  28. Dev
    Dev
    Test with
    Mocks
    QA
    Release
    Candidate
    SmokeTests
    Certified
    Release
    Prod
    Certified
    Release
    SmokeTests

    View full-size slide

  29. fully automated
    Stages Repos
    Certified
    Release
    Prod
    VCS CI
    Dev Release
    Candidate
    Certified
    Release
    Dev Testing
    Test with
    Mocks SmokeTests
    SmokeTests
    Unit Tests
    Pull

    View full-size slide

  30. PROVISIONING

    View full-size slide

  31. LIFECYCLE
    KVM
    Kickstart
    & RPM
    Puppet
    $$$

    View full-size slide

  32. DISASTER RECOVERY
    BUILD IN

    View full-size slide

  33. BLUE - GREEN
    DEPLOYMENT

    View full-size slide

  34. HOW TO TEST LOCALLY?

    View full-size slide

  35. Developer Operating Systems

    View full-size slide

  36. Everything can be tested locally with vagrant
    (this means operating system like in production,
    configuration management, deployment,
    building packages, needed network interfaces, ...)
    http://www.vagrantup.com

    View full-size slide

  37. WHAT CHANGED
    IN OUR WORKFLOW?

    View full-size slide

  38. TEAM IS RESPONSIBLE

    View full-size slide

  39. EVERY COMMIT GOES TO
    PRODUCTION

    View full-size slide

  40. DEPLOY

    FEATURE RELEASE

    View full-size slide

  41. ROLL FORWARD

    View full-size slide

  42. AUTOMATE ALL THE THINGS

    View full-size slide

  43. IF IT HURTS DO IT MORE
    OFTEN (EXCEPT MEETINGS)

    View full-size slide

  44. DB DEPLOYMENT

    View full-size slide

  45. COMPONENT PUPPET
    WITH HIERA

    View full-size slide

  46. SAME KICKSTART
    IN DEV & PROD

    View full-size slide

  47. FEEDBACK: LIVE DATA
    IN DEV WITH GRAPHITE

    View full-size slide

  48. MEASURE, MEASURE, MEASURE

    View full-size slide

  49. SELF HEALING

    View full-size slide

  50. LESSONS LEARNED

    View full-size slide

  51. #1
    CLOSE TO PRODUCTION AS
    EARLY AS POSSIBLE

    View full-size slide

  52. #2
    EVERYTHING CAN BE
    AUTOMATED

    View full-size slide

  53. #3
    MANAGEMENT BUY IN

    View full-size slide

  54. #4
    SELF-SERVICE
    INFRASTRUCTURE
    FOR TEAMS

    View full-size slide

  55. #5
    RESISTANCE WILL RISE

    View full-size slide

  56. #6
    IT’S WORTH THE EFFORT

    View full-size slide

  57. ~ 30 MIN TO CR

    View full-size slide

  58. #7
    FEEDBACK IS NEVER
    FAST ENOUGH

    View full-size slide