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

A DevOps Pipeline

4fe11dd39e16a687cc15ea45d2fbb829?s=47 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

4fe11dd39e16a687cc15ea45d2fbb829?s=128

Steve Pereira

November 14, 2015
Tweet

More Decks by Steve Pereira

Other Decks in Technology

Transcript

  1. @steveElsewhere PIPELINE A DEVOPS @steveElsewhere

  2. @steveElsewhere ME

  3. @steveElsewhere CONTEXT VALUE

  4. @steveElsewhere WHY DO WE NEED A PIPELINE?

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

    DAY?
  6. @steveElsewhere ITERATION

  7. @steveElsewhere PIPELINE SO, ABOUT THAT @steveElsewhere

  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
  9. @steveElsewhere CONTINUOUS DELIVERY CHANGE STABILIZE VALIDATE RELEASE

  10. @steveElsewhere PROCESS CODE TEST BUILD DEPLOY

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

  12. @steveElsewhere CRUCIAL? WHY IS IT @steveElsewhere

  13. @steveElsewhere THE WALL @steveElsewhere

  14. @steveElsewhere DOCKER LETS TALK ABOUT

  15. @steveElsewhere CAVEATS LETS TALK ABOUT

  16. @steveElsewhere A FEW PIECES

  17. @steveElsewhere ADVANTAGES LETS TALK ABOUT

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

  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
  20. @steveElsewhere SOME
 PREREQUISITES

  21. @steveElsewhere PROVISIONING AND CONFIG

  22. @steveElsewhere OUTSIDE OUR CONTAINER

  23. @steveElsewhere DOCKER TOOLBOX OR VIRTUAL MACHINE

  24. @steveElsewhere BASE VOLUME BUILD RUN CONTAINER TYPES

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

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

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

  28. @steveElsewhere BUILT CONTAINER RUN COMMAND THE RUN CONTAINER

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

    RUN RUN
  30. @steveElsewhere QUALITY ASSURANCE

  31. @steveElsewhere BEYOND BASICS

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

    Mock
  33. @steveElsewhere CODE COMMIT TEST ENV PRODUCTION TESTING Regression Cross-Device Functional

    Static Analysis Integration QUALITY ASSURANCE
  34. @steveElsewhere QUALITY ASSURANCE CODE COMMIT TEST ENV PRODUCTION TESTING Exploratory

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

    A / B
  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
  37. @steveElsewhere QUALITY ASSURANCE

  38. @steveElsewhere CI ONSITE ‣ JENKINS ‣ GITLAB CI ‣ GO.CD

    ‣ STRIDER ‣ TEAM FOUNDATION SERVER
  39. @steveElsewhere CI ONLINE ‣ SHIPPABLE ‣ CODESHIP ‣ CIRCLE CI

    ‣ TRAVIS ‣ APPVEYOR
  40. @steveElsewhere BUILD ‣ DOCKER (LOCAL) ‣ PACKER (LOCAL) ‣ DOCKER

    HUB ‣ QUAY.IO ‣ ANY CI TOOL
  41. @steveElsewhere DEPLOYMENT PULL FROM HUB CONFIG MANAGEMENT

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

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

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

  45. @steveElsewhere WHERE WE GO FROM HERE

  46. @steveElsewhere AUTOMATION

  47. @steveElsewhere THE BOTS AGE OF

  48. @steveElsewhere COLLABO- TOMATION CHATOPS

  49. @steveElsewhere VISIBILITY CHATOPS

  50. @steveElsewhere MY ADVICE

  51. @steveElsewhere THE EDGES THINK ABOUT

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

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

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

  55. @steveElsewhere SPECIFICS AIM FOR

  56. @steveElsewhere THINK ABOUT SECURITY

  57. @steveElsewhere START NOW

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