Treating Your Data Legacy. Björn Häuser, rebuy recommerce GmbH, Berlin



Ähnliche Dokumente
Adminer: Installationsanleitung

SJ OFFICE - Update 3.0

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Anforderungen an die HIS

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Microsoft Update Windows Update

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Updatehinweise für die Version forma 5.5.5

Personalisierte versenden

SAP Memory Tuning. Erfahrungsbericht Fritz Egger GmbH & Co OG. Datenbanken sind unsere Welt

PCC Outlook Integration Installationsleitfaden

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

GeoPilot (Android) die App

TYPO3 CMS 6.2 LTS. Die neue TYPO3- Version mit Langzeit- Support

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Sehr geehrte Faktor-IPS Anwender,

Elektronische Zustellung WKO / AustriaPro. Status Arbeitspakete PL.O.T

Kurzanleitung OOVS. Reseller Interface. Allgemein

iphone Push bei den VZ Netzwerken

Onlinesuche nach Rechnungen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

EMIS - Langzeitmessung

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Was meinen die Leute eigentlich mit: Grexit?

SEMINAR Modifikation für die Nutzung des Community Builders

Inventur / Jahresabschluss

Datenübernahme easyjob 3.0 zu easyjob 4.0

Internet online Update (Mozilla Firefox)

1. Einführung. 2. Weitere Konten anlegen

Version 0.3. Installation von MinGW und Eclipse CDT

Auslesen der Fahrtdaten wiederholen Schritt für Schritt erklärt (Funktion Abfrage zur Datensicherung erstellen )

Einrichtung eines -Kontos bei Mac OS X Mail Stand: 03/2011

Bedienungsanleitung für den Online-Shop

Zimmertypen. Zimmertypen anlegen

Java Enterprise Architekturen Willkommen in der Realität

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

Bekannte Fehler / Offene Punkte Online- Versorgungsschnittstelle

Internet online Update (Internet Explorer)

Jeunesse Autopiloten

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Switching. Übung 7 Spanning Tree. 7.1 Szenario

Newsletter verfassen und senden

Startseite, wenn Sie auf unseren Online-Shop gehen

Erfahrungen mit Hartz IV- Empfängern

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Synchronisations- Assistent

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Kurzanweisung für Google Analytics

Einrichten eines Microsoft Exchange-Account auf einem Android-System

Tutorial. Wie kann ich meinen Kontostand von meinen Tauschpartnern in. übernehmen? Zoe.works - Ihre neue Ladungsträgerverwaltung

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Der beste Plan für Office 365 Archivierung.

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Grundlagen der Informatik

Reporting Services und SharePoint 2010 Teil 1

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Kurzanleitung Verwendung von USB-Sticks

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Seco Online Store! Einkauf per Mausklick!

Apache HBase. A BigTable Column Store on top of Hadoop

Lehrveranstaltung Grundlagen von Datenbanken

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

DVD Version 9.1. Netzwerkinstallation + VDE-Admin-Tool.

1. Einführung. 2. Archivierung alter Datensätze

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

PRAXISMANAGEMENT FÜR DIE ZAHNARZTPRAXIS, MKG - CHIRURGIE UND KLINIK PRO X DENT MKG ZMK UMSTELLUNG DER INSTALLATION AUF NETZLAUFWERK

MSSQL Server Fragen GridVis

Keine Disketteneinreichung ab 1. Februar 2014

Einrichtung eines Zugangs mit einer HBCI-Chipkarte bei der Commerzbank

Anwendungsbeispiele Buchhaltung

HP Software Patch- und Version-Notification

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

BMW ConnectedDrive. connecteddrive. Freude am Fahren BMW CONNECTED DRIVE. NEUERUNGEN FÜR PERSONALISIERTE BMW CONNECTED DRIVE DIENSTE.

Customer and Project Services. Teilnehmerunterlagen Aktivitäten

Anleitung Union Homepage

Oracle APEX Installer

bilder.tibs.at Upload-Assistent

GeODin 7 Installationsanleitung

Die Wirtschaftskrise aus Sicht der Kinder

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Aufruf der Buchungssystems über die Homepage des TC-Bamberg

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Checkliste fu r Lieferanten

Beschreibung des MAP-Tools

Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik.

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

Technische Analyse der Zukunft

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Transkript:

Treating Your Data Legacy Björn Häuser, rebuy recommerce GmbH, Berlin

Wer steht überhaupt da vorne? PostgreSQL-Nutzer seit mehr als 5 Jahren Datenbanken seit mehr als 8 Jahren The right tool for the right job.

Agenda 1. Voraussetzungen / Situationsdarlegung 2. Was ist data Legacy? 3. Lösungsansatz 3

Was Sie nicht erwarten wird: Exzessives MySQL-Bashing Exzessives PHP-Bashing Vorgefertigte Lösungen 4

Was Sie erwarten können: Work-In-Progress Lösungsrezept Don ts 5

Was ist rebuy.de? Startup, schon über 5 Jahre am Markt aktiv Der einfache An- und Verkaufsshop im Internet Bücher, DVDs, Blurays, Konsolen, Tablets Vertragspartner ist rebuy recommerce GmbH Ca. 4.5 Millionen Kunden Ca. 100.000 abgewickelte Artikel am Tag 6

Voraussetzungen I Time-To-Market 7

Voraussetzungen II Anfänglich viele Komponenten vollständig selbst entwickelt Großer angebrochener Monolith Mit MySQL begonnen und gewachsen Hohe Investitionen um Unzulänglichkeiten auszugleichen Mit PHP begonnen und gewachsen 8

Aktuelle Baustellen I Umstellung zu einer Service-Orientieren-Architektur Message-Driven RabbitMQ Java PostgreSQL MySQL Probleme mit: Triggern Funktionen Komplexeren Abfragen 9

Beispiel: Prozess Stornierung Komponente A Komponente B Komponente C Datenbank 10

Was ist Data Legacy?

Falsche Daten Auftragstyp Mit Livegang einer neuer Komponente wurde der Typ des Auftrags nicht korrekt gesetzt Lange Zeit unbemerkt Daten werden benötigt Daten konnten wieder hergestellt werden Anhand der Teilaufträge kann der Typ des Auftrages errechnet werden 12

Falsches Datenbankschema Auftrag storniert? Stornierungsdatum gesetzt? Status ist storniert? Retouren vs. Stornierung Stornierungsdatum > Lieferdatum Mit einer einfachen Schemaänderung nicht reparierbar Umschreiben aller Komponenten notwendig Berücksichtigung der Sonderfälle auch in neuen Komponenten notwendig 13

Find your Abstraction!

Zielsetzung Neue Komponenten unabhängig von Alten entwickeln Abstraktion zwischen alter und neuer Datenhaltung Integration von Komponenten unabhängig von der Datenbank Unabhängig von: Tabellen Schemaversionen Datenbankgrenzen

Think big! Nicht nur Lösung des eigentlichen Problems: Data Legacy Sondern auch Vorbereitung für: Wechsel zu PostgreSQL Prozessunabhängigkeit 16

Warum PostgreSQL? Gute Erfahrungen (Als Anwender und Admin) Feature-Rich The better Open-Source? 17

Lösungsansatz I Über Replikation alle Datenbankänderungen verfolgen Aus einem INSERT/ UPDATE/DELETE- Event eine Business- Message erzeugen Events konsumieren Entwicklung einer Fire-Hose / Wormhole 18

Lösungsansatz II Eigener MySQL-Replikation-Client Dekodieren des binären Logs Erzeugen von Nachrichten für RabbitMQ: <tblname><insert UPDATE DELETE>Message Probleme: Richtige Handhabung der Logposition Performance 19

Lösungsansatz III Message-Broker Abstrahiert die generischen Messages Pro Business-Message ein Broker Let it crash! Java Spring Integration AMQP Probleme: Kompletter Rewrite der rebuy-messaging-library notwendig 20

Kunden anlegen I Replication CustomerInsertMessage RabbitMQ Allgemeine Message wird auf den Bus gelegt Diese Message entspricht dem Datenbankschema Bis zu diesem Zeitpunkt noch keine Abstraktion 21

Kunden anlegen II Broker CustomerCreated- Broker CustomerActivated- Broker Neue Komponente Einführung einer neuer Abstraktionsebene Neue Komponenten sind nicht mehr abhängig von konkreten Tabellenspalten, Schemas, Datenbanken 22

Aufgabenstellung Neue Komponente benötigt Informationen, dass ein Auftrag retourniert worden ist Problem: Storno- und Retourenprozess eng verzahnt Integrationsmöglichkeiten: 1. Direkt an den bestehenden Code 2. Cron-Job, der überprüft, ob es neue Retouren gibt 3. Message-Driven 23

Beispiel: Retoure Accounting Accounting Whitelabels Datenbank? TBD Frontends ERP ERP 24

Möglichkeit I Direkt an die bestehenden Komponenten dranhängen Vorteil: Geringe Time-To-Market (wenn Q&D) Nachteile: Alle Komponenten müssen angefasst werden Keine Abstraktion Tight-Coupling 25

Möglichkeit II Per Cron-Job alle neuen Retouren abfragen Vorteil: Kompromiss aus Abstraktion und Time-To-Market Nachteile: Kopplung an das Datenbankschema Berücksichtigung der Data-Legacy Fehleranfälligkeit 26

Möglichkeit III Message-Driven Vorteile: Vollständige Abstraktion Lose-Coupling Bestehende Komponenten müssen nicht angefasst werden Nachteile: Duplizierung der Daten notwendig 27

Möglichkeit III Paket kommt zurück Auftrag wird storniert UPDATE orders SET cancellation_date = NOW() WHERE id =...; Bleibt vollständig unberührt 28

Möglichkeit III Binarylog OrderUpdateMessage RabbitMQ { schema : rebuy, table : orders,! values : {! cancellation_date : {! }!! old : null, new : 2013-11-06 11:12:12! }, id_values : { id : 123456,...}}! 29

Möglichkeit III OrderReturnedBroker OrderOutboundBroker Warenausgang RabbitMQ OrderCreatedBroker TBD OrderClosedBroker 30

OrderCreatedMessage {! uuid : 3dfbd817-fd3f-4659-a4bd-ed771f0e0625,! customer_uuid :...,! }!...! 31

OrderClosedMessage {! uuid : 3dfbd817-fd3f-4659-a4bd-ed771f0e0625,! closed_stamp : 2013-10-06 07:47:49! }! 32

OrderReturnedMessage {! uuid : 3dfbd817-fd3f-4659-a4bd-ed771f0e0625,! returned_stamp : 2013-10-20 12:30:00! }! 33

Zusammenfassung Möglichkeit III Neue Komponente kann unabhängig entwickelt werden Vollständige Abstraktion der Data Legacy Storno- und Retourenprozess können unabhängig von neuen Komponenten getrennt und refaktorisiert werden Es muss nur sichergestellt werden, dass weiterhin eine OrderReturnedMessage erstellt wird 34

Erreichte Ziele Abstraktion zwischen neuen und alten Komponenten Möglichkeit geschaffen: Data Legacy Stück für Stück aufzuräumen Und damit auch alte Komponenten Großer Gewinn an Freiheit bei der Entwicklung von Komponenten Zentralisierung von Funktionalität 35

Facts Pro Tag: Zwischen 3 und 6 Millionen generische Messages Zwischen 800k und 1.2 Millionen Businessmessages Derzeit: Ca. 40 Broker Ca. 60 Listener Und RabbitMQ langweilt sich dabei immernoch. 36

Danke schön! Looking for a new Job? E-Mail your github profile to it-jobs@rebuy.de