a journey to continuous delivery - clean code days · a journey to continuous delivery tobias...

Post on 04-Jun-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

From rowing boats to container ships

a journey to continuous delivery

Tobias Getrost | 1&1 Telecommunication SE

Intro Tests Deployment Build Pipeline Docker

introduction | the start

automatic acceptance tests

automatic deployments

build pipeline

build pipeline with Docker

Agenda

Intro Tests Deployment Build Pipeline Docker

“Reliable Software Releases through Build, Test and

Deployment Automation”J. Humble, D. Farley: Continuous Delivery

Intro Tests Deployment Build Pipeline Docker

Invoicing Mock

Old version of the service

Contract Mgmt MockX Service is

not deployed

Intro Tests Deployment Build Pipeline Docker

Intro Tests Deployment Build Pipeline Docker

2h10m

Intro Tests Deployment Build Pipeline Docker

Talk to each other

Intro Tests Deployment Build Pipeline Docker

Lessons learned & good practices

Use the same tools for ALL

stages

Automatic deployments

Track your deployments

(what was when deployed)

Talk to the stakeholders

earlye.g. IT team

Automate the configuration, too

Intro Tests Deployment Build Pipeline Docker

idea implement test go live

cycle time

Intro Tests Deployment Build Pipeline Docker

Intro Tests Deployment Build Pipeline Docker

Intro Tests Deployment Build Pipeline Docker

Intro Tests Deployment Build Pipeline Docker

Intro Tests Deployment Build Pipeline Docker

Jenkins pipeline plugin• Groovy DSL

– flexibel– pipeline as code

• supports stages• Docker support

Intro Tests Deployment Build Pipeline Docker

Demo

Intro Tests Deployment Build Pipeline Docker

continuous integration

acceptance tests

acceptance tests

continuous integration

Intro Tests Deployment Build Pipeline Docker

dbContainer = docker .image('postgres:9.4') .run("--name db")

srv2 = docker .image('wildfly') .run("--name s2 “ + "--link db:db")

testImg .inside('--link s1:s1 ‘ + '--link s2:s2') { // tests }

srv1 = docker .image('wildfly') .run("--name s1 “ + "--link db:db")

Intro Tests Deployment Build Pipeline Docker

Pipelinesusing containerslessons learned

always stop your containers try { /* … */} finally { con?.stop()}

wait until the container has

started

Save log files and data before stopping the

container

Use unique names for your

containers or none

+ + + +

Continuous delivery

Tobias GetrostLead Developer1&1 Telecommunication SEtobias.getrost@1und1.de

top related