Εξέλιξη Κομματιού
Ενότητα 1: Εισαγωγή και Αρχιτεκτονική της MongoDB (4 ώρες)
Περιεχόμενο:
- Ιστορία και οικοσύστημα MongoDB
- Τυπικές περιπτώσεις χρήσης, πλεονεκτήματα και μειονεκτήματα
- Γενική αρχιτεκτονική: διεργασίες, process και ρυθμίσεις
Πρακτική:
- Διαδραστική εξερεύνηση: σύνδεση με Mongo Shell/CLI
- Δημιουργία δείγματος βάσης και συλλογής
Ενότητα 2: Εγκατάσταση και Αρχική Ρύθμιση (6 ώρες)
Περιεχόμενο:
- Απαιτήσεις υλικού και πόρων
- Εγκατάσταση σε Linux (deb/rpm), Windows και macOS
- Αρχεία ρυθμίσεων YAML (mongod.conf): dataDir, logDir, bindIp, port
- Επιλογές εκκίνησης και διαχείριση μέσω systemd/υπηρεσιών
Πρακτική:
- Ανάπτυξη διεργασιών σε τοπικά VM ή containers Docker
- Προσαρμογή ρυθμίσεων για ανάπτυξη έναντι παραγωγής
- Επαλήθευση ασφαλούς απομακρυσμένης συνδεσιμότητας
Ενότητα 3: Μοντελοποίηση Δεδομένων και Βασικές Λειτουργίες (5 ώρες)
Περιεχόμενο:
- Έγγραφα BSON, συλλογές, βάσεις δεδομένων
- Μοντελοποίηση: ενσωμάτωση έναντι αναφοράς· πρότυπα σχεδιασμού δεδομένων
- Βασικά ευρετήρια (εισαγωγή νωρίτερα)
- Λειτουργίες με Mongo Shell και παραδείγματα δέσμης ενεργειών χρησιμοποιώντας drivers
Πρακτική:
- Μοντελοποίηση μιας περίπτωσης χρήσης: σύστημα απογραφής ή χρέωσης
- Υλοποίηση λειτουργιών CRUD
- Επικύρωση σχήματος με JSON Schema στη MongoDB
Ενότητα 4: Ευρετήρια και Απόδοση (4 ώρες)
Περιεχόμενο:
- Απλά, σύνθετα, πολλαπλών κλειδιών, κειμένου και γεωχωρικά ευρετήρια
- Χρήση του explain() και ανάλυση μετρικών
- Επίδραση των ευρετηρίων στην απόδοση εγγραφής και τη μνήμη
Πρακτική:
- Δημιουργία συλλογών με δεδομένα δοκιμής
- Δοκιμή ερωτημάτων με και χωρίς ευρετήρια· ερμηνεία του explain()
- Προσαρμογή ευρετηρίων βάσει προτύπων πρόσβασης
Ενότητα 5: Ασφάλεια (5 ώρες)
Περιεχόμενο:
- Μηχανισμοί αυθεντικοποίησης: SCRAM, LDAP/Kerberos (εισαγωγικά)
- Ορισμός χρηστών και προσαρμοσμένων ρόλων
- TLS/SSL μεταξύ πελατών και διακομιστών
- Κρυπτογράφηση εν ηρεμία: ρύθμιση κλειδιών
- Βασική καταγραφή ελέγχου
Πρακτική:
- Δημιουργία χρηστών με ελάχιστα δικαιώματα
- Διαμόρφωση TLS σε τοπικές διεργασίες
- Επαλήθευση μη εξουσιοδοτημένης πρόσβασης και ανασκόπηση αρχείων ελέγχου
Ενότητα 6: Αντιγραφή και Υψηλή Διαθεσιμότητα (6 ώρες)
Περιεχόμενο:
- Έννοιες αντιγραφής: Πρωτεύον, Δευτερεύον, oplog
- Διαμόρφωση replica set: έναρξη, συμμετοχή, διαιτησία
- Παρακολούθηση κατάστασης και εκλογές
- Συντήρηση: προσθήκη/αφαίρεση μελών, ανακατανομή προτεραιοτήτων
Πρακτική:
- Ανάπτυξη replica set τριών κόμβων (τοπικά ή σε VM)
- Προσομοίωση αποτυχίας του Πρωτεύοντος και παρατήρηση της ανακατεύθυνσης
- Αναδόμηση δευτερευόντων κόμβων και ανάκτηση αντιγράφων
Ενότητα 7: Κατανομή Τμημάτων και Οριζόντια Επεκτασιμότητα (6 ώρες)
Περιεχόμενο:
- Έννοιες sharding: κλειδί κατανομής (shard key), config servers, δρομολογητής mongos
- Επιλογή κλειδιού κατανομής και σχετικοί κίνδυνοι
- Ανάπτυξη config servers, shards και mongos
- Εξισορρόπηση και μετανάστευση chunks
Πρακτική:
- Διαμόρφωση ενός απλού sharded cluster
- Εισαγωγή μεγάλου όγκου δεδομένων και παρατήρηση της κατανομής
- Εισαγωγή αλλαγών στο κλειδί κατανομής και κατανόηση των περιορισμών
Ενότητα 8: Αντίγραφα Ασφαλείας, Επαναφορά και Ανάκαμψη από Καταστροφή (4 ώρες)
Περιεχόμενο:
- Εγγενή εργαλεία: mongodump/mongorestore, στιγμιότυπα συστήματος αρχείων
- Αντίγραφα ασφαλείας σε replica sets και sharded clusters
- Βασική χρήση του Cloud Manager/Ops Manager για αντίγραφα ασφαλείας
- Σχεδιασμός ανάκαμψης από καταστροφή (DR): RTO, RPO
Πρακτική:
- Εκτέλεση αντιγράφου ασφαλείας και επαναφοράς σε βάση δοκιμών
- Προσομοίωση αποτυχίας και ανάκτηση από αντίγραφο ασφαλείας
- Σχεδίαση ενός σχεδίου DR για μια υποθετική περίπτωση
Ενότητα 9: Παρακολούθηση και Ειδοποιήσεις (4 ώρες)
Περιεχόμενο:
- Εργαλεία: mongostat, mongotop, Cloud Manager/Atlas Monitoring
- Ενσωμάτωση με Prometheus + Grafana (έννοιες και παραδείγματα)
- Βασικές μετρικές: CPU, μνήμη, I/O, μέγεθος oplog, καθυστερήσεις
- Ειδοποιήσεις: καθορισμός ορίων και ενημερώσεων
Πρακτική:
- Ανάπτυξη ενός τοπικού ή container-based πράκτορα παρακολούθησης
- Ρύθμιση βασικών dashboards με δείγματα μετρικών
- Προσομοίωση φορτίου και παρατήρηση ειδοποιήσεων
Ενότητα 10: Συντήρηση, Αναβαθμίσεις και Βέλτιστες Πρακτικές (4 ώρες)
Περιεχόμενο:
- Στρατηγικές αναβάθμισης για replica sets και sharded clusters
- Καθαρισμός δεδομένων, συμπίεση, έλεγχοι ακεραιότητας
- Ανασκόπηση αρχείων καταγραφής και τακτικοί έλεγχοι
- Αυτοματοποίηση συνήθων εργασιών (scripts, cronjobs, Ansible, Terraform)
- Πολιτικές διατήρησης και αρχειοθέτησης δεδομένων
Πρακτική:
- Προσομοίωση μικρών και μεγάλων αναβαθμίσεων σε ελεγχόμενο περιβάλλον
- Δημιουργία scripts αυτοματισμού για αντίγραφα ασφαλείας και παρακολούθηση
- Ανάπτυξη μιας λίστας περιοδικής συντήρησης
Σύνοψη και Επόμενα Βήματα
Απαιτήσεις
- Κατανόηση γενικών εννοιών βάσεων δεδομένων και δομών δεδομένων
- Εξοικείωση με τη χρήση της γραμμής εντολών Linux
- Βασικές γνώσεις δικτύωσης και διαχείρισης συστημάτων
Κοινό στο οποίο απευθύνεται
- Διαχειριστές βάσεων δεδομένων και μηχανικοί συστημάτων που εργάζονται με MongoDB
- Ομάδες DevOps και υποδομών που εγκαθιστούν και συντηρούν περιβάλλοντα MongoDB
- Προγραμματιστές που ενδιαφέρονται για τα εσωτερικά της MongoDB και τις βέλτιστες πρακτικές ανάπτυξης
Σχόλια (2)
Το ρυθμός του λόγου και της εξήγησης.
Marko Skokovic - PWO by Lottomatica Serbia
Κομμάτι - MongoDB for Administrators
Μηχανική Μετάφραση
Ο Σερ Τζόζ είναι ωραίος και εξηγεί κάθε λεπτομέρεια των εντολών. Εκτιμούμε το χρόνο που διαθέτει να μοιράζεται τη γνώση του μαζί μας, και αυτό αποδεικνύει πραγματικά ότι είναι ένας ειδικός σε αυτό το πεδίο.
Almer Laureta - Asialink Finance Corporation
Κομμάτι - MongoDB for Developers
Μηχανική Μετάφραση