Services de base de données MySQL et PostgreSQL dans Azure

Effectué

Si vous disposez d’une base de données locale fonctionnelle, pourquoi envisager de la déplacer dans un service cloud tel qu’Azure ? De même, pourquoi envisager d’implémenter un nouveau système de base de données dans Azure ? De nombreuses organisations effectuent cette migration, car il est facile et relativement peu coûteux de créer un service hautement disponible et scalable dans le cloud, par rapport à l’utilisation d’un centre de données local.

Pour votre start-up, les bases de données qui s’exécutent actuellement sur MySQL et PostgreSQL en local sont stratégiques, mais limitées par la taille de votre centre de données et de votre équipe d’administration. Vous souhaitez investiguer si vous pouvez remédier à ces limitations à l’aide des services Azure et, si c’est le cas, quels sont les services les plus adaptés à vos besoins.

Ici, vous allez en apprendre davantage sur Azure Database pour MySQL, Azure Database for MariaDB et Azure Database pour PostgreSQL ainsi que sur les options de déploiement que vous pouvez utiliser avec ces services. Vous en apprendrez également plus sur les avantages de l’exécution de bases de données open source sur des machines virtuelles ou conteneurs dans Azure et l’approche IaaS (Infrastructure-as-a-Service).

Disponibilité

La disponibilité garantie par les contrats de niveau de service (SLA) Azure dépend des détails précis de votre implémentation, mais elle est toujours haute. Par exemple, pour Azure Database pour PostgreSQL, Microsoft garantit une disponibilité de 99,99 % sans coût supplémentaire. Pour une disponibilité accrue, vous pouvez utiliser le serveur flexible.

Si vous souhaitez obtenir cette disponibilité sur un réseau local, vous devez développer un système résilient aux défaillances matérielles. Vous avez besoin des éléments suivants :

  • Plusieurs serveurs physiques.
  • Un équilibreur de charge capable de rediriger les requêtes en cas de défaillance du serveur.
  • Réseau de zone de stockage partageant des données entre des serveurs ou un moyen de répliquer des données entre des serveurs.
  • Matériel réseau résilient.
  • Centre de données à contrôle environnemental.
  • Onduleurs et générateurs de sauvegarde.

Tous ces composants sont coûteux et nécessitent des compétences pour les implémenter et exécuter. Ils consomment également des ressources administratives significatives. Avec Azure, ces exigences sont déjà résolues ; il vous suffit de créer la base de données et la haute disponibilité est intégrée.

Extensibilité

Si votre base d’utilisateurs croît, la demande du système croît également. Chaque système local a une capacité maximale : si vous approchez de cette limite, vous devez l’augmenter en ajoutant du matériel. Vous ne pouvez pas ajouter de capacité instantanément. Au lieu de cela, vous devez acheter le matériel, installer le système d’exploitation et les logiciels nécessaires, appliquer les mises à jour, puis ajouter les données à la nouvelle instance de base de données. Toutes ces opérations prennent du temps.

Souvenez-vous également que la demande élevée est souvent temporaire. Par exemple, si vous menez à bien une campagne marketing, vous pouvez voir un pic de trafic, suivi d’un retour à une demande plus faible. Dans une configuration locale, vous devez concevoir le système pour ces pics d’activité. Cela signifie que le système est sous-utilisé la plupart du temps, mais continue à générer des factures et à nécessiter une maintenance.

Ces défis sont beaucoup plus faciles à surmonter dans le cloud. Si votre système atteint sa capacité maximale, vous pouvez résoudre ce problème très rapidement (par exemple, en le passant à un niveau supérieur ou en ajoutant des machines virtuelles). Si la demande chute, vous économisez rapidement de l’argent en supprimant de la capacité. Dans Azure, vous payez uniquement la capacité que vous utilisez.

IaaS et PaaS

Vous pouvez choisir parmi au moins deux approches quand vous implémentez une base de données sur Azure, selon le niveau de contrôle dont vous avez besoin :

  • Infrastructure as a service (IaaS) Si vous choisissez l’approche IaaS, Azure exécute l’infrastructure physique pour vous. Vous créez des machines virtuelles et des réseaux virtuels pour les connecter, puis vous installez les logiciels et les données nécessaires. L’exécution d’une machine virtuelle est similaire à l’exécution d’un serveur physique. Vous conservez le système d’exploitation et les logiciels, mais vous n’avez pas à vous soucier du centre de données, du contrôle environnemental ni des connexions à Internet.
  • PaaS (Platform as a service) Si vous choisissez l’approche PaaS, Azure exécute l’infrastructure physique, les serveurs virtuels nécessaires et le logiciel de base de données. Vous n’avez pas à effectuer des tâches de configuration ni de maintenance sur ces composants. Par exemple, Azure applique automatiquement les Service Packs. Vous pouvez vous concentrer sur l’administration de bases de données. Les offres PaaS pour l’exécution de bases de données open source sur Azure incluent Azure Database pour MySQL, Azure Database for MariaDB et Azure Database pour PostgreSQL.

Que sont les services Azure Database pour MySQL, MariaDB et PostgreSQL ?

Si vous disposez d’un système de base de données local qui repose sur MySQL, MariaDB ou PostgreSQL et que vous souhaitez déplacer votre base de données dans le cloud, envisagez d’utiliser Azure Database pour MySQL, Azure Database for MariaDB ou Azure Database pour PostgreSQL. Vous pouvez également utiliser ces services pour implémenter de nouvelles bases de données. Par exemple, si vos développeurs et administrateurs de base de données connaissent ces serveurs de bases de données et que vous ne souhaitez pas qu’ils passent du temps à découvrir un nouveau système, l’utilisation d’Azure Database pour MySQL, d’Azure Database for MariaDB ou d’Azure Database pour PostgreSQL permet au personnel d’utiliser ses connaissances existantes. Azure Database pour MySQL, Azure Database for MariaDB et Azure Database pour PostgreSQL étant des systèmes PaaS, vous n’avez pas à vous soucier de la conception ni de l’implémentation des réseaux ou serveurs virtuels.

Qu’est-ce qu’Azure Database pour MySQL ?

Azure Database pour MySQL est une implémentation PaaS de MySQL dans le cloud Azure, basée sur MySQL Community Edition. Vous pouvez actuellement choisir parmi la prise en charge des versions MySQL 5.6, 5.7 et 8.0, en fonction de vos besoins. La prise en charge de versions supplémentaires sera assurée à mesure de l’évolution de MySQL.

Vous bénéficiez des fonctionnalités suivantes avec Azure Database pour MySQL :

  • Fonctionnalités de haute disponibilité intégrées.
  • Performances prévisibles
  • Mise à l’échelle facile qui répond rapidement à la demande.
  • Des données sécurisées, au repos et en mouvement.
  • Des sauvegardes automatiques et une restauration à un instant donné pour les 35 derniers jours.
  • Sécurité de niveau entreprise et conformité à la législation.

Le système utilise le paiement à l’utilisation : vous ne payez que ce que vous utilisez.

Vous avez le choix entre deux options de déploiement :

Serveurs flexibles Azure Database pour MySQL

Le serveur flexible Azure Database pour MySQL offre une plus grande disponibilité en répliquant vos bases de données sur plusieurs zones de disponibilité. Il vous permet également de démarrer et d’arrêter rapidement votre service de base de données pour optimiser les coûts.

Azure Database pour MySQL fournit un système de base de données global qui s’adapte aux bases de données volumineuses en effectuant un scale-up. Vous n’avez pas à gérer le matériel, les composants réseau, les serveurs virtuels, les correctifs logiciels et les autres composants sous-jacents.

Qu’est-ce qu’Azure Database for MariaDB ?

MariaDB est une duplication (fork) de MySQL créée par la communauté en réponse à l’acquisition de MySQL par Oracle. Azure Database for MariaDB est l’implémentation PaaS de MariaDB dans le cloud Azure.

MariaDB est conçu pour être un remplacement de MySQL, de sorte que vous pouvez remplacer une base de données MySQL par une base de données MariaDB sans recodage étendu des applications clientes ni modifications apportées au schéma de base de données. De nombreuses fonctionnalités de MariaDB sont les mêmes que dans MySQL, par exemple :

  • Structures et index de base de données
  • Commandes de définition de données
  • API, structures et protocoles clients
  • Programmes mysqldump et mysqladmin

Cette similarité entre MySQL et MariaDB signifie que les tâches de migration pour MySQL vers Azure Database pour MySQL sont très semblables pour MariaDB vers Azure Database for MariaDB. Il existe quelques différences entre les systèmes. Par exemple, MariaDB prend en charge ColumnStore et le cache Redis, qui peuvent être utilisés pour optimiser les performances.

Notes

Comme les migrations des bases de données depuis MySQL et MariaDB vers Azure sont si similaires, elles sont traitées ensemble dans ce cours.

Important

Au moment de la rédaction de cet article, il n’existe pas d’option de déploiement de serveur flexible pour Azure Database for MariaDB.

Qu’est-ce qu’Azure Database pour PostgreSQL ?

Si vous préférez PostgreSQL, vous pouvez choisir Azure Database pour PostgreSQL afin d’obtenir une implémentation PaaS de ce serveur de base de données dans le cloud Azure. Ce service offre les mêmes avantages que le service MySQL en termes de disponibilité, de performances, de mise à l’échelle, de sécurité et d’administration.

Vous avez le choix entre trois options de déploiement :

Azure Database pour PostgreSQL - Serveur flexible

Le serveur flexible Azure Database pour PostgreSQL offre les mêmes avantages que le serveur flexible MySQL. Vous pouvez l’utiliser pour fournir les niveaux les plus élevés de disponibilité et des redémarrages pratiques.

Options IaaS pour l’exécution de MySQL, MariaDB et PostgreSQL dans Azure

Utilisez l’approche IaaS pour répliquer une architecture physique dans le cloud. Vous pouvez choisir IaaS si vous souhaitez conserver davantage de contrôle sur les systèmes d’exploitation et les logiciels sous-jacents à votre système.

Toutefois, il existe plusieurs approches que vous pouvez adopter pour implémenter l’approche IaaS, en fonction de vos besoins et de la complexité de vos systèmes existants.

Lift-and-shift

Une approche consiste à mettre en miroir votre architecture locale dans le cloud en créant une infrastructure de réseau virtuel qui correspond à celle de votre centre de données. Vous devez créer une machine virtuelle pour chaque serveur de votre système local. Vous installez et configurez votre logiciel système de gestion de base de données (MySQL, MariaDB ou PostgreSQL) sur les machines virtuelles. Vous procédez ensuite à un lift-and-shift du système dans le cloud avec une légère modification de la configuration ou du code client.

Avec cette stratégie, vous suivez un processus pas à pas pour la migration. Vous déplacez des parties de votre système de façon incrémentielle vers le cloud, tout en conservant d’autres éléments en local, à l’aide d’une passerelle réseau Azure. Utilisez cette approche hybride pour stabiliser le système à chaque étape, puis effectuez une restauration si nécessaire.

Utiliser des machines virtuelles prédéfinies

La place de marché comprend des machines virtuelles préconfigurées pour les serveurs MySQL, MariaDB et PostgreSQL. Ces images permettent de gagner du temps, car vous n’avez pas besoin d’installer le logiciel serveur de base de données vous-même. Quand vous configurez des machines virtuelles de base de données, vérifiez s’il existe une image sur la place de marché avec la version appropriée du logiciel de base de données et envisagez de l’utiliser.

Vous pouvez également charger une image de machine virtuelle personnalisée sur Azure et l’utiliser pour créer des machines virtuelles. Cette image peut inclure le logiciel de base de données de votre choix et même la base de données proprement dite. Pour plus d’informations, consultez Tutoriel : Créer une image personnalisée d’une machine virtuelle Azure avec Azure PowerShell.

Utiliser des conteneurs MySQL, MariaDB ou PostgreSQL

Une autre technologie de virtualisation que vous pouvez envisager est la mise en conteneur. Un conteneur ressemble à une machine virtuelle, mais partage le système d’exploitation avec l’ordinateur hôte. Les conteneurs sont plus petits que les machines virtuelles, ce qui vous permet d’en exécuter un plus grand nombre sur un ordinateur hôte et de démarrer des nouveaux plus rapidement. Toutefois, vous ne pouvez pas exécuter un conteneur Linux sur une machine Windows, par exemple, car le système d’exploitation est partagé. Pour exécuter des conteneurs sur un serveur physique, vous avez besoin d’un logiciel hôte de conteneur, tel que Docker. Les conteneurs sont déployés à partir d’images et, comme les machines virtuelles, ces images peuvent inclure des logiciels de base de données tels que MySQL, MariaDB et PostgreSQL.

Si vous souhaitez exécuter un petit nombre de conteneurs dans Azure, installez Docker sur une machine virtuelle. Si vous utilisez le service Container Instances, vous pouvez également exécuter des conteneurs sur Azure sans configurer vos propres machines virtuelles. Si vous souhaitez gérer facilement un grand nombre de conteneurs qui doivent communiquer entre eux, utilisez Azure Kubernetes Service.