Retour au blog
Ingénierie

Des systèmes évolutifs à forte charge pour le traitement du Big Data — Blog Robosoft

Traiter des données à grande échelle est un autre problème d’ingénierie que les traiter correctement : il faut les deux.

Traitement par lots ou en flux

Le traitement par lots gère de gros volumes selon un calendrier et il est plus simple à raisonner ; le traitement en flux traite les données à leur arrivée et devient nécessaire quand les décisions doivent être prises presque en temps réel. La plupart des systèmes finissent par avoir besoin des deux pour différentes parties du pipeline.

Répartir le travail

Des frameworks comme Spark ou des architectures distribuées à base de files permettent de faire évoluer le traitement horizontalement : on ajoute de la capacité en ajoutant des machines, plutôt qu’en espérant qu’un seul serveur devienne plus rapide.

Là où ces systèmes échouent vraiment

Pas sur le chemin idéal, mais aux marges : pannes partielles, données qui arrivent dans le désordre et retraitement après une panne. Concevoir pour ces cas dès le départ, c’est ce qui distingue un système qui marche en test d’un système qui survit en production.

Les pièges courants

Les systèmes construits et testés uniquement sur des données d’exemple propres et bien ordonnées ont tendance à casser dès leur première rencontre avec des données de production : événements en double, arrivées dans le désordre, pannes partielles au milieu d’un lot. Intégrer l’idempotence et le retraitement dès le départ coûte peu au début et évite une adaptation douloureuse plus tard.

Choisir la bonne couche de stockage

Une base de données relationnelle est généralement le bon choix par défaut, jusqu’à ce qu’un schéma d’accès précis prouve le contraire : ne vous tournez pas vers un stockage spécialisé simplement parce que le volume paraît important. Les séries temporelles, la recherche plein texte et les relations en graphe ont chacune des moteurs de stockage dédiés, mais en adopter un avant d’avoir confirmé que vous en avez vraiment besoin ne fait qu’ajouter de la complexité d’exploitation, sans aucun bénéfice.

Vous traitez des données à une échelle qui commence à faire mal ?

Nous concevons des pipelines pensés pour les cas limites, pas seulement pour la démo.

Contact