Post on 25-Jan-2017
Continuous Delivery
„Warum und wie etablierte Technology-Stacks immer schneller werden müssen!“
Michael Maretzke
Vice President Technology @ FriendScout24
Michael Maretzke
FriendScout24
Vice President Technology
michael.maretzke@friendscout24.de
twitter: @mmaretzke
Lebenspartner
InternationalInternational
Noi ti innamoriamo!
Social DatingCasual Dating
Lebenspartner
Online Dating
Revival 2012 Start 2011Start 2011Seit 2000
ProductManager
ProductOwner
UX Designer
SC
RU
MK
AN
BA
N
AGILE
Lead Engineer
SW Engineer SW Engineer
SW Engineer SW Engineer
QA Manager
Scrum Master
SC
RU
MK
AN
BA
N
Kerngeschäft
BewährtesBusinessmodell
8 Jahre erprobte Architektur
Wachstumsfelder
Neue Businessmodelle
Leading Edge-Technolgies
Warum Warum ContinuousDelivery?
Jez Humble, David Farley: „Continuous Delivery“
Addison-Wesley
ISBN 9780321601919
Seite 17
Jez Humble, David Farley: „Continuous Delivery“
Addison-Wesley
ISBN 9780321601919
Seite 17
Automate almost everything!
LEAN Product Development
Entrepreneurship is Management
Entrepreneurs are Everywhere
Validated Learning
Build-Measure-Learn
Innovation Accounting
Warum LEAN Product Development?
Build
MeasureLearn
Continuous Delivery@ FriendScout24
== Continuous Live DeploymentContinuous Live Deployment
Ziel 2012Releases mit 2 Stunden Release
Delivery Time
LowHangingHangingFruits
BIG BLOCKS
Challenges
Dating Plattform
– Releases benötigen Restart
– Abhängigkeiten zwischen Backend und – Abhängigkeiten zwischen Backend und Frontend
– Viele, viele Artefakte und Abhängigkeiten
– Nicht alle relevanten Elemente sind redundant ausgelegt
– Sehr großer Aufwand!
Challenges
Secret
– Junge Plattform mit wenig „Maintenance“-Schulden„Maintenance“-Schulden
– Dennoch Umbaumaßnahmen erforderlich
Continuous Delivery – Wie?
@FRS24Brain Storming
Assessmentmit externen Beratern
• SCRUM• 3 Wochen Release CycleBeratern
1) …2) …3) …4) …5) …6) …7) …8) …9) …10) …
• 3 Wochen Release Cycle• Dedizierte 2 Tage QA-Zeit• Kaum Unit-Tests• Downtime pro Release ca.
5 min• 350.000 LOC• Viele Abhängigkeiten
zwischen ModulenOktober 2011
Continuous Delivery – Wie?1) …2) …3) …4) …5) …6) …7) …8) …9) …10) …
• 2 Wochen Release Cycle
Setup CLD-Team
10) …
1) Optimierung der UAT-Läufe2) Überarbeitung der Build-
Pipeline3) Optimierung des Session-
Handlings4) Stärkerer Fokus auf Unit-Tests5) Code aufräumen
November/Dezember 2011
Continuous Delivery – Wie?CLD-Team 1) …
2) …3) …4) …5) …6) …7) …8) …9) …10) …
• Kanban• 2 Daily Release Cycle• Dedizierte 5 Stunden QA-Zeit
Externe 10) …
• Dedizierte 5 Stunden QA-Zeit• Downtime pro Release ca. 5 min
1) Überarbeitung der Build-Pipeline
2) Optimierung des Session-Handlings
März 2012
Externe Berater
Continuous Delivery – Wie?CLD-Team 1) …
2) …3) …4) …5) …6) …7) …8) …9) …10) …
• Kanban• Daily Release Cycle• Dedizierte 3 Stunden QA-Zeit
Externe 10) …
• Dedizierte 3 Stunden QA-Zeit• Downtime pro Release ca. 5 min
1) Aufbrechen der Abhängigkeiten im Back-End
2) Back-End Renovierungskonzept
Juni 2012
Externe Berater
Release Delivery Time
Zeitdauer UAT-Läufe
Unit Test Coverage
Build-Pipeline
Next?1) …2) …3) …4) …5) …6) …7) …8) …9) …10) …
• Umbau Architektur • Aufbrechen Monolith• Isolierung von Services im Backend
• Virtualisierung• Virtualisierung• Configuration Management
• Konfigurationen• Umgebungen
• Prozesse optimieren• Definition of Done / Ready• Builds brechen
• CI Jenkins• Build-Pipeline Jenkins• Repository SVN � GIT• Build-Tools ANT, MAVEN,
rake, scripts• Agile tool
JIRA+GreenhopperJIRA+Greenhopper• Monitoring Nagios, Gomez• Code Watch Sonar
Lessons? Learned!
• How do we do this?
Q&ABilder …Bilder …• http://www.flickr.com/photos/rudiriet/109718350/
• http://www.flickr.com/photos/dawnmanser/3532598208/
• http://www.flickr.com/photos/winkelbohrer/5771255419/
• http://www.flickr.com/photos/fischler/6181295838/
• http://www.flickr.com/photos/baklava/5086093546/
• http://www.flickr.com/photos/evilerin/3417479220/
• http://www.flickr.com/photos/intellicaviar/6249849679/
• Selbst ☺