SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Releases: Aus Jahren werden Minuten
Mehr Outcome mit weniger Einsatz
Jan Mortensen
Software Developer
Speaker
VORSTELLUNG
› Jan Mortensen
› Master in Informatik
› Seit ca. 4 Jahren bei Inxmail
› 2 Jahre Softwareentwicklung am Kernprodukt
› 2 Jahre im Team Release Train
Inxmail
DER PIONIER IM E-MAIL-MARKETING
Zahlen und Fakten
RUND UM INXMAIL
19
Jahre
Erfahrung
150
Motivierte
Mitarbeiter
2.000
Zufriedene Kunden
200
Internationale
Partner
Ausgezeichneter
Service
120% 100%
Persönlicher
Ansprechpartner
100%
Made in
Germany
Updateprozess
GRÜNDE FÜR SCHNELLE UPDATES
Verringerung der Lead Time
› Software soll möglichst schnell ausgeliefert werden und Gewinn erwirtschaften
Iterative Entwicklung
› Ist die Änderung die ich mache die, die der Kunde braucht?
› Schnelles Feedback
Einfachere Updates
› Es müssen weniger Änderungen auf einmal ausgerollt werden
Fehler werden schneller entdeckt und haben weniger Auswirkungen
› Ausmaß inkonsistente Daten ist viel geringer, wenn der Zeitraum kleiner ist
Vorgehensweise
STAND 2016
Release steht an
› Alle geraten in
Panik
Informationen
sammeln
› Wie baut man ein
Release?
Release wird gebaut
› Artefakte werden
von Hand getestet
2000 Applikationen in
2 Stunden updaten
› Zeitdruck
› Fehleranfällig
Architektur
INXMAIL PROFESSIONAL
› Legacy Applikation
› Monolitische Architektur
› Single Tenancy Anwendung
› Besteht aus Server-Applikation und Java Swing Client
Organisation
DAS TEAM RELEASE TRAIN
› Dediziertes Team um am Release Prozess zu arbeiten
› Wurde aus dem Daily Business herausgenommen
› Arbeitet an technischen Änderungen um
das Release Train Konzept umzusetzen
Problemkategorien
ÜBERSICHT
Organisatorisches
DeploymentTesting
Problemkategorien
ORGANISATORISCHES
Organisatorisches
DeploymentTesting
Organisatorisches
ÜBERBLICK
› Prozesse technisch abbilden
› Automatisieren
Informationen müssen
zusammengesucht werden
› Aufbrechen von Silos
› Dev-Ops
Wissen ist nicht verteilt, sondern
nur bei einer Person / einem
Team
› Alte Zöpfe abschneiden
Viele Betriebssysteme und
Datenbanken werden
unterstützt
Organisatorisches
INFORMATIONEN FESTHALTEN
› Prozess technisch abbilden
› Alle Informationen sofort im Prozess einpflegen, sobald man sie erhält
› So müssen keine Informationen aus Wiki-Dokuseiten oder
PDF-Dokumenten zusammengesucht werden,
sondern sind implizit vorhanden
Organisatorisches
AUFBRECHEN VON SILOS
Organisatorisches
ALTE ZÖPFE ABSCHNEIDEN
› Unterstützung für 3 von 4 Datenbanksystemen eingestellt
› Unterstützung von diversen Betriebssystemen eingestellt
› Vermehrte Nutzung von externen Services
Problemkategorien
TESTING
Organisatorisches
DeploymentTesting
Testing
ÜBERBLICK
› Automatisieren
› Alte Zöpfe abschneiden
Hoher manueller Aufwand
z.B. beim Testen
› Sichtbarkeit erhöhen
Fehlschlagende Tests sind nicht
sichtbar
› Docker
Unzuverlässige
Testumgebung
Testing
RELEASE PIPELINE
› Automatisierung einzelner
Aufgaben
› Bei einem Release mussten viele
unterschiedliche Builds mit vielen
Parametern angestoßen werden
› Das war zeitaufwendig und
fehleranfällig
Testing
RELEASE PIPELINE
Release
Build
Artefakt
Test
Updatefile Build
Updatefile
Test
Lizenz
Updatefile Build
Lizenz
Updatefile Test
› Einfaches Formular um Release Build anzustoßen
› Jeder Einzelschritt stößt den nächsten an
› Parameter werden automatisch ermittelt
Testing
TESTFEHLSCHLÄGE SICHTBAR MACHEN
Testing
TESTUMGEBUNG ZUVERLÄSSIGER MACHEN
› Wechsel von Vagrant zu Docker
› Einfache Wegwerf-Docker-Images unseres Kernproduktes zum Testen
1123 1123
28 10
2
1
3
8
0
1
2
3
4
5
6
7
8
9
0
200
400
600
800
1.000
1.200
2015 2016 2017 2018
Arbeitsstunden pro Release Anzahl Releases
Testing
ARBEITSSTUNDEN FÜR TESTAUFWÄNDE PRO RELEASE
~ 7 Monate
Problemkategorien
DEPLOYMENT
Organisatorisches
DeploymentTesting
Deployment
ÜBERBLICK
› Automatisieren
› Slotstrategie
› Docker, Kubernetes
Fehleranfälliges Deployment
› Microservices
Viele Abhängigkeiten /
Begrenzte Downtimes
Deployment
AUTOMATISIERTE UPDATE-VORBEREITUNG: ALTER PROZESS
› Langer Wiki-Artikel für die Dokumentation
› Es waren viele Schritte notwendig
› Viele Bash-Befehle haben den Prozess
fehleranfällig gemacht
Deployment
AUTOMATISIERTE UPDATE-VORBEREITUNG : NEUER PROZESS
› Ein einziger Bash-Befehl
› Alles weitere wird automatisch ermittelt
Deployment
SLOTSTRATEGIE
› Server werden nach und nach geupdated
› Ein Bug betrifft nicht immer gleich alle Kunden
Deployment
MICROSERVICES
› Neue Funktionalitäten als Microservices
› Einzelne Services können unabhängig
vom Kernprodukt aktualisiert werden
› Zero Downtime für den Enduser
Deployment
DOCKER
› Hauptsächlich für Microservices
› Externe Einflüsse werden minimiert
› Deployment mit Docker ist einfacher handhabbar und schneller
Deployment
KUBERENETES
› Ressourcen können besser genutzt werden
› Einzelne Services können redundant deployed werden
› Zero Downtime Deployments
Vorgehensweise
STAND 2018
Release steht an
› Ruhig dasitzen und
lächeln
Release wird gebaut
› 2 Parameter
eintragen und
warten
Update vorbereiten
› Bashzeile kopieren
und Enter drücken
Update durchführen
› Scripte starten und
Kaffee trinken
Zusammenfassung
RELEASES: AUS JAHREN WERDEN MINUTEN
Automatisierung
Informationsverteilung
Man muss nicht immer jeden Kunden bedienen
Richtige Auswahl der richtigen Technologie für eine Problemlösung
Automatisierung
Vielen Dank für Ihre
Aufmerksamkeit

Contenu connexe

Similaire à Releases: Aus Jahren werden Minuten

Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Christian Güdemann
 
Microsoft Teams Performance Optimierung - Kennen Sie Ihre Daten
Microsoft Teams Performance Optimierung - Kennen Sie Ihre DatenMicrosoft Teams Performance Optimierung - Kennen Sie Ihre Daten
Microsoft Teams Performance Optimierung - Kennen Sie Ihre Daten
panagenda
 
Im Praxistest – Microsoft Teams Performance im hybriden Arbeitsalltag
Im Praxistest – Microsoft Teams Performance im hybriden ArbeitsalltagIm Praxistest – Microsoft Teams Performance im hybriden Arbeitsalltag
Im Praxistest – Microsoft Teams Performance im hybriden Arbeitsalltag
panagenda
 

Similaire à Releases: Aus Jahren werden Minuten (20)

Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
 
Microsoft Teams Performance Optimierung - Kennen Sie Ihre Daten
Microsoft Teams Performance Optimierung - Kennen Sie Ihre DatenMicrosoft Teams Performance Optimierung - Kennen Sie Ihre Daten
Microsoft Teams Performance Optimierung - Kennen Sie Ihre Daten
 
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
 
Internal Developer Portals & Backstage
Internal Developer Portals & BackstageInternal Developer Portals & Backstage
Internal Developer Portals & Backstage
 
Labvolution 2017 schulungspräsentation_simplifier
Labvolution 2017 schulungspräsentation_simplifierLabvolution 2017 schulungspräsentation_simplifier
Labvolution 2017 schulungspräsentation_simplifier
 
Kritische app performance erfolgreich optimieren mit Bison
Kritische app performance erfolgreich optimieren mit BisonKritische app performance erfolgreich optimieren mit Bison
Kritische app performance erfolgreich optimieren mit Bison
 
IT Probleme loesen
IT Probleme loesenIT Probleme loesen
IT Probleme loesen
 
Prozessoptimierung für KMU
Prozessoptimierung für KMUProzessoptimierung für KMU
Prozessoptimierung für KMU
 
Advanced Continuous Integration
Advanced Continuous IntegrationAdvanced Continuous Integration
Advanced Continuous Integration
 
Testautomatisierung
TestautomatisierungTestautomatisierung
Testautomatisierung
 
Tech Docs + Enterprise + Team = Fail? Kollaborative Zusammenarbeit in der tec...
Tech Docs + Enterprise + Team = Fail? Kollaborative Zusammenarbeit in der tec...Tech Docs + Enterprise + Team = Fail? Kollaborative Zusammenarbeit in der tec...
Tech Docs + Enterprise + Team = Fail? Kollaborative Zusammenarbeit in der tec...
 
Agile Business Software mit der Enterprise Cloud
Agile Business Software mit der Enterprise CloudAgile Business Software mit der Enterprise Cloud
Agile Business Software mit der Enterprise Cloud
 
Deployment
DeploymentDeployment
Deployment
 
We are WP, we are legion - WP Camp 2013 Berlin
We are WP, we are legion - WP Camp 2013 BerlinWe are WP, we are legion - WP Camp 2013 Berlin
We are WP, we are legion - WP Camp 2013 Berlin
 
Sharepointroadshow Office365 developer
Sharepointroadshow Office365 developerSharepointroadshow Office365 developer
Sharepointroadshow Office365 developer
 
App-Delivery-Pipeline
App-Delivery-PipelineApp-Delivery-Pipeline
App-Delivery-Pipeline
 
Im Praxistest – Microsoft Teams Performance im hybriden Arbeitsalltag
Im Praxistest – Microsoft Teams Performance im hybriden ArbeitsalltagIm Praxistest – Microsoft Teams Performance im hybriden Arbeitsalltag
Im Praxistest – Microsoft Teams Performance im hybriden Arbeitsalltag
 
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integ...
 
TDD mit ABAP Units
TDD mit ABAP UnitsTDD mit ABAP Units
TDD mit ABAP Units
 

Plus de x-celerate

Plus de x-celerate (6)

Automatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-ProzessAutomatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-Prozess
 
Robustes Testen mit Selenium
Robustes Testen mit SeleniumRobustes Testen mit Selenium
Robustes Testen mit Selenium
 
Serverless Computing: Run code, not servers
Serverless Computing: Run code, not serversServerless Computing: Run code, not servers
Serverless Computing: Run code, not servers
 
Closing Note: Betrieb 24/7 - Entspannt Euch, wir sind doch alle Profis
Closing Note: Betrieb 24/7 - Entspannt Euch, wir sind doch alle ProfisClosing Note: Betrieb 24/7 - Entspannt Euch, wir sind doch alle Profis
Closing Note: Betrieb 24/7 - Entspannt Euch, wir sind doch alle Profis
 
Der Arbeitsalltag in einer containerisierten Umgebung
Der Arbeitsalltag in einer containerisierten UmgebungDer Arbeitsalltag in einer containerisierten Umgebung
Der Arbeitsalltag in einer containerisierten Umgebung
 
Dienste als Nomaden - Heute in AWS und morgen in Azure
Dienste als Nomaden - Heute in AWS und morgen in AzureDienste als Nomaden - Heute in AWS und morgen in Azure
Dienste als Nomaden - Heute in AWS und morgen in Azure
 

Releases: Aus Jahren werden Minuten