7 min de lecture
Présentation de la haute disponibilité pour Scalingo MongoDB
La haute disponibilité de MongoDB utilisant des ensembles de réplicas MongoDB est généralement disponible sur Scalingo.

Ces derniers mois, nous avons beaucoup travaillé pour améliorer notre offre d’addons de bases de données. La base de données InfluxDB a été ajoutée pour aider les personnes qui développent des applications autour de données temporelles (IoT, Analytics, etc.). L’ergonomie du dashboard de base de données a été améliorée avec des fonctionnalités très attendues par les utilisateurs de PostgreSQL, comme les statistiques de requêtes et le monitoring. Enfin, les offres MongoDB ont été améliorées avec le chiffrement TLS et l’accès à la base de données depuis Internet. La dernière image MongoDB 3.4 est également disponible.
Tous ces petits changements ont ouvert la voie à une fonctionnalité très importante sous le capot : la haute disponibilité MongoDB grâce aux replica sets MongoDB.
Qu’est-ce qu’un replica set ?
Le replica set est la manière dont MongoDB implémente la haute disponibilité. D’après la documentation MongoDB :
Un replica set regroupe différents serveurs MongoDB au sein d’un cluster avec différents types de membres :
Une instance primaire qui reçoit toutes les opérations d’écriture. Elle reçoit également toutes les opérations de lecture par défaut.
Un ou plusieurs nœuds secondaires qui possèdent une copie des données. Ces nœuds peuvent recevoir les opérations de lecture en modifiant la préférence de lecture dans votre driver MongoDB (par exemple Mongoid). Ces serveurs secondaires reçoivent les modifications de données en temps réel lorsque le primaire reçoit des opérations d’écriture.
L’utilisation d’un cluster apporte de la redondance et une meilleure disponibilité. Les replica sets ont été conçus pour résister aux pannes de serveurs et aux netsplits. MongoDB 3.4 passe même le test Jepsen, connu comme l’un des défis les plus rigoureux pour un système distribué.
Meilleure redondance
Afin d’obtenir une meilleure redondance, chaque processus mongod possède une copie des données. Cela est rendu simple grâce à la fonctionnalité d’oplog (operations log).
L’oplog est une collection spéciale qui conserve un enregistrement de toutes les opérations modifiant les données stockées dans la base. MongoDB applique l’opération d’écriture sur le membre primaire du replica set, puis enregistre les opérations de modification dans l’oplog du primaire. Enfin, les membres secondaires copient et appliquent ces opérations.
Ainsi, les membres secondaires sont toujours synchronisés avec le primaire.
Meilleure disponibilité
Afin d’obtenir une meilleure disponibilité, MongoDB inclut un mécanisme de failover automatique. À intervalles réguliers, les différents membres du replica set s’envoient mutuellement un heartbeat pour s’assurer que tous les membres sont actifs. Si un membre primaire n’est pas joignable pendant 10 secondes, les membres secondaires organisent une élection afin d’élire un nouveau primaire.
Ainsi, l’indisponibilité d’un replica set est inférieure à une minute : le temps nécessaire aux secondaires pour détecter la panne et élire un nouveau primaire !
Pour plus d’informations sur la manière dont MongoDB gère la réplication, vous pouvez consulter la documentation officielle exhaustive.
Comment profiter de cette fonctionnalité ?
Cette fonctionnalité est disponible dans les nouveaux plans de votre base de données. Si vous créez une nouvelle base, il vous sera demandé de choisir un plan. Tous les plans Business incluent un replica set avec trois nœuds contenant les données, et un nœud arbitre.
Parmi les trois nœuds contenant une copie des données :
l’un est utilisé comme nœud primaire,
l’un est utilisé pour effectuer les sauvegardes,
le dernier est un nœud utile en cas de failover.
Pour une base existante, vous pouvez modifier le plan dans la section « Addons » de votre application et votre base migrera de manière transparente d’un nœud unique vers un replica set. Notez que la migration d’un plan à nœud unique vers un plan replica set provoque une courte interruption, en raison de l’obligation de redémarrer votre base de données.
Évolution nécessaire de la tarification
Comme tout le monde n’a pas besoin de replica sets ni ne peut se permettre une configuration haute disponibilité, la tarification MongoDB de Scalingo a été entièrement revue.
Il existe 3 catégories de prix :
Sandbox contient un seul plan et doit être utilisé uniquement à des fins de développement. Aucun SLA n’est proposé sur ce plan.
Les plans Starter proposent un déploiement à nœud unique (sans replica set), mais incluent tous des sauvegardes automatiques quotidiennes.
Les plans Business sont ceux qu’il vous faut si vous faites de la production : replica sets partout et meilleure disponibilité.
Vous trouverez la nouvelle grille tarifaire ci-dessous :

À partir d’aujourd’hui, tous les anciens plans sont obsolètes et ne sont plus disponibles pour la création de nouveaux addons. Ainsi, tous les addons Scalingo MongoDB utilisant l’ancien plan gratuit seront arrêtés le 31 octobre et automatiquement transformés en nouveau plan Sandbox.
Si vous avez des questions ou des remarques concernant les nouveaux plans tarifaires ou la nouvelle fonctionnalité de replica set, n’hésitez pas à nous contacter. Nous serions ravis d’avoir vos retours !
Et ensuite ?
Nous sommes vraiment heureux de renforcer notre offre de bases de données. Avec ce premier travail sur la haute disponibilité des bases de données, vous pouvez vous attendre à de bonnes nouvelles dans les prochains mois, comme les clusters pour Elasticsearch et le hot standby pour PostgreSQL.
De la même manière, vous pouvez vous attendre au chiffrement au repos pour tous nos addons de bases de données.

É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






