Continuous Delivery @ FriendScout24 | Webinale 2012

33
Continuous Delivery „Warum und wie etablierte Technology- Stacks immer schneller werden müssen!“ Michael Maretzke Vice President Technology @ FriendScout24

Transcript of Continuous Delivery @ FriendScout24 | Webinale 2012

Page 1: Continuous Delivery @ FriendScout24 | Webinale 2012

Continuous Delivery

„Warum und wie etablierte Technology-Stacks immer schneller werden müssen!“

Michael Maretzke

Vice President Technology @ FriendScout24

Page 2: Continuous Delivery @ FriendScout24 | Webinale 2012

Michael Maretzke

FriendScout24

Vice President Technology

[email protected]

twitter: @mmaretzke

Page 3: Continuous Delivery @ FriendScout24 | Webinale 2012
Page 4: Continuous Delivery @ FriendScout24 | Webinale 2012

Lebenspartner

InternationalInternational

Noi ti innamoriamo!

Social DatingCasual Dating

Lebenspartner

Online Dating

Revival 2012 Start 2011Start 2011Seit 2000

Page 5: Continuous Delivery @ FriendScout24 | Webinale 2012
Page 6: Continuous Delivery @ FriendScout24 | Webinale 2012
Page 7: Continuous Delivery @ FriendScout24 | Webinale 2012
Page 8: Continuous Delivery @ FriendScout24 | Webinale 2012

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

Page 9: Continuous Delivery @ FriendScout24 | Webinale 2012

Kerngeschäft

BewährtesBusinessmodell

8 Jahre erprobte Architektur

Wachstumsfelder

Neue Businessmodelle

Leading Edge-Technolgies

Page 10: Continuous Delivery @ FriendScout24 | Webinale 2012
Page 11: Continuous Delivery @ FriendScout24 | Webinale 2012

Warum Warum ContinuousDelivery?

Page 12: Continuous Delivery @ FriendScout24 | Webinale 2012

Jez Humble, David Farley: „Continuous Delivery“

Addison-Wesley

ISBN 9780321601919

Seite 17

Page 13: Continuous Delivery @ FriendScout24 | Webinale 2012

Jez Humble, David Farley: „Continuous Delivery“

Addison-Wesley

ISBN 9780321601919

Seite 17

Automate almost everything!

Page 14: Continuous Delivery @ FriendScout24 | Webinale 2012

LEAN Product Development

Entrepreneurship is Management

Entrepreneurs are Everywhere

Validated Learning

Build-Measure-Learn

Innovation Accounting

Page 15: Continuous Delivery @ FriendScout24 | Webinale 2012

Warum LEAN Product Development?

Build

MeasureLearn

Page 16: Continuous Delivery @ FriendScout24 | Webinale 2012
Page 17: Continuous Delivery @ FriendScout24 | Webinale 2012

Continuous Delivery@ FriendScout24

== Continuous Live DeploymentContinuous Live Deployment

Ziel 2012Releases mit 2 Stunden Release

Delivery Time

Page 18: Continuous Delivery @ FriendScout24 | Webinale 2012

LowHangingHangingFruits

Page 19: Continuous Delivery @ FriendScout24 | Webinale 2012

BIG BLOCKS

Page 20: Continuous Delivery @ FriendScout24 | Webinale 2012

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!

Page 21: Continuous Delivery @ FriendScout24 | Webinale 2012

Challenges

Secret

– Junge Plattform mit wenig „Maintenance“-Schulden„Maintenance“-Schulden

– Dennoch Umbaumaßnahmen erforderlich

Page 22: Continuous Delivery @ FriendScout24 | Webinale 2012

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

Page 23: Continuous Delivery @ FriendScout24 | Webinale 2012

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

Page 24: Continuous Delivery @ FriendScout24 | Webinale 2012

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

Page 25: Continuous Delivery @ FriendScout24 | Webinale 2012

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

Page 26: Continuous Delivery @ FriendScout24 | Webinale 2012

Release Delivery Time

Page 27: Continuous Delivery @ FriendScout24 | Webinale 2012

Zeitdauer UAT-Läufe

Page 28: Continuous Delivery @ FriendScout24 | Webinale 2012

Unit Test Coverage

Page 29: Continuous Delivery @ FriendScout24 | Webinale 2012

Build-Pipeline

Page 30: Continuous Delivery @ FriendScout24 | Webinale 2012

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

Page 31: Continuous Delivery @ FriendScout24 | Webinale 2012

• 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

Page 32: Continuous Delivery @ FriendScout24 | Webinale 2012

Lessons? Learned!

• How do we do this?

Page 33: Continuous Delivery @ FriendScout24 | Webinale 2012

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 ☺