Le Big Data, on vous dit tout!

#1

Gérer de grosses quantités de données n’est pas une chose facile, et requiert de maîtriser les bons outils. Ici, nous vous dévoilons nos outils et la raison de ces choix techniques. :gear:

La solution Cassandra

Nous avons actuellement 6 noeuds Cassandra (base de données Big data) qui fonctionnent ensemble pour gérer nos données. Plus précisément, l’apache Cassandra est un outil de gestion de base de données de type NoSQL (Not only SQL) permettant le stockage et le traitement de très importants volumes de data, cette puissante solution open source est adoptée par un nombre croissant d’entreprises, dont Moneway.

Pourquoi cette solution ? :thinking:

Cette solution est parfaite pour traiter des volumes exponentiels de données. Or, nos flux de données ne cessent de croître, à chaque fois que l’un de nos utilisateurs utilise sa carte, nous recevons plusieurs événements. Grâce à Cassandra, cette quantité de données devenant de plus en plus conséquente est aisément gérée et procédée par nos services. Lorsque la charge des données qui transitent est plus importante, il nous est possible de lancer de nouvelles instances de Cassandra (scale) et ainsi de permettre à notre serveur de s’adapter aux évolutions de Moneway.

Cependant, s’il y a données, il se doit d’y avoir protection de celles-ci. Il est essentiel d’en faire une priorité.

Protection des données

La solution Cassandra nous permet d’allier rapidité de traitement et sécurité. L’idée principale est de répliquer les données sur plusieurs noeuds (instances de Cassandra) afin d’éviter une quelconque perte de ces dernières si l’un des noeuds ou le serveur venait à tomber. De plus, un tel système nous permet d’avoir une API accessible en permanence, même dans un environnement dégradé.

Une expérience utilisateur renforcée

Cassandra nous offre une vision complète pour chaque utilisateur, ce qui nous permet de répondre à des besoins d’immédiateté. Or comme nous l’avons déjà évoqué, les utilisateurs se montrent de plus en plus impatients (tout à leur honneur :slightly_smiling_face:) et font de plus en plus de demandes personnalisées.

Le traitement de nos données.

Afin d’être en mesure de tenir la charge, nous utilisons également un système de file (queue) du nom de Kafka permettant à nos services de mettre les éléments de notre flux en liste d’attente, et de les traiter dès lors que ceux-ci sont disponibles. Lorsqu’un élément est sorti de la file pour être procédé par un service et qu’une erreur survient, l’élément est automatiquement replacé dans la file, ce qui nous assure que l’on ne perdra aucune donnée.

Focus

Beaucoup ont en tête que Kafka est un concurrent de RabbitMQ, et que c’est « un bus de messages » ou « message broker ». Effectivement, c’était bien cette intention : un broker très performant (plusieurs millions de messages par seconde) et très résilient (distribué avec réplication). Cependant, ces contraintes ont sculpté Kafka d’une façon tout à fait unique pour un broker. Kafka est plus simple et plus versatile.

:bulb: Le saviez-vous ? La queue Kafka a été créée chez LinkedIn et est codée en Scala et en Java !