Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale

Jeroen Reijn
Jeroen ReijnSoftware/Solution Architect at Luminis
Jeroen Reijn & Sjoerd Hemminga
Hoe releasen minder pijnlijk
werd bij de ANWB
Alarmcentrale
is powered by
Waar gaan we het over hebben?
• Problemen
• Hoe kan Continuous Delivery helpen?
• Onze aanpak & opstart-problemen
• Huidige staat & resterende uitdagingen
2
Over ons
Jeroen Reijn
• IT-Architect @ ANWB
• Software/Solution architect
@ Luminis Amsterdam
Sjoerd Hemminga
• Software engineer @
ANWB
3
@jreijn @shemminga
Intro ANWB
5
6
7
8
9
10
11
12
Intro HV / ALC / WW
14
Transitie oud naar nieuw
15
0
20,000
40,000
60,000
80,000
100,000
120,000 April
Juni
Juli
Augustus
September
Oktober
November
December
Januari
Februari
Maart
April
Mei
Juni
Juli
Augustus
September
Oktober
November
December
Januari
Februari
Maart
2015 2016 2017
AantalCases
jaar, maand
Nederland
Processing
Storage
UI
Technology stack
16
Intake
Landschap
17
Zakelijke markt
FLOW
Consumenten
markt
BI
Logicx
Finance
Uitvoering
Online
Zusterclubs
ONTWIKKELPROCES BEGIN 2016
18
Agile werkwijze & Scrum
• 3 ontwikkel teams
– Case, Rechten en Publiceren
– Bestaande uit Ontwikkelaars, Testers en Analisten
• 2 beheer teams
– Functioneel
– Technisch
• 2 wekelijkse sprints
– 26 vaste releases per jaar
– Hotfix releases als nodig
19
Werkwijze
20
Git workflow
21
Werkwijze
22
Jenkins
• Een open source, cross-platform, continuous integration en continuous
delivery applicatie.
• Makkelijk te configureren
• Groot plugin ecosysteem
• Gebruiken we voor diverse jobs:
– Compile en Unit test
– Releases
– Regressie tests
– Performance test
23
XLDeploy
• Gestandaardiseerde deployments
• Applicatie configuratie
• Bevat alle deployables
24
Verantwoordelijkheid
25
WAAR LIEPEN WE TEGEN AAN?
26
Waar liepen we tegen aan?
• Geregeld verstoringen
– Veel en divers werk per sprint
– ‘Haast’ om wijzigingen mee te krijgen
• Tijd nodig om releases te stabiliseren
• Veel afstemming en wachttijd tussen teams
– Git merge conflicten
– Tests samenvoegen na de ‘release’
– Beschikbaarheid test omgeving
• Grote/langdurige GAT na de sprint
27
HOE KAN CONTINUOUS DELIVERY HELPEN?
28
Continuous Delivery
“Continuous Delivery is the ability to get changes of all
types—including new features, configuration changes, bug
fixes and experiments—into production, or into the hands of
users, safely and quickly in a sustainable way.”
29
Bron: https://continuousdelivery.com/
Principes
• Bouw kwaliteit in
• Werk in kleine batches
• Computers doen de herhalende taken, mensen lossen
problemen op
• Blijf continu verbeteren
• Iedereen is verantwoordelijk
30
ONZE AANPAK
31
Begin bij het begin…
• Praat met elkaar en creëer een gezamenlijk begrip
• Cultuur
• Wat is er in de teams nodig?
• Wat is er aan de business kant nodig?
32
Gezamenlijk begrip
• Continuous Integration != Continuous Delivery !=
Continuous Deployment
• “Gaan de ontwikkelteams de software nu direct uitrollen
naar productie?”
• “We zijn toch geen Netflix, waarom hebben we dit nodig?”
33
Cultuurveranderingen
• Ontwikkelaars, testers, analisten, beheerders en gebruikers werken als
één team. Verwijder ‘afstand’.
• Af als het ook echt af is.
• Afstappen van een ‘allesomvattende’ GAT
• Openheid en transparantie
• Continu samen leren, reflecteren en verbeteren
34
Analyse
Ontwikkeling Test Acceptatie Productie
35
Analyse verbeterpunten
Ontwikkeling Test Acceptatie Productie
36
Los team ter ondersteuning
• Focus op automatisering
• Ondersteunend aan andere teams
• Monitoring
• Alertering
37
Testen
• ANWB Regressietest Tool (ART)
• Onder versie beheer brengen van de tests
• Breder gedragen kennis van test tool
• Focus op dekkingsgraad
• Regressie test op iedere werkplek kunnen draaien tegen een installatie
van FLOW
38
Release per story
• Ontkoppel deployment van het einde sprint moment
• Maak de sprint demo ceremonieel
• Releases van 1 keer per sprint naar tot 3 keer per dag
39
Test omgevingen?
• Hoe gaan we om met de bottleneck voor test omgevingen?
– VM’s?
– Containers?
40
Wat doet Docker?
41
Bron: https://www.docker.com/
Docker FLOW
42
Docker Swarm
Node 1 Node 2 Node 3 ART Node
FLOW
-1321
FLOW
-1322
FLOW
-1323
FLOW
-1323
On-demand test omgevingen
43
Directe feedback
• Release notificaties via messenger tool
• Verstoring notificaties
• Real-time feedback
44
Splunk
• Verzamelt en indexeert log en machine data
• Krachtige zoek, analyse en visualizatie mogelijkheden
• Beschikbaar on-premise en in de cloud
• Verstuurt notificaties op basis van events
45
Zabbix
• Open source monitoring tool
• Servers monitoring
• Applicatie monitoring
• DB Monitoring
46
KINDERZIEKTES
47
Zorgen over
stabiliteit van
operatie
Afspraken
over uitrol-
windows
48
Zorgen over
stabiliteit van
software
Betere tests
49
Onbekendheid
van developers
met tests
Meer tests
door
developers
50
Wachtrijen
voor
omgevingen
Meer
omgevingen /
containers
51
Verwachte
oplevering
Per sprint
52
Meerdere
releases
tegelijk
Een release-
bord
53
De release-paal
54
WAAR STAAN WE NU?
55
Nieuw Git workflow
56
master
feature
feature
v4.17.3.1
v4.17.3.2
Verantwoordelijkheid nu
57
Wat heeft het opgeleverd?
• Minder stress:
– Geen haast meer om stories in sprint-release te stoppen
– Geen stress voor de demo meer: niet af is niet af
• Meer inzicht in release
• Betere verdeling van kennis
• Sneller problemen kunnen oplossen
• Minder merge conflicten
• Minder wachten op testomgevingen
• … en natuurlijk sneller time to market.
58
RESTERENDE UITDAGINGEN
59
Releases zijn nog veel werk
Merge master
Aftrappen
regressietest
Aftrappen
performancetest
Aftrappen
datatest
Release bouwen
Proef-
deployment
Smoke test
Deployment
naar productie
60
Regressietest niet stabiel
• Instabiliteit door:
– GUI jitter
– Tests die te veel op externe test-systemen leunen
• Ervaring nodig om echte fouten te zien
• Handmatige retry van tests bij onzekerheid
• Tijdelijk opgelost met automatische retry
• Permanente oplossing:
– Tests verbeteren
– Stubs van externe systemen
61
Test-keten
62
Intake
Zakelijke markt
FLOW
Consumenten
markt
BI
Logicx
Finance
Uitvoering
Online
Zusterclubs
Lessons learnt
• Blijf in gesprek
– Creëer gezamenlijk begrip
– Neem zorgen serieus, maar laat je niet verlammen
• Begin klein
• Verbeter incrementeel
• Actie is beter dan stilstand
Neem verantwoordelijkheid voor je eigen proces
63
?Bedankt
Vragen?
is powered by
1 of 64

Recommended

Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale by
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleHoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleSjoerd Hemminga
923 views64 slides
Tech Talks 101 - DevOps (jan 2022) by
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
69 views49 slides
DevOps presentatie by
DevOps presentatieDevOps presentatie
DevOps presentatieJurgen van de Pol
1.6K views31 slides
Continuous delivery met jenkins twist en puppet by
Continuous delivery met jenkins twist en puppetContinuous delivery met jenkins twist en puppet
Continuous delivery met jenkins twist en puppetltebbens
795 views18 slides
Agile, Continuous Delivery & DevOps in perspectief by
Agile, Continuous Delivery & DevOps in perspectiefAgile, Continuous Delivery & DevOps in perspectief
Agile, Continuous Delivery & DevOps in perspectiefMaurice Roos
2.9K views29 slides
Testen binnen dev ops DTC 2014 by
Testen binnen dev ops DTC 2014Testen binnen dev ops DTC 2014
Testen binnen dev ops DTC 2014Kaspar van Dam
1K views20 slides

More Related Content

Similar to Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale

Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009 by
Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009
Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009Dae Punt
341 views26 slides
Sdb Presentatie by
Sdb PresentatieSdb Presentatie
Sdb Presentatiemenfey
218 views27 slides
OPS als enabler voor DevOps bij KvK - Robbert van der Houwen (KvK) & Conrad H... by
OPS als enabler voor DevOps bij KvK - Robbert van der Houwen (KvK) & Conrad H...OPS als enabler voor DevOps bij KvK - Robbert van der Houwen (KvK) & Conrad H...
OPS als enabler voor DevOps bij KvK - Robbert van der Houwen (KvK) & Conrad H...Sogeti Nederland B.V.
306 views24 slides
Asl bi sl metrics themasessie 2013 devops sogeti by
Asl bi sl metrics themasessie 2013   devops sogetiAsl bi sl metrics themasessie 2013   devops sogeti
Asl bi sl metrics themasessie 2013 devops sogetiHarold van Heeringen
651 views40 slides
Versiebeheer van database changes by
Versiebeheer van database changesVersiebeheer van database changes
Versiebeheer van database changesArjen van Vliet
1.1K views29 slides
PaaS: Platform as a Service by
PaaS: Platform as a ServicePaaS: Platform as a Service
PaaS: Platform as a ServiceEliasVanKerckvoorde
307 views13 slides

Similar to Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale(20)

Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009 by Dae Punt
Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009
Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009
Dae Punt341 views
Sdb Presentatie by menfey
Sdb PresentatieSdb Presentatie
Sdb Presentatie
menfey218 views
OPS als enabler voor DevOps bij KvK - Robbert van der Houwen (KvK) & Conrad H... by Sogeti Nederland B.V.
OPS als enabler voor DevOps bij KvK - Robbert van der Houwen (KvK) & Conrad H...OPS als enabler voor DevOps bij KvK - Robbert van der Houwen (KvK) & Conrad H...
OPS als enabler voor DevOps bij KvK - Robbert van der Houwen (KvK) & Conrad H...
Versiebeheer van database changes by Arjen van Vliet
Versiebeheer van database changesVersiebeheer van database changes
Versiebeheer van database changes
Arjen van Vliet1.1K views
Experience Story: Implementing Test automation in your organization by Derk-Jan de Grood
Experience Story: Implementing Test automation in your organizationExperience Story: Implementing Test automation in your organization
Experience Story: Implementing Test automation in your organization
Derk-Jan de Grood1.5K views
Presentatie BE-ODL by Vision
Presentatie BE-ODLPresentatie BE-ODL
Presentatie BE-ODL
Vision 204 views
Iip saa s - kennissessie exact - tu delft - deel 2 by Martijn Kriens
Iip saa s - kennissessie exact - tu delft - deel 2Iip saa s - kennissessie exact - tu delft - deel 2
Iip saa s - kennissessie exact - tu delft - deel 2
Martijn Kriens387 views
EMS Ehsal - production in a digital world 2013 by Hans Palmers
EMS Ehsal - production in a digital world 2013EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013
Hans Palmers327 views
Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014 by Luuk Danes
Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014
Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014
Luuk Danes1.3K views
Sessie 1 Communiceren vanuit de sneltrein Hanneke Mesu en Jesse Sprokholt by Epic UGM nl
Sessie 1 Communiceren vanuit de sneltrein Hanneke Mesu en Jesse SprokholtSessie 1 Communiceren vanuit de sneltrein Hanneke Mesu en Jesse Sprokholt
Sessie 1 Communiceren vanuit de sneltrein Hanneke Mesu en Jesse Sprokholt
Epic UGM nl574 views
Guru4 pro lean_software_development_v1.0 by Edward John Crain
Guru4 pro lean_software_development_v1.0Guru4 pro lean_software_development_v1.0
Guru4 pro lean_software_development_v1.0
Edward John Crain482 views
Agile software ontwikkeling met continuous delivery by Willem Meints
Agile software ontwikkeling met continuous deliveryAgile software ontwikkeling met continuous delivery
Agile software ontwikkeling met continuous delivery
Willem Meints164 views
Past het testvak nog in de nieuwe IT-wereld? by Rik Marselis
Past het testvak nog in de nieuwe IT-wereld?Past het testvak nog in de nieuwe IT-wereld?
Past het testvak nog in de nieuwe IT-wereld?
Rik Marselis283 views

More from Jeroen Reijn

Test-Driven Documentation for your REST(ful) service by
Test-Driven Documentation for your REST(ful) serviceTest-Driven Documentation for your REST(ful) service
Test-Driven Documentation for your REST(ful) serviceJeroen Reijn
1.2K views54 slides
Continuous Delivery in a content centric world by
Continuous Delivery in a content centric worldContinuous Delivery in a content centric world
Continuous Delivery in a content centric worldJeroen Reijn
483 views39 slides
Hippo CMS Integration Patterns by
Hippo CMS Integration PatternsHippo CMS Integration Patterns
Hippo CMS Integration PatternsJeroen Reijn
2.8K views19 slides
Real-time visitor analysis with Couchbase and Elastichsearch by
Real-time visitor analysis with Couchbase and ElastichsearchReal-time visitor analysis with Couchbase and Elastichsearch
Real-time visitor analysis with Couchbase and ElastichsearchJeroen Reijn
3.7K views46 slides
Shootout! Template engines for the JVM by
Shootout! Template engines for the JVMShootout! Template engines for the JVM
Shootout! Template engines for the JVMJeroen Reijn
80.2K views44 slides
Hippo GetTogether: The architecture behind Hippos relevance platform by
Hippo GetTogether: The architecture behind Hippos relevance platformHippo GetTogether: The architecture behind Hippos relevance platform
Hippo GetTogether: The architecture behind Hippos relevance platformJeroen Reijn
2.5K views53 slides

More from Jeroen Reijn(8)

Test-Driven Documentation for your REST(ful) service by Jeroen Reijn
Test-Driven Documentation for your REST(ful) serviceTest-Driven Documentation for your REST(ful) service
Test-Driven Documentation for your REST(ful) service
Jeroen Reijn1.2K views
Continuous Delivery in a content centric world by Jeroen Reijn
Continuous Delivery in a content centric worldContinuous Delivery in a content centric world
Continuous Delivery in a content centric world
Jeroen Reijn483 views
Hippo CMS Integration Patterns by Jeroen Reijn
Hippo CMS Integration PatternsHippo CMS Integration Patterns
Hippo CMS Integration Patterns
Jeroen Reijn2.8K views
Real-time visitor analysis with Couchbase and Elastichsearch by Jeroen Reijn
Real-time visitor analysis with Couchbase and ElastichsearchReal-time visitor analysis with Couchbase and Elastichsearch
Real-time visitor analysis with Couchbase and Elastichsearch
Jeroen Reijn3.7K views
Shootout! Template engines for the JVM by Jeroen Reijn
Shootout! Template engines for the JVMShootout! Template engines for the JVM
Shootout! Template engines for the JVM
Jeroen Reijn80.2K views
Hippo GetTogether: The architecture behind Hippos relevance platform by Jeroen Reijn
Hippo GetTogether: The architecture behind Hippos relevance platformHippo GetTogether: The architecture behind Hippos relevance platform
Hippo GetTogether: The architecture behind Hippos relevance platform
Jeroen Reijn2.5K views
Building a relevance platform with Couchbase and Elasticsearch by Jeroen Reijn
Building a relevance platform with Couchbase and ElasticsearchBuilding a relevance platform with Couchbase and Elasticsearch
Building a relevance platform with Couchbase and Elasticsearch
Jeroen Reijn2.5K views
Basic web application development with Apache Cocoon 2.1 by Jeroen Reijn
Basic web application development with  Apache Cocoon 2.1Basic web application development with  Apache Cocoon 2.1
Basic web application development with Apache Cocoon 2.1
Jeroen Reijn2.7K views

Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale