psdesign1 - stock.adobe.com

Ignite 2021 : Microsoft Azure cherche à optimiser les coûts de ses SGBD

Si au cours de sa conférence annuelle, Microsoft a mis l’accent sur l’arrivée prochaine de SQL Server 2022, le géant du cloud a surtout pris des mesures pour améliorer le rapport performance-prix de ses services de bases de données DbaaS et PaaS, à la demande des clients.

Parmi plus de 90 annonces et mises à jour présentées lors de l’édition automnale d’Ignite 2021, Microsoft a dévoilé plusieurs améliorations pour son DbaaS Azure Cosmos DB et Azure SQL, ainsi que des options de déploiements pour Azure Database MySQL et PostgreSQL.

Tout d’abord, les Azure Managed Instances for Cassandra entrent en disponibilité générale. Microsoft promet de faciliter les déploiements hybrides du SGBD NoSQL réputé pour son orchestration complexe à l’échelle. Il s’agit surtout d’attirer les migrations vers le cloud. Mais la plupart des nouveautés concernent l’optimisation de Cosmos DB.

L’API Core de Cosmos DB (SQL) est désormais dotée d’une fonctionnalité de mise à jour partielle des documents. Elle avait été présentée en juin dernier. Celle-ci repose sur une API qui permet de corriger ou de remplacer des champs ou des propriétés spécifiques à l’échelle d’un document. Selon les responsables de Microsoft, cela épargnerait la nécessité de modifier l’ensemble du fichier. Cette fonctionnalité est supportée par les SDK .NET, Java, Node ainsi que les procédures stockées (liées à JavaScript).

Optimiser les performances de Cosmos DB

L’équipe d’ingénierie a également ajouté des métriques pour mesurer les performances d’indexation depuis les SDK .NET et Java. Cette fonction affiche les chemins indexés utilisés, la consommation de ressources des requêtes et des recommandations pour les optimiser.

Au printemps, Microsoft avait annoncé la disponibilité générale d’Azure Synapse Link for Cosmos DB, permettant une intégration entre les deux services.

En clair, il est possible de réaliser des traitements HTAP (Hybrid Transactional / Analytical Processing) sur les données stockées dans les documents contenues dans Cosmos DB. Les ingénieurs du géant du cloud ont ajouté en préversion une capacité de partitionnement personnalisée pour les workloads analytiques. Pour les organisations qui utilisent des filtres au sein de leurs requêtes analytiques, cela doit permettre d’analyser uniquement les données souhaitées grâce à un processus d’élagage, selon Rodrigo Souza, Senior Program Manager, Cosmos DB chez Microsoft Azure.

Ces données partitionnées du store analytique Azure Cosmos DB sont écrites dans un magasin spécifique, qui pointe vers le compte de stockage primaire lié à un environnement Azure Synapse. 

« Les données élaguées du store partitionné sont ensuite automatiquement fusionnées avec les données non partitionnées les plus récentes du magasin analytique », précise le responsable.

Cette technique éviterait de conserver les traces de plusieurs enregistrements, et ainsi fluidifier les requêtes quand elles sont appliquées sur de larges volumes de données.

Réduire les coûts des services de bases de données Azure

Qui dit optimisation des workloads, dit réduction des coûts. En ce sens, Microsoft affirme avoir amélioré la « gouvernance des coûts » dans Cosmos DB. Une des unités de facturation du service est exprimée en RU par seconde (Request Unit ou unité de requêtes), correspondant à la consommation des ressources de calcul par les opérations des bases de données (la facturation du stockage dépend d’une autre unité exprimée en Go).

Deux modes de capacités sont disponibles : le débit approvisionné ou serverless. Avec le premier, le client peut poser des limites manuelles de RU par seconde disponibles à ne pas dépasser. Il peut aussi enclencher la mise à l’échelle automatique quand le trafic est imprévisible.

Le mode débit approvisionné peut être appliqué au niveau du conteneur Cosmos ou au niveau des bases de données.

Or il fallait jusqu’alors appliquer des limites de débit approvisionné par conteneur et par base de données. Il semble difficile dans ce cas de véritablement prédire les coûts, quand plusieurs conteneurs s’exécutent en même temps pour différents services.

Pour répondre à ce problème, Microsoft donne l’option de limiter le nombre total de RU/s provisionné à l’échelle d’un compte Azure Cosmos DB, et de bloquer le déploiement de conteneurs quand la limite fixée est atteinte. Cette mécanique a aussi été introduite pour éviter des surprises financières aux utilisateurs du mode gratuit de Cosmos DB, donnant accès par défaut à 25 Go de stockage et 1 000 RU/s.

« Jusqu’à présent, vous n’aviez pas la possibilité d’imposer une limite stricte au débit total approvisionné sur votre compte. Pour cette raison, certains de nos utilisateurs voyaient leur compte gratuit facturé, lorsqu’ils créaient par erreur trop de conteneurs ou provisionnaient trop de débit », explique Thomas Weiss, program manager, Azure Cosmos DB chez Microsoft dans un billet de blog.

Ces diverses optimisations étaient réclamées par les utilisateurs. Les témoignages des usagers sur Gartner Peer Insights démontrent que les équipes, en particulier les plus jeunes, avaient du mal à prédire les coûts de leurs projets.

Toujours dans cette logique d’optimisation des coûts, le fournisseur a dévoilé la disponibilité générale de l’option Flexible Server pour Azure Database for MySQL. L’équivalent dédié à PostgreSQL arrivera prochainement. Derrière ce nom se cachent les versions entièrement managées d’Azure Database. Flexible Server s’intègre avec GitHub, Terraform, AKS ainsi qu’avec les Web Apps. Surtout, cette option inclut des fonctions de « haute disponibilité », c’est-à-dire de redondance, inter et multirégions, tandis que les données sont sauvegardées automatiquement pendant sept jours (moyennant finance, il est possible d’étendre cette durée de rétention des backups jusqu’à 35 jours).

Flexible Server doit offrir 300 paramètres de configuration pour optimiser les performances et les coûts de ces deux bases de données. En l’occurrence, le géant du cloud permet de réserver des instances, c’est-à-dire que le client paye directement une quantité de ressources de calcul et de stockage qu’il utilisera sur un ou trois ans. Ce mode d’achat permettrait de réaliser « jusqu’à 67 % d’économie » sur les coûts de compute.

Il est aussi possible de couper les serveurs inutilisés pendant 30 jours. Par défaut, Flexible server comprend trois SKU (ou niveaux) différents. Les tiers « usage général » et « mémoire optimisée » sont conçus pour les charges de travail en production prévisible, tandis que l’offre Burstable est pensée pour les « développements low-cost » et les workloads à faible concurrence ; en clair, pour les environnements de développement et les petites applications. Dans les articles de blog, les responsables de Microsoft vont même jusqu’à donner des conseils pour faire baisser les coûts d’Azure Database.

SQL Server 2022 sera hybride

Pour ce qui est d’Azure SQL, la famille de produits pour les charges de travail critiques, Microsoft mise tout comme avec Cassandra, sur les déploiements hybrides. Cette notion d’hybridation semble davantage liée à des capacités de débord vers le cloud, de sauvegardes des données, et plus certainement de solutions temporaires le temps de migrer les workloads vers le cloud. C’est tout l’intérêt de la fonctionnalité Link des instances managées SQL, disponible en préversion limitée.

En l’occurrence, ce service doit connecter des serveurs SQL server 2019 déployés sur site ou dans un autre cloud, afin de répliquer en « presque temps réel » leur contenu dans les instances managées. Les Managed Instance d’Azure SQL accueillent ainsi les répliques secondaires après le déploiement d’un tunnel VPN (entre autres).

Microsoft explique également que cette méthode permet de décharger des workloads en lecture seule sur le cloud et d’employer des services Azure comme Power BI ou les services de machine learning « sans migrer vers le cloud ». Les charges de travail peuvent provenir de plusieurs serveurs SQL Server dont les données sont consolidées dans une Managed Instance, tout comme il est possible de les répartir dans plusieurs instances.

Microsoft présente ainsi le témoignage d’un « early adopter », le département d’incendie de Los Angeles.

« Nous avons transféré des données critiques de notre entrepôt de données vers un emplacement qui peut être interrogé par Power BI, en utilisant un processus ETL qui impliquait plus de 1 900 tables avec des changements constants de schéma. Ce n’était tout simplement pas viable et cela représentait trop de travail pour maintenir les bases de données synchronisées », raconte Leo Parsamyan, analyste principal des SI du Los Angeles County Fire Department dans un billet de blog Azure.

« La fonction Link d’Azure SQL Managed Instance nous permet d’économiser un temps et une énergie considérables par rapport à notre ancien processus d’importation manuelle et fournit une liaison hybride fiable entre le cloud et notre environnement sur site ».

Microsoft a également rehaussé le plafond des ressources disponibles et des instances premium basé sur les processeurs Intel Xeon de troisième génération, ceux basés sur l’architecture Ice Lake (de 4 à 80vCore et de 7 Go de RAM par vCore à 13,6 Go de RAM par vCore pour un maximum de 870 Go de RAM par instance). Une instance peut maintenant contenir jusqu’à 16 To de données, contre 4 To jusqu’alors.

Ces éléments hybrides sont les fondations pour SQL Server 2022, accessible en préversion privée. La nouvelle mouture sera nativement compatible avec Azure Synapse Link et Azure Purview, un outil de gouvernance de données. Microsoft veut ainsi mettre fin aux pipelines ETL. Le géant du cloud promet également une haute disponibilité et une reprise après sinistre bidirectionnelle, entre SQL Server et les Managed Instances dans le cloud Azure. SQL Server Ledger, l’équivalent de blockchain tables chez Oracle, sera de la partie pour rendre les données immuables. Le fournisseur a aussi amélioré la gestion des procédures stockées et prévoit la compatibilité avec les services compris dans Azure Arc.

Reste à savoir si une telle approche hybride permettra aux entreprises de réduire leur coût de gestion du SGBD.

Selon une étude d’Enterprise Strategy Group (ESG – propriété de Techtarget, également propriétaire du MagIT) publiée en novembre 2020, les organisations peuvent « économiser jusqu’à 47 % lors de la migration de déploiements locaux vers Microsoft SQL Server sur des machines virtuelles Azure ».

Cela ne semble pas se vérifier pour tous les usagers, si l’on en croit les avis disponibles sur Gartner Peer Insights. La majorité des utilisateurs reconnaissent les performances d’Azure SQL, mais plusieurs d’entre eux soulignent le coût élevé de ce service. Un commentaire posté en mars 2021 d’un responsable IT au sein d’une ETI fait rapidement comprendre les différentes mesures annoncées par Microsoft. « Nous avons adoré utiliser Azure SQL, jusqu’à ce que nous recevions notre facture. Pour une mise à l’échelle efficace, elle s’accompagne d’un coût important qui était inattendu. Nous avons décidé de rapatrier nos données dans notre centre de données, car c’était beaucoup moins cher », écrit-il.

Azure SQL semble pourtant bénéficier aux grands groupes. Microsoft met en avant le témoignage de la branche australienne de Komatsu (3 400 employés), fabricant nippon d’engins de chantier qui a réduit de 49 % ses coûts avec les instances managées SQL par rapport à ses déploiements de SQL Server sur site.

De manière générale, dans un rapport publié à la fin du mois de juillet 2021, Gartner avait reproché à Microsoft Azure sa complexité commerciale et quelques couacs en matière de performances et de résilience plutôt que son modèle tarifaire. L’adoption des services de bases de données comme Cosmos DB avait toutefois été saluée.

Pour approfondir sur Base de données