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 2012Start 2011Start 2011Seit 2000
Product
Manager
Product
Owner
UX Designer
SCRUM
KANBAN
AGILE
Lead Engineer
SW Engineer SW Engineer
SW Engineer SW Engineer
QA Manager
Scrum Master
SCRUM
KANBAN
Kerngeschäft
Bewährtes
Businessmodell
8 Jahre erprobte Architektur
Wachstumsfelder
Neue
Businessmodelle
Leading Edge-Technolgies
WarumWarum
Continuous
Delivery?
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 2012
Releases mit 2 Stunden Release
Delivery Time
Low
HangingHanging
Fruits
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?
@FRS24
Brain Storming
Assessment
mit externen
Beratern
• SCRUM
• 3 Wochen Release Cycle
Beratern
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 Modulen
Oktober 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äufe
2) Überarbeitung der Build-
Pipeline
3) Optimierung des Session-
Handlings
4) Stärkerer Fokus auf Unit-Tests
5) 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&A
Bilder …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 ☺

Continuous Delivery @ FriendScout24 | Webinale 2012

  • 1.
    Continuous Delivery „Warum undwie etablierte Technology- Stacks immer schneller werden müssen!“ Michael Maretzke Vice President Technology @ FriendScout24
  • 2.
    Michael Maretzke FriendScout24 Vice PresidentTechnology michael.maretzke@friendscout24.de twitter: @mmaretzke
  • 4.
    Lebenspartner InternationalInternational Noi ti innamoriamo! SocialDatingCasual Dating Lebenspartner Online Dating Revival 2012Start 2011Start 2011Seit 2000
  • 8.
    Product Manager Product Owner UX Designer SCRUM KANBAN AGILE Lead Engineer SWEngineer SW Engineer SW Engineer SW Engineer QA Manager Scrum Master SCRUM KANBAN
  • 9.
    Kerngeschäft Bewährtes Businessmodell 8 Jahre erprobteArchitektur Wachstumsfelder Neue Businessmodelle Leading Edge-Technolgies
  • 11.
  • 12.
    Jez Humble, DavidFarley: „Continuous Delivery“ Addison-Wesley ISBN 9780321601919 Seite 17
  • 13.
    Jez Humble, DavidFarley: „Continuous Delivery“ Addison-Wesley ISBN 9780321601919 Seite 17 Automate almost everything!
  • 14.
    LEAN Product Development Entrepreneurshipis Management Entrepreneurs are Everywhere Validated Learning Build-Measure-Learn Innovation Accounting
  • 15.
    Warum LEAN ProductDevelopment? Build MeasureLearn
  • 17.
    Continuous Delivery @ FriendScout24 == ContinuousLive DeploymentContinuous Live Deployment Ziel 2012 Releases mit 2 Stunden Release Delivery Time
  • 18.
  • 19.
  • 20.
    Challenges Dating Plattform – Releasesbenö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!
  • 21.
    Challenges Secret – Junge Plattformmit wenig „Maintenance“-Schulden„Maintenance“-Schulden – Dennoch Umbaumaßnahmen erforderlich
  • 22.
    Continuous Delivery –Wie? @FRS24 Brain Storming Assessment mit externen Beratern • SCRUM • 3 Wochen Release Cycle Beratern 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 Modulen Oktober 2011
  • 23.
    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äufe 2) Überarbeitung der Build- Pipeline 3) Optimierung des Session- Handlings 4) Stärkerer Fokus auf Unit-Tests 5) Code aufräumen November/Dezember 2011
  • 24.
    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
  • 25.
    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
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    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
  • 31.
    • 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
  • 32.
  • 33.
    Q&A Bilder …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 ☺