Continuous Delivery

Post on 18-Jan-2017

147 views 0 download

transcript

Continuous Delivery

Steffen Gebert (@StGebert)DevOps-Meetup Würzburg Mainfranken, 07.11.2016

Slides: st-g.de/speaking

Image courtesy of

2

Continuous Delivery• Änderungen, wie z.B.

• Features• Bug fixes• Konfigurationsänderungen• Experimente

• jeweils• zuverlässig• schnell• kontinuierlich• sicher

• zum Benutzer bzw. in den Betrieb bringennach: Jez Humble, continuousdelivery.com

About MeResearcher / PhD Student(Software-based Networks)2011 - 2016

Core Team Member2010 - 2013Server Admin Team Member

since 2011

3

4

Fluss• von Änderungen• und damit von Arbeit

5

Unsere Arbeit: Code

Software Infrastruktur Compliance …Konfiguration

6

Ziel: Kunde

7

8

Wertstrom / Lieferkette

Qualitätssicherung Veröffentlichung(Release, Deployment)

KundeCode

Entscheider

9

Release 0.1

10

Release 1.0

11

Release 2.0

12

Release 3.0

13

Das KernproblemNoch mehr Features!

Ufff..

O

O

O O

Deployments

Was solls, die paar Bugs..

14

Technische Schuld

15

Stoppt den Fluss

16

In der Regel krachts..

17

Informatiker haben anderen Rhythmus – sagt man

18

Software-Deployments

19

Single PieceDelivery

20Lean Manufacturing

Foto: Toyota

21

Durchfluss maximieren

22

Deployment Pipeline

Automatisiertes Release / Deployment

Stage

2Versionskontrolle

Stage

1Stage

….

23

Yahoo / flickr

24

Amazon• Let me say that again. Amazon deploys new software to production every 11.6 seconds

25

26

27

Wertstrom / Lieferkette

28

Deployment PipelineVersionskontroll

eAutomatisierte Akzeptanztests

Benutzer-Akzeptanztests

Automatisiertes Release /

DeploymentKompilieren

29

Deployment PipelineVersionskontroll

eAutomatisierte Akzeptanztests

Benutzer-Akzeptanztests

Automatisiertes Release /

DeploymentKompilieren

30

Deployment PipelineVersionskontroll

eAutomatisierte Akzeptanztests

Benutzer-Akzeptanztests

Automatisiertes Release /

Deployment

Unit Tests

Funktionale Tests

Nicht-funktionale

Tests

Syntaxcheck

Kompilieren

Testpyramide

31

Code von damals…

32

Schnelles Feedback

33

Deployment Pipeline

34

Deployment PipelineVersionskontroll

eAutomatisierte Akzeptanztests

Benutzer-Akzeptanztests

Automatisiertes Release /

DeploymentKompilieren

35

Produktiv- und Testumgebung(en)

36

Deployment PipelineVersionskontroll

eAutomatisierte Akzeptanztests

Benutzer-Akzeptanztests

Automatisiertes Release /

DeploymentKompilieren

37

Commits in Mainline• Subversion: trunk• Git: master

38

Feierabend < Feature fertig?

39

Features verstecken?

Image: http://wallpaperfolder.com/wallpapers/invisible+man

40

Feature Toggles

41

Kontinuierliches Experimentieren

42

Feedback aus Produktivbetrieb

43

CD Pipelines mit Jenkins• Jenkins ist Open-Source CI/CD Server

• Mehr unterjenkins.io bzw. st-g.de/speaking

44

Continuous Delivery• Änderungen, wie z.B.

• Features• Bug fixes• Konfigurationsänderungen• Experimente

• jeweils• zuverlässig• schnell• kontinuierlich• sicher

• zum Benutzer bzw. in den Betrieb bringennach: Jez Humble, continuousdelivery.com