Scalabilité : l’enjeu du passage à l’échelle des projets data

La majorité des entreprises considèrent les projets liés à l’intégration des données et au big data comme une priorité. Les décisions futures seront « data-driven » ou ne seront pas. Les données se démultipliant de façon constante, penser à la scalabilité dès l’origine d’un projet de traitement des données est essentiel. En quoi consiste ce passage à l’échelle ? Comment assurer au mieux cette scalabilité ? Vous trouverez dans cet article quelques éléments pour répondre à ces questions essentielles pour tout dirigeant ou chef d’entreprise.

kid-scale-sky-1300px

Le challenge de la scalabilité

Scalability, scalabilité, passage à l’échelle, ces mots représentent un même concept : la possibilité pour les systèmes de traitement de données d’augmenter leurs capacités de traitement au fur et à mesure que les données augmentent.

La problématique est connue de beaucoup : la mégavague des données est en train de nous submerger et deux alternatives se présentent : arriver à la surfer ou boire la tasse. L’International Data Corporation estime que le volume des données au niveau mondial atteindra 175 zetabytes en 2025. Prenez 175 bits et rajoutez 21 fois le chiffre zéro et vous parviendrez à l’ordre de grandeur dont on parle. Les visuels se raccrocheront à ce chiffre : 175 000 000 000 000 000 000 000 de bits de données. Si au milieu de ces données vous devez localiser les éléments pertinents et les traiter de manière adéquate, il est dans votre intérêt de concevoir un système performant dès aujourd’hui.

L’ère du big data se caractérise par les 3v :

  • Volume des données ;
  • Vélocité des données ;
  • Variété des données.

La scalabilité correspond donc à la capacité des systèmes à évoluer afin de traiter des données de nature différente en grande quantité et de manière toujours plus rapide. Si le temps de latence prend des proportions trop importantes et que certains clients internes ou externes se plaignent de la lenteur de vos systèmes, il est plus que temps de se pencher sur la question de la scalabilité.

Pour la petite histoire, les amateurs de cryptomonnaies connaissent bien la problématique. En effet, la blockchain de bitcoin par exemple présente un défaut de conception au niveau de la scalabilité ce qui limite la rapidité des transactions. Cette vulnérabilité a motivé la création de beaucoup d’autres cryptomonnaies, les utilisateurs n’étant pas satisfaits par le manque de souplesse de la blockchain du bitcoin.

Principes à respecter pour assurer la scalabilité

Au moment de configurer une solution de traitement de données, certains principes de base permettent de garantir la scalabilité.

  1. Tenir compte du fait qu’il est impossible d’augmenter les ressources allouées aux données (budget, équipe, hardware, etc.) au même rythme que le volume de données augmente. Cela reviendrait à comparer le taux de reproduction d’un être humain à celui d’une souris. Le système doit donc anticiper la courbe exponentielle des données ;
  2. Définir une stratégie de gouvernance des données claire et connue au sein de l’entreprise. Il s’agit d’une étape déterminante pour assurer le passage à l’échelle et atteindre les objectifs fixés ;
  3. Simplifier au maximum la solution utilisée pour permettre la scalabilité. Trop souvent en entreprise, les systèmes se sont superposés et les interfaces sont multiples, parfois redondantes.
  4. Accepter qu’aucun système n’est infaillible. Il importe de mettre en place des portes de sortie mais également des systèmes d’alerte permettant de détecter les anomalies en temps réel. La phase de test ne doit pas être négligée mais présente certaines limites dont il faut prendre conscience ;
  5. Essayer d’automatiser un maximum de fonctions dès le début afin de permettre une gestion plus efficace par la suite ;
  6. Ne pas perdre de vue l’objectif final : fournir la bonne information aux personnes adéquates en temps voulu. C’est la raison d’être de l’analyse des données.
big-tree-roots-1300px

Comment parvenir à un système scalable ?

On distingue généralement deux façons d’assurer la scalabilité d’un système :

  • Scaling up soit la mise à l’échelle verticale. Cette approche implique d’augmenter les performances du hardware en ajoutant des ressources supplémentaires (CPUs, mémoire ou encore capacité de stockage) au fur et à mesure que le système est engorgé. Le principe sous-jacent consiste dans l'ajout de composants toujours plus performants. L’approche verticale montre rapidement ses limites lorsque la quantité de données explose et engendre un coût élevé. Cette approche est peu plébiscitée de nos jours, du moins pas en tant que telle ;
  • Scaling out soit la mise à l’échelle horizontale. La mise à l’échelle est réalisée en ajoutant plus de machines. On augmente la capacité de traitement en augmentant le nombre de serveurs. La charge de travail est donc mieux répartie entre les machines.

Si vous souhaitez transporter des marchandises d’un point A à un point B, vous pouvez changer votre modèle de camion et acheter un véhicule toujours plus grand pour augmenter votre capacité de transport. Cette approche sera intéressante si votre entreprise croit un peu mais aura plusieurs inconvénients en cas de succès fulgurant. À un moment donné, la taille de votre camion l'empêchera de circuler correctement sur les routes ce qui engendrera une perte d’efficacité. D’autre part si votre camion tombe en panne, c’est l’ensemble des marchandises qui n’arrivera pas à bon port. Enfin, si la demande décline subitement, votre semi-remorque gigantesque continue de transporter une charge minime et des coûts superflus en résultent.

En revanche, si vous sélectionnez un véhicule de taille correcte, simple et robuste, il vous suffit d’acheter plus de camions au fur et à mesure que vos commandes augmenteront. Si l’un des camions tombe en panne, vous pourrez utiliser un autre camion, voire récupérer des pièces. Si la demande décroit, il vous suffit de revendre un camion ou de le louer. Si un camion est bloqué, d’autres camions peuvent acheminer la marchandise.

En mettant à l’échelle horizontalement, vous assurez à vos systèmes une plus grande agilité et garantissez la flexibilité nécessaire pour adapter le traitement de vos données en fonction de circonstances particulières ou impromptues.

Ryax et la scalabilité

La plateforme de data engineering créée par Ryax aide les équipes data à déployer, exécuter et mettre à l’échelle leurs modèles de production. Conscients de l’enjeu, la scalabilité a été au cœur de notre démarche dès la création de notre plateforme. Nous veillons à vous donner la possibilité de traiter un flux de données grandissant avec un temps de latence minimal. Si vous voulez en savoir plus sur les caractéristiques de notre logiciel et sur ses performances, n'hésitez pas à prendre contact avec nos équipes. Nous chercherons ensemble la solution qui convient à votre entreprise pour faire face au défi de la scalabilité.

La Ryax Team.