@steveElsewhere
CREATING
VALUE
WHY WOULD WE SHIP 100
TIMES A DAY?
Slide 6
Slide 6 text
@steveElsewhere
ITERATION
Slide 7
Slide 7 text
@steveElsewhere
PIPELINE
SO, ABOUT THAT
@steveElsewhere
Slide 8
Slide 8 text
@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
Slide 9
Slide 9 text
@steveElsewhere
CONTINUOUS DELIVERY
CHANGE STABILIZE
VALIDATE RELEASE
@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
Slide 20
Slide 20 text
@steveElsewhere
SOME
PREREQUISITES
Slide 21
Slide 21 text
@steveElsewhere
PROVISIONING
AND CONFIG
Slide 22
Slide 22 text
@steveElsewhere
OUTSIDE OUR
CONTAINER
Slide 23
Slide 23 text
@steveElsewhere
DOCKER TOOLBOX
OR
VIRTUAL MACHINE
Slide 24
Slide 24 text
@steveElsewhere
BASE
VOLUME
BUILD
RUN
CONTAINER TYPES
Slide 25
Slide 25 text
@steveElsewhere
OS SOURCE
REPOS
PACKAGES
CLEANUP
THE BASE CONTAINER
Slide 26
Slide 26 text
@steveElsewhere
MINIMAL BARE OS
FILE STRUCTURE
FILES
THE VOLUME CONTAINER
Slide 27
Slide 27 text
@steveElsewhere
THE BUILD CONTAINER
BASE CONTAINER
CODE COPY
COMPILE
CLEANUP
Slide 28
Slide 28 text
@steveElsewhere
BUILT CONTAINER
RUN COMMAND
THE RUN CONTAINER
Slide 29
Slide 29 text
@steveElsewhere
CASCADE CHANGE
CHANGE
BASE
REBUILD
BUILD
REBUILD
BASE
REBUILD
RUN RUN
Slide 30
Slide 30 text
@steveElsewhere
QUALITY ASSURANCE
Slide 31
Slide 31 text
@steveElsewhere
BEYOND BASICS
Slide 32
Slide 32 text
@steveElsewhere
QUALITY ASSURANCE
CODE COMMIT TEST ENV PRODUCTION
TESTING
Unit
Mock
Slide 33
Slide 33 text
@steveElsewhere
CODE COMMIT TEST ENV PRODUCTION
TESTING
Regression
Cross-Device
Functional
Static Analysis
Integration
QUALITY ASSURANCE
Slide 34
Slide 34 text
@steveElsewhere
QUALITY ASSURANCE
CODE COMMIT TEST ENV PRODUCTION
TESTING
Exploratory
Acceptance
Performance
Smoke
Security
Slide 35
Slide 35 text
@steveElsewhere
QUALITY ASSURANCE
CODE COMMIT TEST ENV PRODUCTION
TESTING
Smoke
A / B
Slide 36
Slide 36 text
@steveElsewhere
QUALITY ASSURANCE
TESTING
Unit
Mock
TESTING
Regression
Cross-Device
Functional
Static Analysis
Integration
TESTING
Exploratory
Acceptance
Performance
Smoke
Security
TESTING
Smoke
A / B
Slide 37
Slide 37 text
@steveElsewhere
QUALITY ASSURANCE
Slide 38
Slide 38 text
@steveElsewhere
CI ONSITE
‣ JENKINS
‣ GITLAB CI
‣ GO.CD
‣ STRIDER
‣ TEAM FOUNDATION SERVER
Slide 39
Slide 39 text
@steveElsewhere
CI ONLINE
‣ SHIPPABLE
‣ CODESHIP
‣ CIRCLE CI
‣ TRAVIS
‣ APPVEYOR
Slide 40
Slide 40 text
@steveElsewhere
BUILD
‣ DOCKER (LOCAL)
‣ PACKER (LOCAL)
‣ DOCKER HUB
‣ QUAY.IO
‣ ANY CI TOOL
Slide 41
Slide 41 text
@steveElsewhere
DEPLOYMENT
PULL FROM HUB
CONFIG MANAGEMENT
Slide 42
Slide 42 text
@steveElsewhere
THE #!
CODE
CHANGE PUSH TRIGGER TRIGGER
PULL
TRIGGER
Slide 43
Slide 43 text
@steveElsewhere
THE #!
CODE
CHANGE PUSH TRIGGER TRIGGER
PULL
TRIGGER
Slide 44
Slide 44 text
@steveElsewhere
THE #!
CODE
CHANGE PUSH TRIGGER TRIGGER
PULL
TRIGGER
Slide 45
Slide 45 text
@steveElsewhere
WHERE WE GO
FROM HERE
Slide 46
Slide 46 text
@steveElsewhere
AUTOMATION
Slide 47
Slide 47 text
@steveElsewhere
THE
BOTS
AGE OF
Slide 48
Slide 48 text
@steveElsewhere
COLLABO-
TOMATION
CHATOPS
Slide 49
Slide 49 text
@steveElsewhere
VISIBILITY
CHATOPS
Slide 50
Slide 50 text
@steveElsewhere
MY ADVICE
Slide 51
Slide 51 text
@steveElsewhere
THE
EDGES
THINK
ABOUT
Slide 52
Slide 52 text
@steveElsewhere
SCHEDULING
STORAGE
SERVICE -
DISCOVERY
OTHER
CONSIDERATIONS:
LOGGING
MONITORING
NETWORKING
Slide 53
Slide 53 text
@steveElsewhere
HEALTHCHECK
ROLLBACK
GRACEFUL
FAILURE
OTHER
CONSIDERATIONS:
SECRETS
SCALING
CRON
Slide 54
Slide 54 text
@steveElsewhere
CHANGE
AS LITTLE AS POSSIBLE
GO H.A.M.