Course Outline
Module 1: Introduction and MongoDB Architecture (4h)
Key Concepts:
- Historical context and the MongoDB ecosystem.
- Typical use cases, along with advantages and limitations.
- General architecture: instances, processes, and configuration.
Practical Application:
- Interactive exploration via the Mongo Shell or CLI.
- Creation of a sample database and collection.
Module 2: Installation and Initial Configuration (6h)
Key Concepts:
- Hardware and resource requirements.
- Installation procedures on Linux (deb/rpm), Windows, and macOS.
- YAML configuration files (mongod.conf): including dataDir, logDir, bindIp, and port settings.
- Startup options and management via systemd or services.
Practical Application:
- Deploying instances on local VMs or Docker containers.
- Tailoring configurations for development versus production environments.
- Verifying secure remote connectivity.
Module 3: Data Modeling and Basic Operations (5h)
Key Concepts:
- BSON documents, collections, and databases.
- Modeling strategies: embedding versus referencing, and data design patterns.
- Basic indexes (revisiting foundational concepts).
- Operations using the Mongo Shell and scripting examples with drivers.
Practical Application:
- Modeling a specific use case, such as an inventory or billing system.
- Implementing CRUD operations.
- Applying schema validation using JSON Schema in MongoDB.
Module 4: Indexes and Performance (4h)
Key Concepts:
- Types of indexes: simple, compound, multikey, text, and geospatial.
- Utilizing explain() and analyzing performance metrics.
- The impact of indexes on write performance and memory usage.
Practical Application:
- Creating collections populated with test data.
- Testing queries with and without indexes; interpreting explain() outputs.
- Optimizing indexes based on observed access patterns.
Module 5: Security (5h)
Key Concepts:
- Authentication mechanisms: SCRAM, LDAP/Kerberos (introduction).
- Defining users and establishing custom roles.
- Implementing TLS/SSL between clients and servers.
- Encryption at rest: key configuration.
- Basic audit logging practices.
Practical Application:
- 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)
Key Concepts:
- Core replication concepts: Primary, Secondary nodes, and the oplog.
- Replica set configuration: initiation, membership, and arbitration.
- Monitoring cluster status and elections.
- Maintenance tasks: adding/removing members and reassigning priorities.
Practical Application:
- Deploying a three-node replica set (locally or on VMs).
- Simulating primary failure to observe failover behavior.
- Rebuilding secondary nodes and recovering replicas.
Module 7: Sharding and Horizontal Scalability (6h)
Key Concepts:
- Sharding fundamentals: shard key, config servers, and the mongos router.
- Shard key selection and associated risks.
- Deploying config servers, shards, and mongos instances.
- Rebalancing and chunk migration processes.
Practical Application:
- Configuring a simple sharded cluster.
- Inserting large-scale data to observe distribution patterns.
- Exploring shard key modifications and understanding their limitations.
Module 8: Backup, Restore, and Disaster Recovery (4h)
Key Concepts:
- Native tools: mongodump/mongorestore and filesystem snapshots.
- Backup strategies for replica sets and sharded clusters.
- Using Cloud Manager/Ops Manager for backup management.
- Disaster Recovery (DR) planning: defining RTO and RPO.
Practical Application:
- Executing backup and restore operations on a test database.
- Simulating failure scenarios and recovering from backups.
- Designing a DR plan for a hypothetical scenario.
Module 9: Monitoring and Alerts (4h)
Key Concepts:
- Monitoring tools: mongostat, mongotop, and Cloud Manager/Atlas Monitoring.
- Integration with Prometheus and Grafana (concepts and examples).
- Key metrics to track: CPU, memory, I/O, oplog size, and latencies.
- Alerting strategies: defining thresholds and notifications.
Practical Application:
- Deploying a local or container-based monitoring agent.
- Setting up basic dashboards with sample metrics.
- Simulating system load to observe alert triggers.
Module 10: Maintenance, Upgrades, and Best Practices (4h)
Key Concepts:
- 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, or Terraform.
- Establishing data retention and archiving policies.
Practical Application:
- 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.
- Familiarity with utilizing the Linux command line.
- Foundational knowledge of networking 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 interested in MongoDB internals and best practices for deployment.
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.