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 nuage, des appareils mobiles, des réseaux sociaux et des Big Data.
Scale-out et 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 scale-up/scale-down, où vous augmentez ou diminuez la puissance de calcul ou les bases de données en fonction des besoins, soit en modifiant les niveaux de performances, soit en utilisant des pools de bases de données élastiques pour ajuster automatiquement les exigences de vos charges de travail.
La mise à l’échelle horizontale, ou scale-in/scale-out, où vous ajoutez des bases de données ou divisez votre base de données volumineuse en nœuds plus petits, à l’aide d’une approche de partitionnement des données appelée partitionnement, qui peuvent être gérés plus rapidement et plus facilement sur plusieurs 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 nuage.
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 NoSQLou 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 de base de données, 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 nuage (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 nuage 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 nuage. 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 nuage, notamment Microsoft Azure, prennent en charge la mise à l’échelle horizontale automatique.
Questions fréquentes
-
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 nuage, des médias mobiles, des réseaux sociaux et des Big Data.
-
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.
-
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.
-
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.
-
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.
-
Une plateforme en tant que service, ou PaaS, est un service d’un fournisseur de nuage 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.
Ressources
Explorez la scalabilité du nuage 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 nuage 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
Base de données PostgreSQL intelligente, scalable et complètement managée.
Azure SQL Database
Base de données SQL gérée et intelligente dans le nuage.
Azure SQL Managed Instance
Instance SQL gérée et toujours à jour dans le nuage.
SQL Server sur les machines virtuelles
Migrez les charges de travail SQL Server dans le nuage au moindre coût TCO.
Azure Database pour MySQL
Base de données MySQL complètement managée et scalable.
Azure Maria DB
Service de base de données MariaDB gérée pour les développeurs d’applications.
Azure Cache 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.