Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Duct-tape streaming at scale

Duct-tape streaming at scale

En cinq ans, a Criteo, le volume d'événements métier – transmis, traités et importés dans un dépôt central – est passé de “un peu” à “hein, quoi, tout ça ?” (6 millions de messages/seconde dans 7 datacenters, le tout déversé dans l’un des plus gros clusters Hadoop d’Europe).

C’est pour nous l’occasion de décrire les choix successifs et l’évolution organique d’un système d’import de logs métier, allant d’une instance de MySQL à une tripotée de clusters Kafka et un peu de Mesos, en passant par du rsyslog et beaucoup de Bash.

S’occuper d’un système distribué un tantinet sollicité, c’est aussi mille raisons d'être appelé en pleine nuit, de se heurter à des limitations théoriques ou physiques, et de développer un pessimisme serein.

Toutes choses qui seront narrées à deux voix par l’architecte/codeur/barbu des origines et l’un des membres de l’équipe qui a pris la suite.

Session donnée à Devoxx 2016 avec Serge Danzanvilliers

Yann Schwartz

April 25, 2016
Tweet

More Decks by Yann Schwartz

Other Decks in Programming

Transcript

  1. Systèmes distribués, scotch,
    bouts de ficelle et doigts
    croisés
    Une histoire du streaming à Criteo

    View Slide

  2. Dramatis Personae
    Serge Danzanvilliers
    @alolcool
    Yann Schwartz
    @abolibibelot

    View Slide

  3. 2009
    On a des données

    View Slide

  4. View Slide

  5. 2010
    On a beaucoup de données

    View Slide

  6. View Slide

  7. 2012
    Au fait c’est quoi nos données

    View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. 2013
    De Haddock à Kafka

    View Slide

  12. C’est pas mal kafka

    Cluster

    Failover

    Réplication

    Binaire

    Pull vs. push

    Streaming ?

    View Slide

  13. View Slide

  14. View Slide

  15. 2015
    Ce coup-ci on y va

    View Slide

  16. C’est pas de ma faute

    Le syndrome du deuxième système

    “Good enough”

    Chemin de transition

    View Slide

  17. (Interlude)
    L’affaire du quart d’heure manquant

    View Slide

  18. View Slide

  19. View Slide

  20. La roue de l’infortune

    View Slide

  21. May you live in interesting times

    Jumeaux maléfiques

    Le monde selon ARP

    Bob the Builder

    View Slide

  22. Théorie et pratique :
    En théorie c’est la même chose

    View Slide

  23. Buffers, buffers everywhere

    Caches, buffers, batches, queues : le streaming est une illusion

    Unbounded queues : neverending tears

    Mieux vaut perdre des données que perdre un système

    View Slide

  24. Savoir être médiocre

    Si tout est critique, rien ne l’est

    Caveat Emptor (le client doit gérer)

    On ne dit pas “perte de données”, mais “échantillonnage”

    View Slide

  25. TL;DR

    La complexité est une fonction strictement
    croissante

    Choisir explicitement son niveau d’exigence

    View Slide