En tant que base de données moderne, MongoDB a été initialement conçue pour le cloud et dispose désormais de fonctionnalités intégrées permettant de maintenir une haute disponibilité et une évolutivité facile grâce à des charges de travail distribuées. S’il est vrai qu’il peut fonctionner comme une instance unique, la plupart du temps, il fonctionne en tant que cluster. Dans cet article, vous apprendrez les différents types de clusters dans MongoDB et comment vous pouvez les définir dans MongoDB Atlas.
Qu’est-ce qu’un cluster MongoDB ?
Dans MongoDB, les clusters peuvent désigner deux architectures différentes. Ils peuvent signifier soit un replica set soit un cluster partitionné. Regardons les deux options de plus près.
Jeux de réplicas
Un replica set MongoDB est un groupe d'un ou plusieurs serveurs contenant une copie exacte des données. Bien qu’il soit techniquement possible d’avoir un ou deux nœuds, le minimum recommandé est de trois. Un nœud principal est chargé de fournir les opérations de lecture et d'écriture de votre application, tandis que deux nœuds secondaires contiennent une réplique des données.
Un replica set typique dans MongoDB.
Si le nœud principal devenait indisponible pour une raison quelconque, un nouveau nœud principal serait sélectionné par un processus d'élection. Ce nouveau nœud principal est désormais responsable des opérations de lecture et d'écriture.
Si un nœud principal est indisponible, le trafic de l'application client est redirigé vers un nouveau nœud principal.
Une fois que le serveur défectueux sera remis en ligne, il se synchronisera avec le nœud principal et deviendra un nouveau nœud secondaire dans le cluster.
Lorsque le nœud principal précédent revient en ligne, il revient en tant que nœud secondaire.
L'objectif est de fournir à votre application une haute disponibilité sur vos données. Même en cas de défaillance d'un serveur, votre application client peut toujours se connecter au cluster et avoir accès aux données, ce qui réduit le temps d'indisponibilité potentiel global.
Clusters partitionnés
Un cluster fragmenté est un moyen d'évoluer horizontalement en répartissant vos données sur plusieurs ensembles de répliques. Lorsqu'une opération de lecture ou d'écriture est effectuée sur une collection, le client envoie la demande à un routeur (mongos). Le routeur validera alors dans quelle partition les données sont stockées via le serveur de configuration et enverra les requêtes au cluster spécifique.
Un cluster partitionné typique dans MongoDB.
Chacune des partitions contiendrait son propre replica set. Vous devriez également disposer de plusieurs routeurs ou serveurs de configuration afin d'assurer une haute disponibilité. Avec ce type d'architecture, vous pouvez répartir votre base de données autant que vous le souhaitez sans compromettre la disponibilité ni vous soucier de la capacité de stockage.
Création d'un cluster MongoDB
Selon vos besoins, il existe plusieurs manières de créer un cluster MongoDB. La manière la plus simple consiste à utiliser Atlas, la plateforme de base de données en tant que service de MongoDB. Vous pouvez trouver des instructions détaillées dans la documentation. Si vous devez exécuter MongoDB sur votre infrastructure, les instructions vous seront fournies plus loin dans cet article.
Pour créer un cluster MongoDB dans Atlas, veuillez suivre ces étapes.
1. Connectez-vous à votre compte MongoDB Atlas sur https://cloud.mongodb.com.
2. Cliquez sur le bouton « Créer ».
3. Choisissez votre type de cluster (dédié, serverless, partagé).
4. Choisissez votre fournisseur de services cloud et votre région.
5. Cliquez sur « Créer un cluster ».
Votre cluster MongoDB va commencer son approvisionnement et sera disponible pour vous dans quelques minutes. Au fur et à mesure que vous créez votre cluster, de nombreuses options s'offrent à vous pour répondre à vos besoins spécifiques. Chacune de ces options de configuration est abordée dans la section suivante.
Configuration d'un cluster MongoDB sur Atlas
Chaque application est différente, et MongoDB Atlas vous offre de nombreuses façons de définir votre cluster pour répondre à vos besoins spécifiques. Certaines configurations particulières doivent être pensées à l’avance, tandis que vous pouvez en modifier d’autres à la volée. En utilisant ces paramètres, vous mettrez en œuvre toutes les meilleures pratiques pour Atlas en production. Dans cette section, vous apprendrez davantage sur les différentes configurations que vous pouvez ajuster lors de la création initiale de votre cluster.
Type de déploiement
Le type de déploiement est la première option que vous aurez à choisir. Les autres options de configuration varieront en fonction du type d'instance que vous décidez.
- Serverless : ce type de cluster est le plus flexible du point de vue tarifaire. Destiné aux applications qui ont un trafic peu fréquent ou variable. Les configurations possibles sont maintenues au strict minimum.
- Dédié : un cluster dédié est conçu pour les charges de production. Il peut supporter un large éventail de tailles de serveurs ainsi que des configurations avancées. Vous devriez choisir ceci pour votre environnement de production.
- Partagé : ces clusters sont conçus pour être un moyen d’explorer MongoDB. Ils peuvent vous fournir un bac à sable où vous pourrez essayer MongoDB gratuitement. Les configurations de serveur disponibles sont quelque peu limitées.
Vous pouvez trouver plus d’informations sur les différents types de déploiement de bases de données dans la documentation.
Configuration du cluster global
Si vous avez besoin de plusieurs clusters partitionnés avec des opérations de lecture et d'écriture dans des emplacements spécifiques, vous devrez activer la Configuration Globale du Cluster. À partir de là, vous pouvez choisir exactement où vous souhaitez placer chacun de vos clusters et configurer les correspondances entre le pays de l'utilisateur et le serveur qu'il utilisera pour l'accès aux données.
Fournisseur de services cloud et région
Quel que soit le type de déploiement que vous avez choisi, vous devrez sélectionner le fournisseur de cloud, ainsi que la région spécifique dans laquelle vous souhaitez déployer votre cluster. Vous pouvez instancier des clusters MongoDB sur n'importe lequel des trois principaux fournisseurs de cloud. Si vous souhaitez garantir une disponibilité encore meilleure, vous pouvez déployer chaque nœud de votre cluster dans différentes régions, voire sur différents clouds. Pour ce faire, vous devrez activer l’option Multi-Cloud, Multi-Région et Isolation des Charges de Travail. À partir de là, vous pourrez configurer le nombre et les types de nœuds (éligibles, en lecture seule ou analytiques) qui feront partie de votre replica set.
Niveau de cluster
Maintenant que vous avez choisi une région et un fournisseur de cloud, vous devrez choisir quel niveau vous souhaitez utiliser pour les nœuds de votre cluster. Cette configuration aura l'impact le plus significatif sur le prix de votre cluster. Un large éventail d'options est disponible, et vous pouvez en outre ajuster chacune d'elles. Tenez compte de la quantité de CPU et de RAM dont vous aurez besoin. Vos besoins en ressources vous aideront à identifier le niveau approprié pour votre cluster.
Vous pouvez ensuite affiner la configuration du cluster en ajustant la taille du stockage, en activant les options de mise à l'échelle automatique et en déterminant le nombre d'IOPS nécessaires. Sur les niveaux supérieurs d'AWS (M40+), vous pourrez également choisir la classe de serveurs (faible-CPU, général ou NVMe SSD local), ce qui influencera également le nombre de processeurs, la RAM et la capacité de stockage.
Paramètres supplémentaires
Dans ce dernier onglet, vous trouverez de nombreux services supplémentaires que vous pouvez ajouter à votre cluster. La première option est la version MongoDB que vous souhaitez utiliser pour MongoDB. Vous aurez alors également la possibilité d’activer ou de désactiver les sauvegardes automatiques. Vous pouvez également développer les paramètres supplémentaires, ce qui vous fournira des options plus avancées telles que le sharding de votre cluster, l'ajout du BI connector et la gestion de vos clés de chiffrement.
La plupart des paramètres que vous définissez peuvent être modifiés à la demande dans le futur, ce qui est une capacité puissante à mesure que votre application évolue.
Création d'un cluster MongoDB dans différents environnements
Si une instance de MongoDB basée sur le cloud n'est pas envisageable pour vous, ou si vous devez exécuter un cluster sur votre infrastructure, vous pouvez installer MongoDB sur les systèmes d'exploitation pris en charge. En plus de MongoDB lui-même, il est recommandé d'installer Ops Manager ou Cloud Manager pour gérer vos clusters.
Créez un cluster MongoDB sous Linux (Ubuntu, CoreOS)
Pour créer un cluster MongoDB sous Linux, vous aurez besoin de trois instances de MongoDB en cours d'exécution. Ces instances doivent pouvoir communiquer entre elles sur un réseau local.
Vous pouvez trouver les instructions détaillées pour définir votre cluster sous Linux dans la documentation.
Créer un cluster MongoDB avec Docker
Si vous souhaitez installer une instance locale de MongoDB dans votre environnement ou définir un environnement de développement éphémère que vous pouvez partager avec vos coéquipiers, vous pourriez envisager d'utiliser Docker. Vous pouvez le faire en démarrant trois instances locales de MongoDB dans Docker, puis en suivant les instructions de la documentation.
Étapes suivantes
Maintenant que vous savez comment créer et définir votre cluster, vous pourriez vouloir en savoir plus sur la topologie de cluster la plus adaptée à vos besoins. Pourquoi ne pas poursuivre votre apprentissage avec la vidéo topologie de configuration de cluster sur MongoDB University ? Une fois que vous êtes à l'aise avec toutes les configurations possibles pour votre cluster MongoDB, vous pouvez essayer MongoDB Atlas gratuitement. Avec votre cluster défini selon vos préférences, vous pouvez désormais garantir que vos données seront accessibles à vos utilisateurs et que vous pourrez répartir dès que vous en aurez besoin.



