the road to continuous deployment (v6-16x9-jax)...continuous delivery accessible! hands-on,...

104
THE ROAD TO CONTINUOUS DEPLOYMENT - A CASE STUDY MICHIEL ROOK @michieltcs

Upload: others

Post on 08-Jul-2020

7 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

THE ROAD TO CONTINUOUS DEPLOYMENT - A CASE STUDY

MICHIEL ROOK

@michieltcs

Page 2: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

▸ Developer, consultant, trainer, speaker

▸ @michieltcs

Page 3: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines
Page 4: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Page 5: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Large aging monolith

Page 6: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Large aging monolith

Generates income

Page 7: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Large aging monolith

Slow & complex

Generates income

Page 8: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Large aging monolith

Slow & complex

Generates incomeTechnical debt

Page 9: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Page 10: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Manual releases

Page 11: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Manual releases

Fragile tests

Page 12: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Manual releases

Frequent issues

Fragile tests

Page 13: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Manual releases

Frequent issues

Fragile testsLow velocity

Page 14: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

GOALS

@michieltcs

Page 15: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

GOALS

REDUCEISSUES

1

@michieltcs

Page 16: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

GOALS

REDUCEISSUES

REDUCELEAD TIME

1 2

@michieltcs

Page 17: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

GOALS

REDUCEISSUES

REDUCELEAD TIME

INCREASE PRODUCTIVITY

1 2 3

@michieltcs

Page 18: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

GOALS

REDUCEISSUES

REDUCELEAD TIME

INCREASE PRODUCTIVITY

INCREASE MOTIVATION

1 2 3 4

@michieltcs

Page 19: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

REFACTOR? REBUILD?

Page 20: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

APPROACH

▸ API first

▸ Services per domain object (job, jobseeker, ...)

▸ Migrate individual pages

@michieltcs

Page 21: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

ORIGINAL MONOLITH

DB

@michieltcs

Page 22: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

ORIGINAL MONOLITH

PROXY

SERVICEORIGINAL MONOLITH

DB

DBDB

@michieltcs

Page 23: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

ORIGINAL MONOLITH

PROXY

SERVICEORIGINAL MONOLITH

ORIGINAL MONOLITH

SERVICE SERVICE

SERVICE

PROXY

DB

DBDB

DB

DB DB

@michieltcs

Page 24: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

ARCHITECTURE

FRONTENDS ARE SERVICES

@michieltcs

Page 25: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

ARCHITECTURE

FRONTENDS ARE SERVICES

SERVICES BEHIND LOAD BALANCERS

@michieltcs

Page 26: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

ARCHITECTURE

FRONTENDS ARE SERVICES

SERVICES BEHIND LOAD BALANCERS

ACCESS LEGACY DB'S

@michieltcs

Page 27: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

ARCHITECTURE

FRONTENDS ARE SERVICES

SERVICES BEHIND LOAD BALANCERS

ACCESS LEGACY DB'S

SERVICES IN CONTAINERS

@michieltcs

Page 28: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

IMPROVING

Page 29: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

CONTINUOUS EVERYTHING

Page 30: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEV BUILD / TEST

CONTINUOUS INTEGRATION

@michieltcs

Page 31: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEV BUILD / TEST ACCEPTANCE PRODUCTION

CONTINUOUS DELIVERY

@michieltcs

Page 32: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEV BUILD / TEST STAGING / ACCEPTANCE PRODUCTION

CONTINUOUS DEPLOYMENT

@michieltcs

Page 33: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

EVERY COMMIT GOES TO PRODUCTION

Page 34: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

IF IT HURTS DO IT MORE OFTEN

Page 35: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

SMALL STEPS

@michieltcs

Page 36: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

SMALL STEPS EARLY FEEDBACK

@michieltcs

Page 37: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

SMALL STEPS EARLY FEEDBACK

REDUCE TIME TO RECOVER

@michieltcs

Page 38: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

SMALL STEPS

EXPERIMENTS!

EARLY FEEDBACK

REDUCE TIME TO RECOVER

@michieltcs

Page 39: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

CHANGES IN IT PERFORMANCE OF HIGH PERFORMERS

Source: 2017 State Of DevOps report

Page 40: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

ONLY COMMIT TO MASTER

Page 41: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

NO BRANCHES

Page 42: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

NO BRANCHESREALLY.

Page 43: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines
Page 44: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

SHORT LIVED FEATURE BRANCHES?

Page 45: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines
Page 46: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DELAYING INTEGRATION

Page 47: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

CONFLICTS

Page 48: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

FEATURE TOGGLES

Page 49: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DECOUPLE DEPLOYMENTSFROM RELEASES

Page 50: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Page 51: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

FEATURE TOGGLE DEBT

Page 52: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

CODE REVIEWS?

Page 53: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PAIR PROGRAMMING

Page 54: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

CONTINUOUS INLINECODE REVIEW

Page 55: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

BOY SCOUT RULE

Page 56: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEVOPS

Page 57: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEVSECOPS

Page 58: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEVSECQAOPS

Page 59: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEVSECQABIZOPS

Page 60: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEVSECQABIZNETOPS

Page 61: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEVSECQABIZSYSNETOPS

Page 62: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEVTESTSECQABIZSYSNETOPS

Page 63: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEV*OPS

Page 64: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

TEAM BUILDS IT

Page 65: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

TEAM RUNS IT

Page 66: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

TEAM IMPROVES IT

Page 67: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

TEAM IS RESPONSIBLE

Page 68: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

BUILD PIPELINE

Page 69: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

AUTOMATE REPEATABLE THINGS

Page 70: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

CONTINUOUS TESTING

Page 71: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

CONFIDENCE

Page 72: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEFENSE IN DEPTH

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCETESTS

UI TESTS

@michieltcs

Page 73: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEFENSE IN DEPTH

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCE

UI TESTS

@Test public void jobCannotBeFound() { when(jobRepository.getById(EXPECTED_JOB_ID)) .thenReturn(null); JobService jobService = new JobService(jobRepository); assertNull(jobService.getById(EXPECTED_JOB_ID)); verify(jobRepository).getById(EXPECTED_JOB_ID); }

@michieltcs

Page 74: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEFENSE IN DEPTH

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCETESTS

UI TESTS

@Test public void shouldFindJob() { expectedJob = loadFixture('active_job.yml'); actualJob = repository.getById(expectedJob.getId()); assertThat(actualJob, isA(Job.class)); assertEquals(expectedJob.getId(), actualJob.getId()); }

@michieltcs

Page 75: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEFENSE IN DEPTH

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCETESTS

UI TESTSScenario: Link to related job Given a job exists And there are related jobs available When that job is viewed Then a list of related jobs is shown And each related job links to the detail page of the related job

@michieltcs

Page 76: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEFENSE IN DEPTH

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCETESTS

UI TESTS

@michieltcs

Page 77: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

DEFENSE IN DEPTH

TESTER?

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCETESTS

UI

@michieltcs

Page 78: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines
Page 79: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

UNIT TESTS

INTEGRATION TESTS

ACCEPTANCE TESTS

UI TESTS

SMOKETESTS

Cost Speed

Exploratorytesting & user

feedback

Monitoring& alerting

@michieltcs

Page 80: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

GOOD ENOUGH

Page 81: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PIPELINE SPEED = KEY

Page 82: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PULL IMAGE

START NEW CONTAINER

WAIT FOR PORT

SMOKE TESTS / HEALTH CHECKS

ADD NEW CONTAINER TO LB

REMOVE OLD CONTAINER FROM LB

STOP OLD CONTAINER

@michieltcs

Page 83: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PULL IMAGE

START NEW CONTAINER

WAIT FOR PORT

SMOKE TESTS / HEALTH CHECKS

ADD NEW CONTAINER TO LB

REMOVE OLD CONTAINER FROM LB

STOP OLD CONTAINER

docker pull

@michieltcs

Page 84: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PULL IMAGE

START NEW CONTAINER

WAIT FOR PORT

SMOKE TESTS / HEALTH CHECKS

ADD NEW CONTAINER TO LB

REMOVE OLD CONTAINER FROM LB

STOP OLD CONTAINER

docker run

@michieltcs

Page 85: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PULL IMAGE

START NEW CONTAINER

WAIT FOR PORT

SMOKE TESTS / HEALTH CHECKS

ADD NEW CONTAINER TO LB

REMOVE OLD CONTAINER FROM LB

STOP OLD CONTAINER

wait_for: port=8080 delay=5 timeout=15

@michieltcs

Page 86: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PULL IMAGE

START NEW CONTAINER

WAIT FOR PORT

SMOKE TESTS / HEALTH CHECKS

ADD NEW CONTAINER TO LB

REMOVE OLD CONTAINER FROM LB

STOP OLD CONTAINER

uri: url: http://localhost:8080/health status_code: 200 timeout: 30

@michieltcs

Page 87: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PULL IMAGE

START NEW CONTAINER

WAIT FOR PORT

SMOKE TESTS / HEALTH CHECKS

ADD NEW CONTAINER TO LB

REMOVE OLD CONTAINER FROM LB

STOP OLD CONTAINER

template: src=haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg

service: name=haproxy state=reloaded

@michieltcs

Page 88: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PULL IMAGE

START NEW CONTAINER

WAIT FOR PORT

SMOKE TESTS / HEALTH CHECKS

ADD NEW CONTAINER TO LB

REMOVE OLD CONTAINER FROM LB

STOP OLD CONTAINER

template: src=haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg

service: name=haproxy state=reloaded

@michieltcs

Page 89: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PULL IMAGE

START NEW CONTAINER

WAIT FOR PORT

SMOKE TESTS / HEALTH CHECKS

ADD NEW CONTAINER TO LB

REMOVE OLD CONTAINER FROM LB

STOP OLD CONTAINER

docker stop

docker rm

@michieltcs

Page 90: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

PIPELINE AS CODE

node { stage('Run tests') { sh "phpunit" sh "behat" } stage('Build docker image') { sh "docker build -t jobservice:${env.BUILD_NUMBER} ." sh "docker push jobservice:${env.BUILD_NUMBER}" } stage('Deploy staging') { sh "ansible-playbook -e BUILD=${env.BUILD_NUMBER} -i staging deploy.yml" } stage('Deploy production') { sh "ansible-playbook -e BUILD=${env.BUILD_NUMBER} -i prod deploy.yml" } }

@michieltcs

Page 91: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Page 92: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

FEEDBACK!

Page 93: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

RESULTS

Page 94: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Team acceptance

Page 95: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Feature toggle cap

Team acceptance

Page 96: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Feature toggle cap

Business alignment & agility

Team acceptance

Page 97: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

@michieltcs

Feature toggle cap

Business alignment & agility

Focus on replacing legacy

Team acceptance

Page 98: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

1

@michieltcs

Reduced number of

issues

1

Page 99: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

1

@michieltcs

Reduced number of

issues

1

Build time< 10 min.(50+ per

day)

2

Page 100: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

1

@michieltcs

Reduced number of

issues

1

Build time< 10 min.(50+ per

day)

Improved metrics & audience statistics

2 3

Page 101: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

1

@michieltcs

Reduced number of

issues

1

Build time< 10 min.(50+ per

day)

Improved metrics & audience statistics

Increased confidence, velocity &

fun

2 3 4

Page 102: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

LITERATURE

https://trunkbaseddevelopment.com/

Page 103: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

Reduce cycle times. React faster to the market and test product ideas. Make things!

We make Agile, DevOps and

Continuous Delivery accessible!

Hands-on, results-oriented approach to

get you where you need to be.

Modern infrastructure and

pipelines in minutes.

Page 104: The road to continuous deployment (V6-16x9-JAX)...Continuous Delivery accessible! Hands-on, results-oriented approach to get you where you need to be. Modern infrastructure and pipelines

THANK YOU!

@michieltcs / [email protected]

www.michielrook.nl