Il est assez courant d'utiliser le cloud pour stocker vos données ou comme option de basculement en cas de défaillance du maître. Il existe plusieurs fournisseurs de cloud qui vous permettent de stocker, gérer, récupérer et manipuler des données via une plateforme cloud ; accessible sur internet. Chaque fournisseur de cloud a ses propres offres de produits et fonctionnalités uniques, chacune avec des modèles de coûts différents.
Microsoft Azure est l'un de ces fournisseurs de services. Dans ce blog, nous allons examiner les fonctionnalités offertes par Microsoft Azure pour le stockage principal, en tant que site de reprise après sinistre, et plus particulièrement la façon dont il gère un environnement de base de données PostgreSQL mixte.
Déploiement d'une instance de base de données PostgreSQL sur Microsoft Azure
Avant d'effectuer cette tâche, vous devez décider comment vous allez utiliser cette instance et quel produit Azure vous convient le mieux. Il existe deux méthodes de base pour déployer une instance PostgreSQL sur Microsoft Azure.
- Base de données Azure pour PostgreSQL :est un service géré que vous pouvez utiliser pour exécuter, gérer et mettre à l'échelle des bases de données PostgreSQL hautement disponibles dans le cloud. Il est disponible en deux options de déploiement :serveur unique et hyperscale.
- Machine virtuelle :Fournit une infrastructure virtualisée, à grande échelle, sécurisée et à la demande. Il prend en charge Ubuntu Server, RedHat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian et Windows Server et vous permet de développer, tester, exécuter des applications et étendre votre centre de données en quelques secondes seulement.
Pour ce blog, nous verrons à la fois comment créer une base de données Azure pour PostgreSQL et utiliser une machine virtuelle Azure à partir du portail Microsoft Azure.
Déploiement de la base de données Azure pour PostgreSQL
Si vous accédez à votre portail Azure -> Créer une ressource -> Bases de données -> Base de données Azure pour PostgreSQL, vous pourrez choisir entre Serveur unique ou Hyperscale. Pour ce blog, nous utiliserons un serveur unique, car l'option Hyperscale est en préversion et n'offre pas encore de SLA.
Ici, vous devez ajouter des informations sur votre nouvelle instance PostgreSQL ; tels que l'abonnement, le nom du serveur, les informations d'identification de l'utilisateur et l'emplacement. Vous pouvez également choisir la version de PostgreSQL à utiliser (les versions 9.5, 9.6, 10 ou 11 sont actuellement disponibles) et le matériel virtuel pour l'exécuter (Calcul + Stockage).
Lorsque vous spécifiez le matériel, vous verrez le prix estimé en réel -temps. C'est vraiment utile pour éviter une grosse surprise le mois prochain. Après cette étape, il vous suffit de confirmer la configuration de la ressource et d'attendre quelques minutes jusqu'à ce qu'Azure termine le travail de création.
Lorsque la nouvelle ressource est créée, vous pouvez accéder à Toutes les ressources pour voir les options de ressources disponibles.
Dans les options de ressources créées, vous pouvez accéder à la réplication pour l'activer et répliquer à partir du serveur maître jusqu'à cinq répliques. Vous devez également vérifier la section Sécurité de la connexion pour activer ou désactiver l'accès externe. Pour connaître les informations d'accès, vous devez visiter la section des ressources d'aperçu.
$ psql -h pg1blog.postgres.database.azure.com -U [email protected] postgres
Password for user [email protected]:
psql (11.5, server 11.4)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
postgres=>
Basculement sur la base de données Azure pour PostgreSQL
Malheureusement, le basculement automatique entre les serveurs maître et réplique n'est pas disponible. Si vous supprimez l'instance maître, cependant, Azure effectuera un processus de basculement pour promouvoir le réplica de manière automatique.
Il existe une option pour effectuer cette tâche de basculement manuellement, ce qui vous oblige à arrêtez le réplica et configurez le nouveau point de terminaison dans votre application pour qu'il pointe vers le nouveau maître. Le réplica sera promu et dissocié du maître. Il n'y a aucun moyen de lier à nouveau cette réplique à votre maître.
Déployer PostgreSQL sur une machine virtuelle Azure
Si vous accédez à votre portail Azure -> Créer une ressource -> Calcul -> Machine virtuelle, vous ouvrirez la section Créer une machine virtuelle où vous pourrez spécifier différentes configurations pour votre nouvelle machine virtuelle Azure .
Dans l'onglet de base, vous devez spécifier l'abonnement Azure, la région, la disponibilité options, système d'exploitation, taille du serveur, identifiants d'accès (nom d'utilisateur/mot de passe ou clé SSH) et règles de pare-feu entrantes.
Dans l'onglet disque, vous devez spécifier le stockage (type et taille) pour votre nouvelle machine virtuelle. Le type de disque peut être Standard HDD, Standard SSD ou Premium SSD. Le dernier est recommandé pour les charges de travail IOPS élevées.
Dans l'onglet réseau, vous pouvez spécifier le réseau virtuel, l'adresse IP publique , et les ports entrants autorisés. Vous pouvez également ajouter cette nouvelle machine virtuelle derrière une solution d'équilibrage de charge Azure existante.
Dans l'onglet suivant, nous avons quelques options de gestion, comme la surveillance et les sauvegardes .
Et enfin, dans l'onglet avancé, nous pouvons ajouter des extensions, cloud- init ou des groupes d'hôtes.
Après avoir examiné l'option précédente et l'avoir confirmée, votre nouvelle machine virtuelle sera créée et accessible depuis le portail Azure. Dans la section Ressource -> Présentation, vous pouvez voir les informations d'accès à la machine virtuelle (adresse IP publique/privée).
Maintenant, vous pouvez y accéder via SSH et installer la base de données PostgreSQL à l'aide de ClusterControl .
$ ssh 23.102.177.27
Last login: Mon Sep 23 21:33:27 2019
[[email protected] ~]$
Vous pouvez vérifier ce lien pour voir les étapes pour effectuer le déploiement de PostgreSQL avec ClusterControl.
Basculement PostgreSQL sur une machine virtuelle Azure
La reprise après sinistre est une fonctionnalité de machine virtuelle dans la section Opérations qui vous permet de répliquer votre environnement dans une autre région Azure. Pour l'activer, vous devez choisir la région cible. Dans l'onglet avancé, vous pouvez modifier les détails spécifiques de la cible ; tels que le réseau virtuel, les paramètres de stockage et les paramètres de réplication.
Lorsque la reprise après sinistre est activée, vous pourrez vérifier le l'état de la réplication, testez le processus de basculement ou basculez manuellement vers celui-ci.
Activer cela vous permet d'avoir une option de basculement en cas d'échec. Cependant, il s'agira d'un basculement pour l'ensemble de l'environnement et pas seulement pour le service de base de données.
Un processus de basculement PostgreSQL amélioré pour Microsoft Azure
Comme vous avez un accès SSH, vous pouvez améliorer ce processus de basculement en important la machine virtuelle (ou même en déployant la base de données PostgreSQL) avec ClusterControl.
Si vous gérez les nœuds de la base de données avec ClusterControl (et si l'option "Auto Recovery" est activée) en cas de défaillance du maître, ClusterControl promouvra l'esclave le plus avancé (s'il n'est pas sur la liste noire ) pour maîtriser et vous informer du problème. Il bascule également automatiquement sur le reste des esclaves pour répliquer à partir du nouveau maître.
Avec ClusterControl, vous déployez même également un environnement mixte avec certains nœuds sur le cloud et d'autres nœuds sur site. Vous pouvez également ajouter des équilibreurs de charge à votre topologie pour améliorer notre environnement à haute disponibilité. Vous pouvez trouver plus d'informations sur ce sujet ici.
Conclusion
Azure propose de nombreuses fonctionnalités et produits pour offrir une solution de niveau entreprise. Au cours de ces tests, cependant, le principal problème que j'ai trouvé était que le temps de création et de basculement était trop long pour la plupart des besoins de l'application.
Si vous avez besoin d'un basculement et d'une récupération rapides, vous devez améliorer la disponibilité de l'environnement en utilisant un équilibreur de charge ou un système externe comme ClusterControl, pour réduire les temps d'arrêt. Pour des informations plus détaillées sur l'exécution de PostgreSQL sur Microsoft Azure, vous pouvez consulter notre blog de plongée approfondie.