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

The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

THE ROAD TO CONTINUOUS DEPLOYMENT - A CASE STUDY

MICHIEL ROOK

@michieltcs

Page 2: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

▸ Developer, consultant, trainer, speaker

▸ @michieltcs

Page 3: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job
Page 4: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Page 5: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Large aging monolith

Page 6: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Large aging monolith

Generates income

Page 7: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Large aging monolith

Slow & complex

Generates income

Page 8: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Large aging monolith

Slow & complex

Generates incomeTechnical debt

Page 9: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

FRONTEND

MYSQL DB

BACKEND

LOAD BALANCERS / VARNISH

ITBANEN INTERMEDIAIR NATIONALEVACATUREBANK

FRONTEND FRONTENDFRONTEND

BACKEND BACKEND BACKEND

MEMCACHE FTP EXT. SERVICES

SOLR

@michieltcs

Page 10: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Page 11: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Manual releases

Page 12: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Manual releases

Fragile tests

Page 13: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Manual releases

Frequent issues

Fragile tests

Page 14: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Manual releases

Frequent issues

Fragile testsLow velocity

Page 15: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

GOALS

@michieltcs

Page 16: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

GOALS

@michieltcs

REDUCEISSUES

1

Page 17: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

GOALS

@michieltcs

REDUCEISSUES

REDUCELEAD TIME

1 2

Page 18: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

GOALS

@michieltcs

REDUCEISSUES

REDUCELEAD TIME

INCREASE PRODUCTIVITY

1 2 3

Page 19: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

GOALS

@michieltcs

REDUCEISSUES

REDUCELEAD TIME

INCREASE PRODUCTIVITY

INCREASE MOTIVATION

1 2 3 4

Page 20: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

REFACTOR? REBUILD?

Page 21: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

APPROACH

▸ API first

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

▸ Migrate individual pages

@michieltcs

Page 22: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

ORIGINAL MONOLITH

DB

@michieltcs

Page 23: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

ORIGINAL MONOLITH

PROXY

SERVICEORIGINAL MONOLITH

DB

DBDB

@michieltcs

Page 24: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

ORIGINAL MONOLITH

PROXY

SERVICEORIGINAL MONOLITH

ORIGINAL MONOLITH

SERVICE SERVICE

SERVICE

PROXY

DB

DBDB

DB

DB DB

@michieltcs

Page 25: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

PROXY

@michieltcs

RewriteEngine On

# Serve feature from new service for internal network RewriteCond expr "%{HTTP:X-FORWARDED-FOR} -ipmatch '192.168.0.0/24'" RewriteRule ^/feature/(.*)$ ${NEW_SERVICE_URL}/$1 [P,L]

# Proxy everything else to legacy application RewriteRule ^/(.*) ${LEGACY_URL}/$1 [P] ProxyPassReverse / ${LEGACY_URL}/

Page 26: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

ARCHITECTURE

@michieltcs

FRONTENDS ARE SERVICES

Page 27: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

ARCHITECTURE

@michieltcs

FRONTENDS ARE SERVICES

SERVICES BEHIND LOAD BALANCERS

Page 28: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

ARCHITECTURE

@michieltcs

FRONTENDS ARE SERVICES

SERVICES BEHIND LOAD BALANCERS

ACCESS LEGACY DB'S

Page 29: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

ARCHITECTURE

@michieltcs

FRONTENDS ARE SERVICES

SERVICES BEHIND LOAD BALANCERS

ACCESS LEGACY DB'S

SERVICES IN CONTAINERS

Page 30: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

LEGACY

ELASTIC SEARCH

DB

JOB SERVICE

RMQ

ITBANEN INTERMEDIAIR NATIONALEVACATUREBANK

MONGO DB

ITBANEN

JOBSEEKER SERVICE

NVBINTERMEDIAIR

@michieltcs

Page 31: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

PROCESS

Page 32: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

CONTINUOUS EVERYTHING

Page 33: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

CD?

Page 34: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEV BUILD / TEST

CONTINUOUS INTEGRATION

@michieltcs

Page 35: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEV BUILD / TEST ACCEPTANCE PRODUCTION

CONTINUOUS DELIVERY

@michieltcs

Page 36: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEV BUILD / TEST STAGING / ACCEPTANCE PRODUCTION

CONTINUOUS DEPLOYMENT

@michieltcs

Page 37: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

SMALL STEPS

Page 38: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

SMALL STEPS EARLY FEEDBACK

Page 39: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

SMALL STEPS EARLY FEEDBACK

REDUCE TIME TO RECOVER

Page 40: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

SMALL STEPS

EXPERIMENTS!

EARLY FEEDBACK

REDUCE TIME TO RECOVER

Page 41: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

@michieltcs

Page 42: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

EVERY COMMIT GOES TO PRODUCTION

Page 43: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

ONLY COMMIT TO MASTER

Page 44: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

NO BRANCHES

Page 45: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

NO BRANCHES

REALLY.

Page 46: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job
Page 47: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job
Page 48: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

PAIR PROGRAMMING

Page 49: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

FOCUS ON VALUE

Page 50: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

FEATURE TOGGLES, A/B TESTS

@michieltcs

Page 51: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

BOY SCOUT RULE

Page 52: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

GATES

Page 53: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

100% CODE COVERAGE *

Page 54: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEVOPS

Page 55: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

MONITORING

Page 56: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job
Page 57: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job
Page 58: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

BUILDPIPELINE

Page 59: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

AUTOMATE REPEATABLE THINGS

Page 60: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

CONTINUOUS TESTING

Page 61: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEFENSE IN DEPTH

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCETESTS

UI TESTS

@michieltcs

Page 62: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

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 63: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

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 64: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

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 65: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEFENSE IN DEPTH

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCETESTS

UI TESTS

@michieltcs

Page 66: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEFENSE IN DEPTH

TESTER?

UNIT TESTS

INTEGRATIONTESTS

ACCEPTANCETESTS

UI

@michieltcs

Page 67: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job
Page 68: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

CONTINUOUS TESTING

UNIT TESTS

INTEGRATION TESTS

ACCEPTANCE TESTS

UI TESTS

SMOKETESTS

Cost Speed

Exploratorytesting Monitoring

@michieltcs

Page 69: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

PIPELINE AS CODEnode { 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 70: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEPLOYING: ROLLING UPDATE

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 71: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEPLOYING

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 72: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEPLOYING

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 73: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEPLOYING

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 74: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEPLOYING

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 75: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEPLOYING

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 76: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEPLOYING

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 77: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

DEPLOYING

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 78: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

BUILD PIPELINE

@michieltcs

Page 79: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

FEEDBACK!

Page 80: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

RESULTS

Page 81: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Build per service

< 10 min.

1 4

@michieltcs

Page 82: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Build per service

< 10 min.

1

50+ deploys per day

2

@michieltcs

Page 83: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Build per service

< 10 min.

1

50+ deploys per day

Reduced number of

issues

2 3

@michieltcs

Page 84: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Build per service

< 10 min.

1

50+ deploys per day

Reduced number of

issues

Improved page load

times

2 3 4

@michieltcs

Page 85: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Improved metrics & audience statistics

5

@michieltcs

Page 86: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Improved metrics & audience statistics

5

Learning new

technology

6

@michieltcs

Page 87: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Improved metrics & audience statistics

5

Learning new

technology

Increased confidence, velocity &

fun

6 7

@michieltcs

Page 88: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Team acceptance

@michieltcs

Page 89: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Team acceptance

New technology

@michieltcs

Page 90: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Team acceptance

New technology

Docker stability

@michieltcs

Page 91: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Team acceptance

New technology

Docker stability

Pipeline stability

@michieltcs

Page 92: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Feature toggle cap

@michieltcs

Page 93: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Feature toggle cap

Business alignment

@michieltcs

Page 94: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

Feature toggle cap

Business alignment

Focus on replacing legacy

@michieltcs

Page 95: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

LITERATURE

https://trunkbaseddevelopment.com/

Page 96: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

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 97: The road to continuous deployment (V4:Jax) · 2018-06-21 · the road to continuous deployment - a case study michiel rook @michieltcs ... containers. legacy elastic search db job

THANK YOU!

@michieltcs / [email protected]

www.michielrook.nl