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

25
From rowing boats to container ships a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE

Upload: others

Post on 04-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

From rowing boats to container ships

a journey to continuous delivery

Tobias Getrost | 1&1 Telecommunication SE

Page 2: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

introduction | the start

automatic acceptance tests

automatic deployments

build pipeline

build pipeline with Docker

Agenda

Page 3: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction
Page 4: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

“Reliable Software Releases through Build, Test and

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

Page 5: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction
Page 6: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Invoicing Mock

Old version of the service

Contract Mgmt MockX Service is

not deployed

Page 7: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Page 8: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

2h10m

Page 9: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction
Page 10: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Talk to each other

Page 11: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

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

Page 12: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction
Page 13: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

idea implement test go live

cycle time

Page 14: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Page 15: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Page 16: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Page 17: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Page 18: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Jenkins pipeline plugin• Groovy DSL

– flexibel– pipeline as code

• supports stages• Docker support

Page 19: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

Demo

Page 20: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction
Page 21: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Intro Tests Deployment Build Pipeline Docker

continuous integration

acceptance tests

acceptance tests

continuous integration

Page 22: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

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")

Page 23: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

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

Page 24: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

+ + + +

Continuous delivery

Page 25: a journey to continuous delivery - Clean Code Days · a journey to continuous delivery Tobias Getrost | 1&1 Telecommunication SE. Intro Tests DeploymentBuild Pipeline Docker introduction

Tobias GetrostLead Developer1&1 Telecommunication [email protected]