Blog

Présentation de la haute disponibilité pour Scalingo Redis

Chargement...

10 min de lecture

Présentation de la haute disponibilité pour Scalingo Redis

Les bases de données Redis à haute disponibilité sont généralement disponibles sur Scalingo, ajoutant la réplication et la haute disponibilité.

How Scalingo makes migrating from Heroku easy

À partir d'aujourd'hui, les bases de données Redis à haute disponibilité sont généralement disponibles sur Scalingo, ajoutant la réplication et la haute disponibilité à notre offre actuelle à nœud unique basée sur le mécanisme leader-successeur et Redis Sentinel.

Comment la haute disponibilité de Redis est-elle mise en œuvre ?

Redis intègre à la fois la redondance grâce à un mécanisme leader-successeur et la haute disponibilité grâce à Sentinel.

Le mécanisme leader-successeur est à la fois facile à utiliser et axé sur des performances élevées. Il permet aux successeurs d'être la copie exacte du leader de manière asynchrone. Les successeurs se reconnectent automatiquement au leader en cas de problème. Ce mécanisme garantit la redondance dans une configuration multi-nœuds.

Sur le plan de la haute disponibilité, Redis fournit Sentinel, un logiciel pour configurer un déploiement Redis résilient aux pannes. Sentinel vérifie constamment la santé du leader et des successeurs et lance le processus de basculement si le leader devient inaccessible. Le basculement est le processus qui consiste à promouvoir une instance au rôle de leader et à s'assurer que les autres successeurs suivent ce nouveau leader.

Utiliser une configuration multi-nœuds fournit de la redondance et de la haute disponibilité.

Haute disponibilité de Redis sur Scalingo

Lorsque vous provisionnez un cluster Redis sur Scalingo, nous démarrons quelques instances de données et trois Sentinel. Grâce à cette configuration de réplication, si une instance échoue pour une raison quelconque, votre base de données restera accessible sans aucun temps d'arrêt.

Pour faire fonctionner cela de manière magique, nous avons tiré parti du travail effectué avec Elasticsearch cluster. Voici la configuration réseau pour Redis multi-nœuds :



Scalingo Redis network setup



Du point de vue du client (comme votre application), il existe un point d'entrée unique au cluster, à savoir le maître HAProxy. Ainsi, la variable d'environnement injectée dans le contexte de votre application contient toujours un seul nom de domaine. Cette variable prend la forme : redis://:<password>@my-db.scalingo.com:12345.

Lorsque votre application interroge la base de données Redis, elle pénètre dans le réseau privé par la passerelle (un serveur HAProxy), redirigeant les requêtes vers l'instance du leader Redis.

Il y a deux couches de redondance en vigueur pour augmenter la disponibilité de votre base de données :

  • Pour éviter que la passerelle soit un point de défaillance unique, une seconde est lancée en tant que basculement. En cas de défaillance du maître, l'adresse IP utilisée par le maître HAProxy est automatiquement attribuée à la seconde. Cela est réalisé grâce à notre propre gestionnaire d'IP virtuel, LinK. Ainsi, vous n'avez jamais besoin de changer votre variable d'environnement !

  • Pour éviter que le leader Redis soit un point de défaillance unique, un successeur est lancé comme basculement au cas où le premier serait hors service. Toutes les requêtes sont dirigées vers le leader. Le successeur suit les requêtes d'écriture dirigées vers le leader pour avoir les mêmes données que le leader. Le successeur est toujours prêt à être désigné leader. En cas de défaillance du maître, les sentinelles le détectent et désignent le successeur comme maître. Pendant ce temps, les serveurs HAProxy le détectent également et lorsque les sentinelles ont accompli leur tâche, HAProxy redirige automatiquement les requêtes vers la nouvelle instance de maître Redis élue. Ainsi, votre application est toujours capable d'atteindre votre instance de maître de base de données !

Pour augmenter la sécurité de votre déploiement Redis, les instances sont lancées dans un réseau privé dédié.

TLS (presque) partout

Redis ne permet pas de connexion utilisant TLS par défaut. Grâce à cette nouvelle configuration, les bases de données Redis de Scalingo prennent désormais en charge la connexion TLS de votre client à votre base de données Redis.

La communication chiffrée TLS entre les nœuds Redis à l'intérieur du réseau privé de Scalingo est légèrement plus difficile à configurer et n'est pas encore prête. Nous travaillons dur pour vous apporter cette amélioration de la confidentialité dès que possible !

Notez que les pilotes Redis pour la plupart des langages prennent en charge les connexions TLS. Préfixer votre chaîne de connexion Redis avec rediss:// au lieu de redis:// pourrait faire le travail.

Comme d'habitude, par défaut, votre base de données n'est pas accessible depuis l'extérieur du réseau de Scalingo. Comme annoncé l'année dernière, pour la rendre accessible depuis n'importe où dans le monde, vous pouvez désormais forcer la communication TLS pour vous connecter à votre base de données Redis.

Comment tirer parti de la haute disponibilité de Redis ?

Cette fonctionnalité est disponible dans le cadre des nouveaux plans pour votre base de données. Si vous démarrez une nouvelle base de données, vous serez invité à choisir un plan. Tous les plans Business incluent un cluster avec deux nœuds détenant les données, deux nœuds de passerelle et trois Sentinels. La première version prête du cluster est 4.0.14-1. C'est la 1ère révision Scalingo de la version 4.0.14 de Redis.

Pour une base de données existante, obtenir un cluster nécessite quelques étapes. Tout d'abord, mettez à jour vers la version 4.0.14-1 la plus récente. Cela démarrera votre base de données avec une configuration mono-nœud (c'est-à-dire une instance Redis dans son propre réseau privé avec une unique passerelle). Ensuite, vous pouvez changer le plan dans la section "Addons" de votre application pour choisir un plan Business. Votre base de données migrera sans interruption d'une configuration mono-nœud à une configuration hautement disponible.

Après avoir mis à niveau votre plan vers un plan Business, votre base de données est hautement disponible et Scalingo garantit une disponibilité de 99,99 % de vos données. De plus, la mise à jour vers une version plus récente se fait avec zéro temps d'arrêt !

Vous n'avez pas à vous soucier de la portabilité des données : votre base de données Redis est entièrement standard (les images Docker de base sont open source) et vous pouvez récupérer toutes vos données en les interrogeant ou en téléchargeant une sauvegarde.

Nouveaux plans Business

Les anciens plans mono-nœuds sont désormais disponibles sous la nouvelle catégorie de plans Starter, tandis que l'ancien niveau gratuit est maintenant disponible sous le nom Sandbox.

Maintenant, il existe 3 catégories de prix :

  • Sandbox ne contient qu'un seul plan et doit uniquement être utilisé à des fins de développement. Aucun SLA n'est proposé sur ce plan.

  • Les plans Starter offrent un déploiement mono-nœud (pas de haute disponibilité), mais tous incluent des sauvegardes automatiques quotidiennes.

  • Les plans Business sont ceux que vous recherchez si vous réalisez des travaux de production : redondance totale et disponibilité améliorée.

Vous trouverez la nouvelle grille tarifaire ci-dessous :



Scalingo Redis new pricing plans



À partir d'aujourd'hui, tous les anciens plans sont obsolètes et ne sont pas disponibles pour le provisionnement de nouveaux modules complémentaires. En fait, tous les modules complémentaires Redis de Scalingo fonctionnant sur l'ancien plan gratuit seront discontinués le 30 juin et automatiquement transformés en nouveau plan Sandbox (qui a exactement la même capacité mémoire).

Si vous avez des questions ou des remarques concernant les nouveaux plans tarifaires ou la nouvelle fonctionnalité de cluster, n'hésitez pas à nous contacter. Nous aimerions avoir votre retour !

Qu'est-ce qui arrive ensuite ?

Dans les semaines à venir, nous continuerons à avancer dans la haute disponibilité en publiant des clusters PostgreSQL. Restez à l'écoute !

Photo par Henry & Co. sur Unsplash

Etienne Michon, Scalingo

Étienne Michon

Docteur en informatique, Étienne Michon occupe actuellement le poste d'ingénieur R&D chez Scalingo. Il était l'un des premiers employés de Scalingo et il contribue grandement à faire grandir ce blog grâce à ses articles techniques de qualité.

Restez informé

Recevez des articles et des mises à jour de la plateforme dans votre boîte de réception.

Prêt à déployer en toute confiance ?

Découvrez des déploiements sans temps d'arrêt, une mise à l'échelle automatique intelligente et une infrastructure entièrement gérée. Commencez à déployer vos applications sur Scalingo dès aujourd'hui.

Aucune carte de crédit requise • Déployez en quelques minutes • Annulez à tout moment

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.