Course Outline
Module 1: Introduction and MongoDB Architecture (4h)
Content:
- Historical context and the MongoDB ecosystem.
- Typical use cases, along with associated advantages and limitations.
- General architecture: instances, processes, and configuration structures.
Practice:
- Interactive exploration: connecting via Mongo Shell/CLI.
- Creating a sample database and collection.
Module 2: Installation and Initial Configuration (6h)
Content:
- Hardware and resource requirements.
- Installation procedures on Linux (deb/rpm), Windows, and macOS.
- Understanding YAML configuration files (mongod.conf): dataDir, logDir, bindIp, port.
- Startup options and managing services via systemd/service.
Practice:
- Deploying instances on local virtual machines or Docker containers.
- Tuning configurations for development versus production environments.
- Verifying secure remote connectivity.
Module 3: Data Modeling and Basic Operations (5h)
Content:
- BSON documents, collections, and databases.
- Modeling strategies: embedding versus referencing; common data design patterns.
- Introduction to basic indexes.
- Performing operations with the Mongo Shell and scripting examples using drivers.
Practice:
- Modeling a specific use case, such as an inventory or billing system.
- Implementing CRUD (Create, Read, Update, Delete) operations.
- Applying schema validation using JSON Schema in MongoDB.
Module 4: Indexes and Performance (4h)
Content:
- Types of indexes: simple, compound, multikey, text, and geospatial.
- Utilising explain() and analysing performance metrics.
- Assessing the impact of indexes on write performance and memory usage.
Practice:
- Creating collections populated with test data.
- Testing queries with and without indexes; interpreting explain() output.
- Adjusting indexes based on observed access patterns.
Module 5: Security (5h)
Content:
- Authentication mechanisms: SCRAM, and an introduction to LDAP/Kerberos.
- Defining users and creating custom roles.
- Implementing TLS/SSL between clients and servers.
- At-rest encryption: key configuration strategies.
- Basic audit logging practices.
Practice:
- Creating users with minimal necessary privileges.
- Configuring TLS in local instances.
- Testing unauthorized access attempts and reviewing audit logs.
Module 6: Replication and High Availability (6h)
Content:
- Core replication concepts: Primary, Secondary, and oplog.
- Replica set configuration: initiation, membership, and arbitration.
- Monitoring status and observing elections.
- Maintenance tasks: adding/removing members and reassigning priorities.
Practice:
- Deploying a three-node replica set (locally or on VMs).
- Simulating primary failure and observing the failover process.
- Rebuilding secondary nodes and recovering replicas.
Module 7: Sharding and Horizontal Scalability (6h)
Content:
- Sharding concepts: shard key, config servers, and the mongos router.
- Shard key selection strategies and associated risks.
- Deploying config servers, shards, and mongos instances.
- Rebalancing data and managing chunk migration.
Practice:
- Configuring a simple sharded cluster.
- Inserting large-scale data to observe distribution patterns.
- Exploring the implications of shard key changes and understanding limitations.
Module 8: Backup, Restore, and Disaster Recovery (4h)
Content:
- Native tools: mongodump/mongorestore and filesystem snapshots.
- Backup strategies for replica sets and sharded clusters.
- Basic usage of Cloud Manager/Ops Manager for backup operations.
- Disaster Recovery (DR) planning: defining RTO and RPO.
Practice:
- Performing backup and restore operations on a test database.
- Simulating system failure and recovering from backup.
- Designing a DR plan for a hypothetical scenario.
Module 9: Monitoring and Alerts (4h)
Content:
- Monitoring tools: mongostat, mongotop, and Cloud Manager/Atlas Monitoring.
- Integration with Prometheus and Grafana (concepts and practical examples).
- Key metrics: CPU, memory, I/O, oplog size, and latencies.
- Alert configuration: defining thresholds and notification rules.
Practice:
- Deploying a local or container-based monitoring agent.
- Setting up basic dashboards with sample metrics.
- Simulating load conditions and observing alert triggers.
Module 10: Maintenance, Upgrades, and Best Practices (4h)
Content:
- Upgrade strategies for replica sets and sharded clusters.
- Data cleanup, compaction, and integrity checks.
- Reviewing logs and conducting regular audits.
- Automating routine tasks using scripts, cronjobs, Ansible, and Terraform.
- Establishing data retention and archiving policies.
Practice:
- Simulating minor and major upgrades in a controlled environment.
- Creating automation scripts for backup and monitoring tasks.
- Developing a periodic maintenance checklist.
Summary and Next Steps
Requirements
- A solid understanding of general database concepts and data structures.
- Proficiency with Linux command-line operations.
- Foundational knowledge of networking principles and system administration.
Target Audience
- Database administrators and system engineers working with MongoDB.
- DevOps and infrastructure teams responsible for deploying and maintaining MongoDB environments.
- Developers seeking to understand MongoDB internals and deployment best practices.
Testimonials (2)
The pace of talking and explanation.
Marko Skokovic - PWO by Lottomatica Serbia
Course - MongoDB for Administrators
Sir Jose is cool and explains every detail of the commands. We appreciate the time he takes to share his knowledge with us, and it truly shows that he is an expert in this field.