Plan du cours
Module 1 : Introduction et architecture de MongoDB (4h)
Contenu :
- Histoire et écosystème MongoDB.
- Cas d'utilisation typiques, avantages et inconvénients.
- Architecture générale : instances, processus et configuration.
Pratique :
- Exploration interactive : connexion via Mongo Shell/CLI.
- Création d'une base de données et d'une collection d'exemple.
Module 2 : Installation et configuration initiale (6h)
Contenu :
- Besoins en matériel et en ressources.
- Installation sous Linux (deb/rpm), Windows et macOS.
- Fichiers de configuration YAML (mongod.conf) : dataDir, logDir, bindIp, port.
- Options de démarrage et gestion des services (systemd/service).
Pratique :
- Déploiement d'instances sur des machines virtuelles locales ou dans des conteneurs Docker.
- Ajustement des configurations pour le développement par rapport à la production.
- Vérification de la connectivité distante sécurisée.
Module 3 : Modélisation des données et opérations de base (5h)
Contenu :
- Documents BSON, collections, bases de données.
- Modélisation : intégration (embedding) versus référence ; schémas de conception de données.
- Index de base (introduits précédemment).
- Opérations avec Mongo Shell et exemples de scripts utilisant des pilotes (drivers).
Pratique :
- Modélisation d'un cas d'utilisation : système d'inventaire ou de facturation.
- Mise en œuvre des opérations CRUD.
- Validation de schéma à l'aide de JSON Schema dans MongoDB.
Module 4 : Index et performance (4h)
Contenu :
- Index simples, composés, multi-clés, texte et géospatiaux.
- Utilisation de explain() et analyse des métriques.
- Impact des index sur les performances d'écriture et la mémoire.
Pratique :
- Création de collections avec des données de test.
- Test de requêtes avec et sans index ; interprétation de explain().
- Ajustement des index en fonction des modèles d'accès.
Module 5 : Sécurité (5h)
Contenu :
- Mécanismes d'authentification : SCRAM, LDAP/Kerberos (introduction).
- Définition des utilisateurs et des rôles personnalisés.
- TLS/SSL entre les clients et les serveurs.
- Chiffrement au repos : configuration des clés.
- Journalisation d'audit de base.
Pratique :
- Création d'utilisateurs avec les privilèges minimaux requis.
- Configuration de TLS sur des instances locales.
- Vérification des tentatives d'accès non autorisées et examen des journaux d'audit.
Module 6 : Réplication et haute disponibilité (6h)
Contenu :
- Concepts de réplication : Primaire, Secondaire, oplog.
- Configuration de la réplica set : initiation, appartenance, arbitrage.
- Surveillance de l'état et des élections.
- Maintenance : ajout/suppression de membres, réattribution des priorités.
Pratique :
- Déploiement d'une réplica set à trois nœuds (locale ou sur machines virtuelles).
- Simulation d'une défaillance du nœud primaire et observation de la bascule (failover).
- Reconstruction des nœuds secondaires et récupération des réplicas.
Module 7 : Partitionnement et évolutivité horizontale (6h)
Contenu :
- Concepts de partitionnement : clé de partitionnement, serveurs de configuration, routeur mongos.
- Sélection de la clé de partitionnement et risques associés.
- Déploiement des serveurs de configuration, des shards et de mongos.
- Équilibrage et migration des chunks.
Pratique :
- Configuration d'un cluster partitionné simple.
- Insertion de données à grande échelle et observation de la distribution.
- Introduction de modifications de la clé de partitionnement et compréhension des limites.
Module 8 : Sauvegarde, restauration et reprise après sinistre (4h)
Contenu :
- Outils natifs : mongodump/mongorestore, instantanés du système de fichiers.
- Sauvegardes dans les réplica sets et les clusters partitionnés.
- Utilisation de base de Cloud Manager/Ops Manager pour la sauvegarde.
- Planification de la reprise après sinistre (DR) : RTO, RPO.
Pratique :
- Réalisation de sauvegardes et restaurations sur une base de test.
- Simulation d'une défaillance et récupération à partir d'une sauvegarde.
- Conception d'un plan de reprise après sinistre pour un cas hypothétique.
Module 9 : Surveillance et alertes (4h)
Contenu :
- Outils : mongostat, mongotop, surveillance Cloud Manager/Atlas.
- Intégration avec Prometheus + Grafana (concepts et exemples).
- Métriques clés : CPU, mémoire, E/I, taille de l'oplog, latences.
- Alertes : définition des seuils et des notifications.
Pratique :
- Déploiement d'un agent de surveillance local ou basé sur des conteneurs.
- Mise en place de tableaux de bord de base avec des métriques d'exemple.
- Simulation de charge et observation des alertes.
Module 10 : Maintenance, mises à jour et bonnes pratiques (4h)
Contenu :
- Stratégies de mise à niveau pour les réplica sets et les clusters partitionnés.
- Nettoyage des données, compactage, vérifications d'intégrité.
- Examen des journaux et audits réguliers.
- Automatisation des tâches courantes (scripts, cronjobs, Ansible, Terraform).
- Politiques de rétention et d'archivage des données.
Pratique :
- Simulation de mises à niveau mineures et majeures dans un environnement contrôlé.
- Création de scripts d'automatisation pour la sauvegarde et la surveillance.
- Élaboration d'une liste de contrôle de maintenance périodique.
Résumé et prochaines étapes
Pré requis
- Une compréhension des concepts généraux des bases de données et des structures de données.
- Une familiarité avec l'utilisation de la ligne de commande sous Linux.
- Des connaissances de base en réseau et en administration système.
Public cible
- Administrateurs de bases de données et ingénieurs système travaillant avec MongoDB.
- Équipes DevOps et infrastructure déployant et maintenant des environnements MongoDB.
- Développeurs intéressés par les mécanismes internes de MongoDB et les bonnes pratiques de déploiement.
Nos clients témoignent (2)
Le rythme de la parole et des explications.
Marko Skokovic - PWO by Lottomatica Serbia
Formation - MongoDB for Administrators
Traduction automatique
Sir Jose est cool et explique chaque détail des commandes. Nous apprécions le temps qu'il prend pour partager ses connaissances avec nous, et cela montre vraiment qu'il est un expert dans ce domaine.
Almer Laureta - Asialink Finance Corporation
Formation - MongoDB for Developers
Traduction automatique