Continuous Delivery Release- und Deploymentmanagement bei der Brunata Hürth
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
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.
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
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
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
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
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
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
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
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
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
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
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
Fehler
kein
Fehler Fehler Metriken
SonarQube
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
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
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
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
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
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)
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
www.brunata-metrona.de www.brunata-metrona.de
Vielen Dank für Ihre Aufmerksamkeit.