Passer la navigation

Scale-up et scale-out

Présentation de la scalabilité des bases de données dans le cloud computing

Des données, des données partout : ce dont nous parlons quand nous parlons de scalabilité

La scalabilité dans le cloud computing est la possibilité d’augmenter et de réduire rapidement et facilement la taille ou la puissance d’une solution ou d’une ressource informatique. Bien que le terme « scalabilité » puisse faire référence à la capacité d’un système à gérer une quantité croissante d’opérations, lorsque nous réfléchissons à effectuer un scale-up ou scale-out, nous faisons souvent référence à de très nombreuses bases de données et données.

La scalabilité des bases de données est primordiale pour les développeurs d’applications modernes. Supposons qu’une nouvelle application soit en plein essor et que la demande passe d’une poignée d’utilisateurs à des millions d’utilisateurs dans le monde entier. L’une des fonctionnalités les plus importantes pour aider les développeurs d’applications à suivre la demande et réduire au minimum le temps d’arrêt est la possibilité d’effectuer une mise à l’échelle efficacement.

Dans cette conversation sur le scale-out et le scale-up, nous nous concentrons sur la façon dont la scalabilité nous aide à adapter et à gérer le volume considérable et la vaste gamme de données, en modifiant les volumes de données et en déplaçant les modèles de charge de travail, tous générés à partir du cloud, des appareils mobiles, des réseaux sociaux et des Big Data.

Scale-out ou scale-up

Au niveau le plus basique, la scalabilité des bases de données peut être divisée en deux types :

la mise à l’échelle verticale, ou effectuez un scale-up ou un scale-down, où vous augmentez ou réduisez la puissance de calcul ou les bases de données selon les besoins, soit en changeant les niveaux de performances, soit en utilisant des pools de bases de données élastiques pour vous ajuster automatiquement aux demandes de votre charge de travail.

Mise à l'échelle horizontale, ou mise à l'échelle vers l'extérieur ou vers l'intérieur, où vous ajoutez plus de bases de données ou divisez votre grande base de données en nœuds plus petits, en utilisant une approche de partitionnement des données appelée sharding, qui peut être gérée plus rapidement et plus facilement entre les serveurs.

Scale-up vertical

La mise à l’échelle verticale est utilisée lorsque vous devez réagir rapidement pour résoudre un problème de performances que vous ne pouvez pas résoudre à l’aide des techniques d’optimisation de base de données classiques, telles que les modifications de requête ou l’indexation. Le scale-up est utile pour gérer les pics dans vos charges de travail où le niveau de performance actuel ne peut pas satisfaire à toutes les demandes. Le scale-up vous permet d’ajouter des ressources pour gérer facilement les pics de charge de travail. Ensuite, lorsque les ressources ne sont plus nécessaires, vous pouvez effectuer un scale-down pour revenir à l’état d’origine et réaliser des économies sur les coûts du cloud.

Effectuez un scale-up dans les cas suivants :

  • Vous constatez que vos charges de travail atteignent une limite de performances telle que des limites d’UC ou d’E/S.
  • Vous devez réagir rapidement pour résoudre les problèmes de performances qui ne peuvent pas être résolus avec l’optimisation de base de données classique.
  • Vous avez besoin d’une solution qui vous permet de modifier les niveaux de service pour les adapter à l’évolution des exigences de latence.

Scale-out horizontal

Les développeurs d’applications commencent à envisager un scale-out ou une mise à l’échelle horizontale lorsqu’ils ne peuvent pas obtenir suffisamment de ressources pour leurs charges de travail, même sur les niveaux de performances les plus élevés. Avec la mise à l’échelle horizontale, les données sont divisées en plusieurs bases de données, ou partitions, sur plusieurs serveurs, et chaque partition peut bénéficier d’un scale-up de manière indépendante.

En quoi le partitionnement des données améliore-t-il la scalabilité ? Lorsque vous effectuez le scale-up d’une base de données unique en ajoutant des ressources telles que des machines virtuelles, une limite matérielle physique est atteinte à un moment donné. Étant donné que chaque partition de données est hébergée sur un serveur distinct, si vous divisez les données entre plusieurs partitions, vous pouvez effectuer le scale-out d’un système de façon presque illimitée.

Certains types de technologies de base de données, notamment les bases de données NoSQL ou les bases de données non relationnelles, sont développés avec des fonctionnalités uniques pour effectuer un scale-out horizontal des données via le partitionnement, ce qui leur permet de gérer des données volumineuses, non liées, indéterminées ou qui évoluent rapidement.

De plus, certains services de base de données relationnelles (SQL) qui offraient à l’origine des services de scale-up/scale-down commencent à offrir des options passionnantes pour égaler les avantages des bases de données non relationnelles en termes de scalabilité. Les services Hyperscale tels que Microsoft Azure SQL Database Hyperscale et Azure Database pour PostgreSQL Hyperscale permettent aux utilisateurs de mettre à l’échelle rapidement le stockage jusqu’à 100 To, offrent une architecture flexible et native du cloud (ce qui permet au stockage de croître en fonction des besoins) et activent des sauvegardes quasi instantanées et des restaurations de bases de données rapides en quelques minutes seulement.

Effectuez un scale-out dans les cas suivants :

  • Vous avez des applications géodistribuées dans lesquelles chaque application doit accéder à une partie des données de la région. Chaque application accède uniquement aux partitions associées à cette région, sans affecter les autres partitions.
  • Vous avez un scénario de partitionnement global, tel que l’équilibrage de charge, où vous disposez d’un grand nombre de clients géodistribués qui insèrent des données dans leurs propres partitions dédiées.
  • Vous avez atteint vos exigences maximales en matière de performances, même dans les niveaux de performance les plus élevés de votre service, ou vos données ne peuvent pas tenir dans une seule base de données.

Mise à l’échelle automatique

La mise à l’échelle automatique est le processus de mise en correspondance automatique et dynamique des ressources pour répondre aux besoins de performances d’un système. Lorsque le volume de travail croît, les applications peuvent avoir besoin de ressources supplémentaires pour maintenir les niveaux de performances nécessaires ou répondre à la demande croissante. Si la demande ralentit et que les ressources supplémentaires ne sont plus nécessaires, vous pouvez réduire les dépenses cloud en faisant en sorte qu’un service automatique soit mis en place pour libérer des ressources inutilisées.

La mise à l’échelle automatique tire parti de l’élasticité des environnements hébergés dans le cloud. Elle allège les contraintes de gestion en réduisant le besoin pour les opérateurs système de prendre en permanence les décisions relatives à l’ajout ou à la suppression de ressources ou à la vérification des performances du système.

Bien qu’il existe deux façons de mettre à l’échelle verticalement ou horizontalement des applications, il est moins courant d’automatiser la mise à l’échelle verticale, car une opération de scale-up requiert souvent que le système soit temporairement indisponible pendant son redéploiement.

La mise à l’échelle automatique est plus courante lors d’une mise à l’échelle horizontale, car effectuer un scale-out ou scale-in signifie tout simplement ajouter ou supprimer des instances d’une ressource afin que votre application continue de s’exécuter sans interruption lorsque de nouvelles ressources sont provisionnées. Si la demande baisse, les ressources peuvent être arrêtées sans interruption et libérées.

De nombreux fournisseurs de systèmes basés sur le cloud, notamment Microsoft Azure, prennent en charge la mise à l’échelle horizontale automatique.

  • Une base de données est une collection d’informations liées qui sont stockées et organisées de façon à faciliter leur gestion et leur accès. Alors que de nouveaux types de données et de nouvelles données sont générés à un rythme vertigineux, il devient difficile de garder ces données organisées, accessibles et sécurisées. Les systèmes de gestion de base de données (SGBD), qui incluent une couche d’outils de gestion, sont souvent utilisés pour gérer de gros volumes de données.

    De nouvelles technologies et de nouveaux types de base de données émergent constamment pour s’adapter au volume considérable et à la grande variété de données générées à partir du cloud, des médias mobiles, des réseaux sociaux et des Big Data.

    En savoir plus sur les bases de données
  • Les bases de données NoSQL, souvent appelées « non relationnelles » ou « pas uniquement » SQL, sont un ensemble diversifié de technologies de base de données qui gèrent le stockage et la récupération des données différemment d’une base de données relationnelle (SQL) traditionnelle.

    Les bases de données NoSQL n’ont pas besoin d’un schéma prédéfini et peuvent utiliser plusieurs modèles de données, ce qui les rend extrêmement efficaces pour gérer de gros volumes de données non structurées et effectuer la mise à l’échelle des projets de base de données Big Data.

    En savoir plus sur les bases de données NoSQL
  • PostgreSQL est une base de données open source robuste qui fonctionne avec des requêtes relationnelles et non relationnelles, connue pour sa fiabilité et l’intégrité des données. PostgreSQL est largement utilisé dans des domaines tels que les services financiers, l’industrie, les systèmes d’information géographiques et les technologies web. Les développeurs créent des applications avec PostgreSQL, tandis que les administrateurs l’utilisent pour protéger leurs données.

    En savoir plus sur PostgreSQL
  • La mise en cache est une technique courante qu’utilisent les développeurs et les professionnels de l’informatique pour améliorer les performances et la scalabilité d’un système. La mise en cache consiste à copier temporairement des données fréquemment sollicitées dans un stockage rapide situé près de l’application. Si cet espace de stockage rapide des données se trouve plus près de l’application que la source d’origine, la mise en cache peut améliorer sensiblement les temps de réponse des applications clientes en fournissant les données plus rapidement. Les développeurs conçoivent souvent des applications de façon à ce qu’elles mettent en cache les données traitées et redéfinissent ensuite le cache pour traiter les demandes plus rapidement que dans les requêtes de base de données standard.

    En savoir plus sur la mise en cache
  • Le partitionnement de données est un type de partitionnement de données horizontal qui vous permet de diviser une grande base de données en petites bases de données afin de faciliter et d’accélérer leur gestion sur les différents serveurs.

    En savoir plus sur le partitionnement de base de données
  • Une plateforme en tant que service, ou PaaS, est un service d’un fournisseur de cloud qui offre un environnement à la demande pour le développement, le test, la livraison et la gestion d’applications. La plateforme en tant que service permet aux développeurs de créer des applications web ou mobiles plus facilement et plus rapidement, sans avoir se préoccuper de la configuration ou de la gestion de l’infrastructure sous-jacente des serveurs, du stockage, du réseau et des bases de données dont ils ont besoin en tant que développeurs.

    En savoir plus sur PaaS

Explorez la scalabilité du cloud avec Azure

Découvrez une approche complète du scale-up et du scale-in, qui correspond à votre propre scénario dans les environnements locaux, multiclouds et de périphérie. La famille de services de base de données Azure propose plusieurs options de bases de données relationnelles, NoSQL et en mémoire complètement managées, couvrant des moteurs propriétaires et open source, pour répondre aux besoins des développeurs d’applications modernes.

Gagnez du temps et de l’argent avec la gestion automatisée de l’infrastructure, notamment les solutions d’automatisation pour la scalabilité, la disponibilité et la sécurité.

Produits et services associés

Azure SQL

Famille de bases de données cloud SQL offrant des options flexibles pour la migration, la modernisation et le développement d’applications

Azure Cosmos DB

Base de données NoSQL rapide avec API ouvertes, adaptée à toutes les échelles

Azure PostgreSQL

PostgreSQL intelligent, scalable et complètement managé

Azure SQL Database

Base de données SQL gérée et intelligente dans le cloud

Azure SQL Managed Instance

Instance SQL gérée et toujours à jour dans le cloud

SQL Server sur les machines virtuelles

Migrez les charges de travail SQL Server dans le cloud au moindre coût TCO

Base de données Azure pour MySQL

Base de données MySQL complètement managée et évolutive

Azure Maria DB

Service de base de données MariaDB gérée pour les développeurs d’applications

Cache Azure pour Redis

Accélérez les applications avec une mise en cache des données à débit élevé et à latence faible

Effectuez une mise à l’échelle sans limites avec les bases de données gérées

Concentrez-vous sur la création d’applications et simplifiez votre travail avec vos bases de données gérées par Microsoft Azure

Si vous êtes prêt, configurons votre compte gratuit

Pouvons-nous vous aider ?