Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hochskalierendes Video Tracking

Webanalytics Software scheitert an einigen Faktoren: zu teuer, zu schwer, zu langsam. Hier stellen wir einen Ansatz vor, wie Videotracking funktionieren kann. Wann dürfen wir dies für Sie tun?

  • Login to see the comments

Hochskalierendes Video Tracking

  1. 1. © 2010 Mayflower GmbH Video-Tracking mit WebSockets, Node.js, Gearman und Redis Peter Voringer I 25. November 2010
  2. 2. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 2 Architektur - Überblick Redis MySQL Node.js Apache Daemon Gearman Worker Browser
  3. 3. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 3 I Key-Value Speicher I Hält Daten im Speicher, Option sie persistent wegzuspeichern I Ähnlich zu z.B. Memcache I Unterstützt Listen, Sets und sortierte Sets I Atomare Operation auch für diese Datentypen Architektur – Redis
  4. 4. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 4 I Server-Side JavaScript I Google V8 Engine I Event-Driven und Non-Blocking I ECMAScript 5 Architektur – node.js
  5. 5. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 5 I Job-Server I Flexibel I Schnell I Kein Single-Point-of-Failure Architektur – Gearman
  6. 6. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 6 Architektur – Gearman
  7. 7. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 7 Architektur – Gearman
  8. 8. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 8 Architektur – Teil 1 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  9. 9. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 9 I PHP Skript im Apache generiert einen Token I Schreibt den Token mit zusätzlichen Informationen (MovieID, UserID, …) in die Datenbank I Schreibt Token mit aktuellem Timestamp in Redis I Speichert Token in die Tokenliste in Redis I Liefert HTML/JavaScript mit Token und Adresse des node.js Servers an den Browser aus Architektur – Teil 1
  10. 10. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 10 Architektur – Teil 1 REDIS [TOKEN] [TIMESTAMP] TOKENS [TOKEN][TOKEN] [TOKEN] [TOKEN] [TOKEN]
  11. 11. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 11 Architektur – Teil 2 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  12. 12. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 12 I Library • baut WebSocket Verbindung auf oder • lädt IFrame vom node.js Server I Player sendet Events (pause, resume, …) an Library I Timer senden • Update Event, wenn das Video läuft (250ms) • Keep-Alive Event, wenn das Video nicht läuft (60s) I Library sendet Event • über WebSocket an node.js • per postMessage an das IFrame, welches es per AJAX an node.js schickt I Close-Event bei onUnload Architektur – Teil 2
  13. 13. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 13 Architektur – Teil 2 Node.jsBrowser HTTP Server WebSocket Server Player Timer WebSocket IFrame Library token id action position
  14. 14. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 14 Architektur – Teil 3 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  15. 15. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 15 I Node.js updated Timestamp des Tokens I Fügt Event der Event-Liste zum Token hinzu Architektur – Teil 3
  16. 16. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 16 Architektur – Teil 1 REDIS [TOKEN] [TIMESTAMP] TOKENS [TOKEN] [TOKEN] [TOKEN] [TOKEN] [TOKEN] [EVENT] [TOKEN] [EVENT] [EVENT] [EVENT]
  17. 17. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 17 Architektur – Teil 4 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  18. 18. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 18 I Daemon nimmt ersten Token aus der Token-Liste I Prüft, ob Timestamp des Tokens älter als 2 Minuten I Sofern der Token • älter ist, erstelle Gearman Job mit Token • jünger ist, füge Token an die Token-Liste hinten an I Gearman Server leitet Job an einen Worker weiter Architektur – Teil 4
  19. 19. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 19 Architektur – Teil 5 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  20. 20. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 20 I Worker holt und entfernt aus der Datenbank die Zusatzinformationen zum Token I Worker holt und entfernt Daten zum Token aus Redis I Berechnet Kennzahlen mittels der Events I Schreibt Kennzahlen kumuliert in die Datenbank Architektur – Teil 5
  21. 21. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 21 Architektur - Skalierbarkeit REDIS MySQL Node.js Apache Daemon Gearman Worker Node.js Node.js REDIS REDIS Worker Worker Apache Apache MySQL MySQL Daemon Daemon Gearman Gearman Browser
  22. 22. Titel der Präsentation I Mayflower GmbH I 29. November 2010 I 22 DEMO
  23. 23. Titel der Präsentation I Mayflower GmbH I 29. November 2010 I 23 FRAGEN ?
  24. 24. © 2010 Mayflower GmbH Peter Voringer peter.voringer@mayflower.de +49 931 35965 1122 Mayflower GmbH Pleichertorstr. 2 97070 Würzburg Kontakt Vielen Dank für Ihre Aufmerksamkeit!

×