Sécurité, performance et scalabilité
Sécurité, performance et scalabilité
Se connecter pour s'inscrireVotre progression
0 / 0 étapes complétées
0
Syllabus
-
-
Objectifs
-
Validations de compétences
-
Public cible
Aucun public cible spécifié pour ce module.
-
Besoins techniques
-
Prérequis
- Aucun prérequis
-
Niveau
-
Historique du module
Aucune action enregistrée
Sécurité, performance et scalabilité
-
Sécurité et sujets avancés
-
Sécurité dans MongoDB
Contrôle d’accès et authentification
- RBAC (Role-Based Access Control) : gestion fine des droits par rôle (lecture, écriture, admin…)
- Création d’utilisateurs, attribution de rôles.
Chiffrement
- Chiffrement des données au repos (at rest) :
encryptionAtRest - Chiffrement en transit (TLS/SSL) : sécurise les connexions réseau.
Protection contre les injections NoSQL
- Valider et nettoyer les entrées utilisateur.
- Utiliser des requêtes paramétrées.
-
Optimisation des performances
Analyse des requêtes
- Utilisation de
explain()pour comprendre le plan d’exécution. - Détection des requêtes lentes avec MongoDB Profiler.
Indexation avancée
- Index composés, textuels, géospatiaux.
- Optimiser la structure des index pour les requêtes fréquentes.
Paramètres serveur
- Ajuster la taille de la mémoire, le cache, le nombre de connexions pour la production.
- Utilisation de
-
Administration et maintenance
Sauvegardes et restaurations
mongodumpetmongorestorepour exporter/importer des bases.
Monitoring
- MongoDB Ops Manager : supervision, alertes, automatisation.
- Prometheus : monitoring avancé, intégration avec Grafana.
Automatisation
- MongoDB Atlas CLI : gestion cloud, déploiements, backups, scaling automatique.
-
MongoDB Atlas et cloud
Déploiement cloud
- Création de clusters en quelques clics, multi-cloud, multi-région.
Fonctionnalités avancées
- Serverless Instances, Data Lake, sauvegardes automatiques, scaling dynamique.
-
Quiz interactif
-
-
Scalabilité et haute disponibilité
Scalabilité et haute disponibilité avec MongoDB
Sharding (partitionnement horizontal)
- Permet de répartir les données sur plusieurs serveurs (shards) pour gérer des volumes massifs.
- Chaque shard contient une partie des données, le balancement est automatique.
- Types de sharding : ranged (par plage de valeurs), hashed (par hash de la clé de sharding).
- Le mongos route les requêtes vers les bons shards.
# Ex : création d’un sharded cluster (simplifié) sh.enableSharding("maDB") sh.shardCollection("maDB.utilisateurs", { "_id": "hashed" })Réplication (Replica Set)
- Assure la tolérance aux pannes et la haute disponibilité.
- Un Replica Set = 1 primaire (écriture), plusieurs secondaires (lecture, backup).
- Failover automatique en cas de panne du primaire.
# Ex : initialisation d’un Replica Set rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "mongo1:27017" }, { _id: 1, host: "mongo2:27017" }, { _id: 2, host: "mongo3:27017" } ] })Indexation avancée
- Optimise les requêtes sur de gros volumes.
- Types : index composé, textuel (recherche plein texte), géospatial.
- Exemple :
db.utilisateurs.createIndex({ nom: 1, age: -1 })
Lab : Cluster shardé local avec Docker
- Télécharge le repo Docker MongoDB Sharded Cluster.
- Lance le cluster avec
docker-compose up -d - Connecte-toi au mongos et vérifie le sharding :
sh.status() - Teste la tolérance aux pannes en arrêtant un conteneur shard ou replica.
Quiz interactif
Exercices, examens et projets
Exercice
Atelier MongoDB
Concevoir un schéma documentaire et manipuler une collection.
Obligatoire Consulter
Examen
Examen MongoDB
Évaluer les requêtes, agrégations, indexations et transactions.
Obligatoire Consulter
Projet
Projet MongoDB
Développer une API documentaire avec données de démonstration.
Livrables :
- Schéma
- API
- Jeu de données