Créer un pool élastique SQL

Effectué

Les fournisseurs SaaS (software as a service) comme votre entreprise de fitness ont souvent besoin de provisionner une base de données SQL pour chaque client : dans notre cas, c’est pour chaque salle. En tant que fournisseur de service, vous devez réagir aux charges de travail imprévisibles, en particulier quand vous stockez les données des clients. Vous n’avez pas nécessairement de visibilité sur la rapidité de croissance de chaque client ou sur le moment où la demande va atteindre un pic.

Comment les ressources de base de données sont-elles traditionnellement provisionnées ?

En règle générale, les fournisseurs SaaS doivent surprovisionner les ressources pour être sûrs de pouvoir répondre aux pics, ce qui augmente les coûts, ou les sous-provisionner, ce qui peut nuire aux performances quand la demande est forte.

Qu’est-ce qu’un pool élastique SQL ?

Les pools élastiques SQL sont un service d’allocation de ressources utilisé pour mettre à l’échelle et gérer les performances et le coût d’un groupe de bases de données Azure SQL. Les pools élastiques vous permettent d’acheter des ressources pour le groupe. Vous définissez la quantité de ressources disponibles au niveau du pool, vous ajoutez des bases de données au pool, et vous définissez des limites de ressources minimales et maximales pour les bases de données au sein du pool.

Les besoins en ressources du pool sont définis en fonction de l’ensemble des besoins du groupe. Le pool permet aux bases de données qui s’y trouvent de partager les ressources allouées. Les pools élastiques SQL sont utilisés pour gérer le budget et les performances de plusieurs bases de données SQL.

Quand utiliser un pool élastique ?

Les pools élastiques SQL sont idéaux quand vous avez plusieurs bases de données SQL avec un faible taux d’utilisation, mais qui ont des pics d’utilisation élevés peu fréquents. Dans ce scénario, vous pouvez allouer une capacité suffisante dans le pool pour gérer les pics pour le groupe, mais le total des ressources peut être inférieur à la somme de tous les pics de demande de toutes les bases de données. Les pics étant peu fréquents, un pic dans une base de données a peu de chances d’avoir un impact sur la capacité des autres bases de données du pool.

Dans notre scénario d’entreprise de fitness, chaque salle peut faire des promotions à des moments différents de l’année ou connaître des pics de demande pendant les jours fériés des différents pays ou à différents moments de la journée.

Combien de bases de données est-il possible d’ajouter à un pool ?

La recommandation générale est que, si les ressources combinées dont vous avez besoin pour que les bases de données spécifiques puissent répondre aux pics de capacité sont supérieures à 1,5 fois la capacité nécessaire pour le pool élastique, le pool est rentable.

Au minimum, nous recommandons d’ajouter au moins deux bases de données S3 ou quinze bases de données S0 à un même pool pour que celui-ci permette éventuellement de faire des économies.

En fonction du niveau de performances, vous pouvez ajouter jusqu’à 500 bases de données à un même pool.

Créer un pool élastique

Les pools élastiques SQL doivent être hébergés dans un serveur SQL server. Vous spécifiez un serveur existant ou vous en créez un lors de la création d’un pool élastique.

Comme beaucoup de ressources Azure, les pools élastiques peuvent être créés à partir du portail Azure, à l’aide d’Azure CLI en exécutant la commande az sql elastic-pools create, ou via PowerShell en exécutant la commande New-AzSqlElasticPool.

Dans l’unité suivante, vous allez effectuer un exercice consistant à créer un pool élastique SQL.

Ajouter des bases de données à un pool élastique

Vous pouvez ajouter des bases de données avec le portail Azure, Azure CLI ou PowerShell.

Lorsque vous utilisez le portail Azure, vous pouvez ajouter un nouveau pool à un serveur SQL existant, ou créer une ressource de pool élastique SQL et spécifier le serveur.

Avec l’interface CLI, appelez az sql db create et spécifiez le nom du pool avec le paramètre --elastic-pool-name. Cette commande peut déplacer une base de données existante dans le pool ou en créer un s’il n’existe pas.

Avec PowerShell, vous pouvez affecter de nouvelles bases de données à un pool en utilisant New-AzSqlDatabase et déplacer des bases de données existantes en utilisant Set-AzSqlDatabase.

Vous pouvez ajouter des bases de données Azure SQL existantes de votre serveur Azure SQL dans le pool ou créer de nouvelles bases de données. Vous pouvez mélanger des niveaux de service au sein du même pool.