+ All Categories
Home > Documents > Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log,...

Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log,...

Date post: 04-Jun-2018
Category:
Upload: ngohuong
View: 223 times
Download: 0 times
Share this document with a friend
22
Continuous Delivery Release- und Deploymentmanagement bei der Brunata Hürth
Transcript
Page 1: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Continuous Delivery Release- und Deploymentmanagement bei der Brunata Hürth

Page 2: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Unsere Standorte

2

BRUNATA-METRONA Hürth

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

BRUNATA Wärmemesser-Ges.

Schultheiss GmbH + Co.

Max-Planck-Straße 2 · 50354 Hürth

Tel. 02233 50-0 · Fax 02233 50-1169

[email protected]

Page 3: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Abrechnung und mehr

3

Der BRUNATA-Effekt

Unsere Dienstleistungen

Abrechnung von Energie- und Hausnebenkosten

INTAS – Integrierter Abrechnungsservice

Verbrauchsanalyse

Rauchmelderservice

Trinkwasseranalyse

Energieausweis

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Einfach. Mehr. Qualität.

Page 4: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Entwickler

4 09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

unser ursprüngliches Vorgehen

Continuous Delivery

SVN

Programm

Library

Library

Programm

Produktion Abnahme Entwicklung

Q

P

G Q

P

G

Entwickler

Page 5: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Linux

Komplexere System

5

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

DB2

z/VSE

DL/I CICS

CPG/

Online

CPG/

Batch

CPG

TCP/IPListener Linux

HTTP-Server

Servlet-Engine

Brunata Online

Wicket

CPGXML Client

Brunata

online Komet

WD-Alt

WD-Neu

CPGxml Gateway

BrAV,

Datentausch

etc. HTTP

XML

HTTP

XML

TCP/IP

DRDA

DRDA JDBC

HTTPS

Page 6: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

6 09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Komplexere Programme

Continuous Delivery

Java GUI

QPG

Business Logic

QPG

Datenzugriff

A A B

B A

Page 7: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Test-

aufwand

Abhängig-

keiten

Deployable Unit

7

Continuous Delivery

neue

Subsysteme

Schnittstellen

Technologien

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Komplexe

Programme

Komplexe

System

Verschmutzung

von Code wg.

technischer

Anforderung

Handling

zwischen

Programmen

zwischen

Systemen

Beschaffung von

Testdaten

Umfang von

Integrationstest

wiederkehrende

Durchführung

Page 8: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

unsere Probleme beim klassischen Vorgehen

8

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Deployment Entwicklung

Abhängigkeiten unklar

inkompatible Änderungen

werden oft erst in Produktion

erkannt

Fehler oft nicht reproduzierbar

keine Sicherheit nach Freigabe

Rollback kaum möglich

keine Zugriffskontrolle

hoher manueller Aufwand

Page 9: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

SOLL-Zustand

9

Continuous Delivery

zentrales Deployment

automatisiertes Deployment

sicheres Rollback des Deployments

Produktionsfehler nachvollziehbar machen

Abnahme muss verpflichtend sein

Qualitätsmetriken für SourceCode

höhere Testautomatisierung

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Page 10: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Exkurs Releasemanagement

10

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Trunk Tags/Release Branches

1.0.0-SNAPSHOT 1.0.0

1.0.x-bugfix 1.0.1-SNAPSHOT

1.0.1

1.0.2

1.0.2-SNAPSHOT

1.1.0-SNAPSHOT 1.1.0

1.1.x-bugfix 1.1.1-SNAPSHOT

1.2.0-SNAPSHOT

1.1.1

1.1.2

1.1.2-SNAPSHOT

1.0.3-SNAPSHOT

1.1.3-SNAPSHOT

1.0.x-bugfix = SVN-Branch 1.0.1-SNAPSHOT = Programmversion

Page 11: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Lane 1 – Bugfixing

Q

P

G SVN (Branch)

Q

P

G

„Paket“

SVN (Trunk)

Q

P

G

Transfer auf z/VSE

11

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Produktion Abnahme B Bugfix

Merge- Master

Q

P

G

Q

P

G

Q

P

G

Q

P

G

Lane 2 - Weiterentwicklung

Release

Manager

Entwickler

Entwickler Release

Manager

einzelner

Bugfix

Mile-

stone

Bugfix-

Release

Abnahme E Entwicklung

Page 12: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Transfer auf z/VSE

12

Continuous Delivery

zusätzlichen „Topf“ für SourceCode

SourceCode für Weiterentwicklung

SourceCode der Produktion für Bugfixes

zusätzliche Bugfix-Umgebung

CICS- & Batch-Partition, Tabellen, etc.

nur Bugfixes, keine Weiterentwicklung

zusätzliche Abnahmeumgebung (Regressionstests, Schulung)

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Page 13: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Prozessübersicht Release-Organisation

13

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Initiale Release-

Bestimmung (Hotfix)

Dokumentation und

Vorbereitung

Release-

durchführung Kommunikation

Beschreibung

Releasemanagement

wählt auf Basis von

JIRA Fehlerbehebungen

und Anpassungen für

Release/Bugfix aus

Tooleinsatz

JIRA (Suche Tickets mit

Korrekturumgebung "für

Produktion")

Beschreibung

Releasemanagement

dokumentiert Jira-Tickets

und deployt

Codeänderungen auf

Abnahmeumgebung

Testmanagement

überblickt Tickets und

führt Smoke-Test auf

Abnahmeumgebung

durch

Tooleinsatz

WIKI

„Test“ - Jenkins

Beschreibung

Releasemanagement

deployt neue

Programmversionen auf

Produktion und

dokumentiert

Releasedurchführung

Tooleinsatz

WIKI

Jenkins

Beschreibung

Testmanagement

verfasst Release-Log,

dokumentiert und

kommuniziert diesen an

IT und Fachbereich

Tooleinsatz

Releaselog-Vorlage

WIKI

Quelle: Max Tschochohei, Platinion GmbH

Page 14: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Jenkins – use cases: Entwickler checkt ins SVN ein

14

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

SVN Entwickler build

unit tests

kein

Fehler

E-Mail

Fehler

kein

Fehler Fehler Metriken

SonarQube

Page 15: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Jenkins – use cases: Release

15

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

SVN

build

Artifactory SVN

build

Server X

signieren

Release deployen Release erstellen

getaggte

Version

Page 16: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Jenkins – use cases: Deployment der QPG-Programme

16

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Phase des Zielsystems

ins Quellsystem Release

Manager

Kompilieren des

QPG-Programms

Kopieren der Phase

ins Zielsystem

Erstellen einer leeren

Phase im Quellsystem E-Mail

Page 17: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Jenkins – use cases: Programmierunterstützung

17

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

SVN

Vergleich

QTFTXT

Differenzen

alle QPG-

Programme alle QPG-

Programme

Entwickler

Release

Manager

Page 18: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Jenkins – use cases: Regressionstests

18

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

SVN

Testdaten

aus-checken

DB2

Datenbank

vorbereiten

Datenbank

auslesen

DB2

Soll-/Ist-

Vergleich

Ergebnis

anzeigen

Testfall

durchführen Ergebnisse

des Tests

Page 19: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Tools des ReleaseManagements

19

Continuous Delivery

Jira

Ticketsystem für Bugfixes und Weiterentwicklung

Jenkins-Server

Deployment der QPG-Programme (bald auch HL/I)

Release- & Deploymentprozesse für Java

Abhängigkeiten QPG

Unterschiede SVN-CICS

Regressionstest

Testdatenbeschaffung

Artifactory-Server

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Page 20: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

zentrales Deployment

automatisiertes Deployment

sicheres Rollback des Deployments

Produktionsfehler nachvollziehbar machen

Abnahme muss verpflichtend sein

Qualitätsmetriken für SourceCode

höhere Testautomatisierung

SOLL-/IST-Vergleich

20

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

(nur Java)

Page 21: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

Fazit

21

Continuous Delivery

09.06.2015 Patrick Richterich ▪ IT-Abteilung ▪ BRUNATA Hürth

Transparenz

Reduzierung des Risikos bei Softwarerelease

von gefürchteter Prozedur zum Alltagsvorgang

höhere Akzeptanz im Fachbereich

erhöhte Automatisierung in allen

Bereichen

Change Management notwendig

Page 22: Continuous Delivery - Lattwein GmbH · Jenkins Beschreibung Testmanagement verfasst Release-Log, dokumentiert und kommuniziert diesen an ... SonarQube . Jenkins – use cases: Release

www.brunata-metrona.de www.brunata-metrona.de

Vielen Dank für Ihre Aufmerksamkeit.


Recommended