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

A DevOps Pipeline

Steve Pereira
November 14, 2015

A DevOps Pipeline

A guided tour of using Docker and other best-of-breed tools to deliver quality code from developers to production in a fast and scalable process.

We’ll cover:
- the state of the ecosystem
- tools of the trade
- process overview
- key automation
- integrations

Steve Pereira

November 14, 2015
Tweet

More Decks by Steve Pereira

Other Decks in Technology

Transcript

  1. @steveElsewhere
    PIPELINE
    A DEVOPS
    @steveElsewhere

    View Slide

  2. @steveElsewhere
    ME

    View Slide

  3. @steveElsewhere
    CONTEXT
    VALUE

    View Slide

  4. @steveElsewhere
    WHY DO
    WE NEED A
    PIPELINE?

    View Slide

  5. @steveElsewhere
    CREATING
    VALUE
    WHY WOULD WE SHIP 100
    TIMES A DAY?

    View Slide

  6. @steveElsewhere
    ITERATION

    View Slide

  7. @steveElsewhere
    PIPELINE
    SO, ABOUT THAT
    @steveElsewhere

    View Slide

  8. @steveElsewhere
    ‣ NATURAL START AND END
    ‣ STARTS WITH SOURCE CONTROL
    ‣ INITIATE WITH EACH CHANGE
    ‣ RUN IN PARALLEL AND/OR SEQUENTIALLY
    ‣ SUCCESS MEANS CODE IN PRODUCTION
    PIPELINE CHARACTERISTICS

    View Slide

  9. @steveElsewhere
    CONTINUOUS DELIVERY
    CHANGE STABILIZE
    VALIDATE RELEASE

    View Slide

  10. @steveElsewhere
    PROCESS
    CODE TEST BUILD DEPLOY

    View Slide

  11. @steveElsewhere
    STAGES
    DEPLOY DIRECTLY
    CONTINUOUS INTEGRATION
    CONTINUOUS DELIVERY
    CONTINUOUS DEPLOYMENT

    View Slide

  12. @steveElsewhere
    CRUCIAL?
    WHY IS IT
    @steveElsewhere

    View Slide

  13. @steveElsewhere
    THE WALL
    @steveElsewhere

    View Slide

  14. @steveElsewhere
    DOCKER
    LETS
    TALK
    ABOUT

    View Slide

  15. @steveElsewhere
    CAVEATS
    LETS
    TALK
    ABOUT

    View Slide

  16. @steveElsewhere
    A
    FEW
    PIECES

    View Slide

  17. @steveElsewhere
    ADVANTAGES
    LETS
    TALK
    ABOUT

    View Slide

  18. @steveElsewhere
    LIGHT WEIGHT
    REUSE
    CONSISTENCY
    WHY DOCKER?
    PUSH/PULL
    VERSIONING
    PORTABILITY

    View Slide

  19. @steveElsewhere
    1. RUN UNIT TESTS
    2. BUILD THE IMAGE THAT WE USE TO BUILD OUR APP
    3. RUN THE BUILD CONTAINER AND COMPILING OUR APP
    4. BUILD THE IMAGE THAT WE RUN AND DEPLOY
    5. PUSH THE FINAL IMAGE TO A DOCKER REGISTRY
    OVERVIEW

    View Slide

  20. @steveElsewhere
    SOME

    PREREQUISITES

    View Slide

  21. @steveElsewhere
    PROVISIONING
    AND CONFIG

    View Slide

  22. @steveElsewhere
    OUTSIDE OUR
    CONTAINER

    View Slide

  23. @steveElsewhere
    DOCKER TOOLBOX
    OR
    VIRTUAL MACHINE

    View Slide

  24. @steveElsewhere
    BASE
    VOLUME
    BUILD
    RUN
    CONTAINER TYPES

    View Slide

  25. @steveElsewhere
    OS SOURCE
    REPOS
    PACKAGES
    CLEANUP
    THE BASE CONTAINER

    View Slide

  26. @steveElsewhere
    MINIMAL BARE OS
    FILE STRUCTURE
    FILES
    THE VOLUME CONTAINER

    View Slide

  27. @steveElsewhere
    THE BUILD CONTAINER
    BASE CONTAINER
    CODE COPY
    COMPILE
    CLEANUP

    View Slide

  28. @steveElsewhere
    BUILT CONTAINER
    RUN COMMAND
    THE RUN CONTAINER

    View Slide

  29. @steveElsewhere
    CASCADE CHANGE
    CHANGE
    BASE
    REBUILD
    BUILD
    REBUILD
    BASE
    REBUILD
    RUN RUN

    View Slide

  30. @steveElsewhere
    QUALITY ASSURANCE

    View Slide

  31. @steveElsewhere
    BEYOND BASICS

    View Slide

  32. @steveElsewhere
    QUALITY ASSURANCE
    CODE COMMIT TEST ENV PRODUCTION
    TESTING
    Unit
    Mock

    View Slide

  33. @steveElsewhere
    CODE COMMIT TEST ENV PRODUCTION
    TESTING
    Regression
    Cross-Device
    Functional
    Static Analysis
    Integration
    QUALITY ASSURANCE

    View Slide

  34. @steveElsewhere
    QUALITY ASSURANCE
    CODE COMMIT TEST ENV PRODUCTION
    TESTING
    Exploratory
    Acceptance
    Performance
    Smoke
    Security

    View Slide

  35. @steveElsewhere
    QUALITY ASSURANCE
    CODE COMMIT TEST ENV PRODUCTION
    TESTING
    Smoke
    A / B

    View Slide

  36. @steveElsewhere
    QUALITY ASSURANCE
    TESTING
    Unit
    Mock
    TESTING
    Regression
    Cross-Device
    Functional
    Static Analysis
    Integration
    TESTING
    Exploratory
    Acceptance
    Performance
    Smoke
    Security
    TESTING
    Smoke
    A / B

    View Slide

  37. @steveElsewhere
    QUALITY ASSURANCE

    View Slide

  38. @steveElsewhere
    CI ONSITE
    ‣ JENKINS
    ‣ GITLAB CI
    ‣ GO.CD
    ‣ STRIDER
    ‣ TEAM FOUNDATION SERVER

    View Slide

  39. @steveElsewhere
    CI ONLINE
    ‣ SHIPPABLE
    ‣ CODESHIP
    ‣ CIRCLE CI
    ‣ TRAVIS
    ‣ APPVEYOR

    View Slide

  40. @steveElsewhere
    BUILD
    ‣ DOCKER (LOCAL)
    ‣ PACKER (LOCAL)
    ‣ DOCKER HUB
    ‣ QUAY.IO
    ‣ ANY CI TOOL

    View Slide

  41. @steveElsewhere
    DEPLOYMENT
    PULL FROM HUB
    CONFIG MANAGEMENT

    View Slide

  42. @steveElsewhere
    THE #!
    CODE
    CHANGE PUSH TRIGGER TRIGGER
    PULL
    TRIGGER

    View Slide

  43. @steveElsewhere
    THE #!
    CODE
    CHANGE PUSH TRIGGER TRIGGER
    PULL
    TRIGGER

    View Slide

  44. @steveElsewhere
    THE #!
    CODE
    CHANGE PUSH TRIGGER TRIGGER
    PULL
    TRIGGER

    View Slide

  45. @steveElsewhere
    WHERE WE GO
    FROM HERE

    View Slide

  46. @steveElsewhere
    AUTOMATION

    View Slide

  47. @steveElsewhere
    THE
    BOTS
    AGE OF

    View Slide

  48. @steveElsewhere
    COLLABO-
    TOMATION
    CHATOPS

    View Slide

  49. @steveElsewhere
    VISIBILITY
    CHATOPS

    View Slide

  50. @steveElsewhere
    MY ADVICE

    View Slide

  51. @steveElsewhere
    THE
    EDGES
    THINK
    ABOUT

    View Slide

  52. @steveElsewhere
    SCHEDULING
    STORAGE
    SERVICE -
    DISCOVERY
    OTHER
    CONSIDERATIONS:
    LOGGING
    MONITORING
    NETWORKING

    View Slide

  53. @steveElsewhere
    HEALTHCHECK
    ROLLBACK
    GRACEFUL
    FAILURE
    OTHER
    CONSIDERATIONS:
    SECRETS
    SCALING
    CRON

    View Slide

  54. @steveElsewhere
    CHANGE
    AS LITTLE AS POSSIBLE
    GO H.A.M.

    View Slide

  55. @steveElsewhere
    SPECIFICS
    AIM FOR

    View Slide

  56. @steveElsewhere
    THINK
    ABOUT SECURITY

    View Slide

  57. @steveElsewhere
    START NOW

    View Slide

  58. @steveElsewhere
    THANK YOU!
    J.MP/TALKRESOURCES

    View Slide