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

A DevOps Pipeline - XPDays16

A DevOps Pipeline - XPDays16

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. What does a modern pipeline look like in the context of Docker?

We’ll cover:
- the state of the ecosystem
- tools of the trade
- process overview
- key automations
- integrations and hosting
- deployment, operations and scaling
- working with Docker without losing your mind :)
Target audience: new and intermediate engineers working with/interested in Docker.

4fe11dd39e16a687cc15ea45d2fbb829?s=128

Steve Pereira

November 11, 2016
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 RUN

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

  12. @steveElsewhere IMPORTANT? WHY IS IT @steveElsewhere

  13. @steveElsewhere THE WALL @steveElsewhere

  14. @steveElsewhere DOCKER LETS TALK ABOUT

  15. @steveElsewhere CAVEATS LETS TALK ABOUT

  16. @steveElsewhere

  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 6. PULL AND RUN 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

  33. @steveElsewhere QUALITY ASSURANCE TESTING Unit Mock TESTING Regression Cross-Device Functional

    Static Analysis Integration TESTING Exploratory Acceptance Performance Smoke Security TESTING Smoke A / B
  34. @steveElsewhere QUALITY ASSURANCE

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

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

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

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

  39. @steveElsewhere THE #! CODE CHANGE PUSH TRIGGER TEST PULL TRIGGER

  40. @steveElsewhere THE #! PULL TRIGGER CODE CHANGE PUSH TRIGGER TEST

  41. @steveElsewhere THE #! PULL TRIGGER CODE CHANGE PUSH TRIGGER TEST

  42. @steveElsewhere WHERE WE GO FROM HERE

  43. @steveElsewhere AUTOMATION

  44. @steveElsewhere THE BOTS AGE OF

  45. @steveElsewhere COLLABO- TOMATION CHATOPS

  46. @steveElsewhere VISIBILITY CHATOPS

  47. @steveElsewhere MY ADVICE

  48. @steveElsewhere THE EDGES THINK ABOUT

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

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

  51. @steveElsewhere CHANGE AS LITTLE AS POSSIBLE GO CRAZY.

  52. @steveElsewhere SPECIFICS AIM FOR

  53. @steveElsewhere THINK ABOUT SECURITY

  54. @steveElsewhere START NOW

  55. @steveElsewhere THE STACK STATFLO.COM CONVOX

  56. @steveElsewhere CIRCLE

  57. @steveElsewhere CIRCLE

  58. @steveElsewhere CIRCLE

  59. @steveElsewhere CIRCLE

  60. @steveElsewhere CIRCLE

  61. @steveElsewhere WE’RE HIRING! STATFLO.COM

  62. @steveElsewhere ДЯКУЮ J.MP/TALKRESOURCES