E-shop από τη Θεσσαλονίκη
Ο κατάλογος με διαφορετικά attributes ανά κατηγορία μένει στο MongoDB, ενώ η διαθεσιμότητα και τα καλάθια περνούν από Redis, ώστε οι σελίδες λίστας να μη χτυπούν την κύρια βάση σε κάθε προβολή.
Replica set σε τρεις κόμβους, δοκιμασμένη εναλλαγή
Managed MongoDB στην Ελλάδα με Redis δίπλα, και τα δύο υπό τη λειτουργία μας: replica set σε τρεις κόμβους, authentication και TLS, cache με όριο μνήμης και πολιτική eviction, persistence και δοκιμασμένη επαναφορά. Κατάλληλο για εφαρμογές με schema που αλλάζει συχνά και για κάθε API που χρειάζεται γρήγορες απαντήσεις σε μεταβλητή κίνηση.
Είναι δύο διαφορετικοί ρόλοι, άρα δύο διαφορετικές ρυθμίσεις. Το MongoDB παίρνει replica set σε τρεις κόμβους, indexes ταιριασμένα στα πραγματικά queries, schema validation όπου χρειάζεται και backup με δοκιμασμένη επαναφορά. Το Redis παίρνει όριο μνήμης, πολιτική eviction ανάλογα με τον ρόλο, persistence με AOF ή RDB και Sentinel για εναλλαγή. Τα παρακολουθούμε μαζί, γιατί μια πτώση cache φαίνεται αμέσως ως πίεση στην κύρια βάση.
Τα περισσότερα περιστατικά με MongoDB και Redis δεν προέρχονται από την κίνηση, αλλά από τις προεπιλεγμένες ρυθμίσεις που έμειναν ανέγγιχτες μετά την εγκατάσταση. Γι' αυτό εφαρμόζουμε την ίδια λίστα σε κάθε παράδοση και τη σημειώνουμε στη δική σας τεκμηρίωση. Ένα instance εκτεθειμένο δημόσια, χωρίς κωδικό, εντοπίζεται από αυτόματα scanners μέσα σε λίγες ώρες από την εκκίνηση, οπότε η απομόνωση δικτύου δεν είναι προαιρετική σε κανένα περιβάλλον.
Το Redis μπαίνει όταν η ίδια απάντηση υπολογίζεται χιλιάδες φορές: κατάλογοι προϊόντων, διαθεσιμότητα, καλάθια, rate limiting, ουρές επεξεργασίας. Το MongoDB μπαίνει όταν τα έγγραφα διαφέρουν μεταξύ τους και το schema αλλάζει από έκδοση σε έκδοση: κατάλογοι με μεταβλητά attributes, προφίλ πελατών, events, περιεχόμενο. Όταν τα δεδομένα έχουν αυστηρές σχέσεις και οικονομικά reports, σας το λέμε καθαρά: το PostgreSQL είναι η καλύτερη επιλογή.
Η διαχείριση μπαίνει στις μηνιαίες ώρες της συνδρομής: 1–8 ώρες σε VPS, 5–10 ώρες σε dedicated servers ανάλογα με το πλάνο και 10 ώρες σε GPU servers, στο cPanel 1 ώρα από το πλάνο Advanced και πάνω. Ζητούνται από τον πίνακα πελάτη, στις Υπηρεσίες DevOps, με προθεσμία που προτείνετε. Οι ώρες δεν μεταφέρονται τον επόμενο μήνα, οπότε τις προγραμματίζουμε: μια μετάβαση και hardening τον έναν μήνα, indexes και πολιτική cache τον άλλον. Πέρα από την ποσόστωση συνεχίζουμε, με ξεχωριστή τιμολόγηση.
Κάθε συνδρομή περιλαμβάνει μηνιαίες ώρες DevOps, Κυβερνοασφάλειας και Προγραμματισμού: 1 ώρα από το πακέτο cPanel Advanced και πάνω, 1–8 ώρες σε VPS και 5–10 ώρες σε αποκλειστικούς διακομιστές ανάλογα με το πλάνο και 10 ώρες σε GPU. Οι ώρες ζητούνται από τον πίνακα πελάτη, δεν μεταφέρονται στον επόμενο μήνα, και ό,τι ξεπερνά το όριο γίνεται δεκτό και χρεώνεται ξεχωριστά.
Ο κατάλογος με διαφορετικά attributes ανά κατηγορία μένει στο MongoDB, ενώ η διαθεσιμότητα και τα καλάθια περνούν από Redis, ώστε οι σελίδες λίστας να μη χτυπούν την κύρια βάση σε κάθε προβολή.
Τα ραντεβού και οι φάκελοι με μεταβλητή δομή μένουν στο MongoDB με πρόσβαση σε ιδιωτικό δίκτυο, ενώ το Redis κρατά sessions και rate limiting για το portal των ασθενών.
Οι τρέχουσες θέσεις των διανομέων και οι ουρές ανάθεσης περνούν από Redis με σύντομο TTL, ενώ το ιστορικό παραγγελιών μένει στο MongoDB, partitioned ανά περίοδο.
Ανοίγετε αίτημα στον πίνακα πελάτη, στις Υπηρεσίες DevOps, με τους τρέχοντες όγκους, τον τύπο κίνησης και την προθεσμία που σας βολεύει.
Κοιτάμε queries, μνήμη και τον τρόπο που η εφαρμογή χρησιμοποιεί το cache, και συμφωνούμε τι μπαίνει στις ώρες που περιλαμβάνει ο μήνας.
Στήνουμε replica set, authentication, πολιτικές μνήμης και backup, και παρακολουθούμε το hit rate και τη λανθάνουσα καθυστέρηση που αντιλαμβάνεται η εφαρμογή.
Παίρνετε τις ρυθμίσεις, τους κανόνες πρόσβασης, το πλάνο backup και τα βήματα εναλλαγής, μαζί με το αποτέλεσμα της δοκιμής επαναφοράς.
Το Redis είναι μια in-memory βάση, χρησιμοποιείται για cache, sessions, ουρές επεξεργασίας και rate limiting. Κρατά τα δεδομένα στη RAM, άρα απαντά πολύ γρήγορα, αλλά χρειάζεται σωστά ρυθμισμένο όριο μνήμης, πολιτική eviction και persistence, ώστε να μη χάνει δεδομένα σε επανεκκίνηση.
Το MongoDB ταιριάζει όταν ο κατάλογος προϊόντων έχει πολύ διαφορετικά attributes ανά κατηγορία και αλλάζει συχνά. Το PostgreSQL ταιριάζει καλύτερα όταν έχετε αυστηρές σχέσεις μεταξύ παραγγελιών, πελατών και αποθέματος και χρειάζεστε οικονομικά reports με ακρίβεια.
Εξαρτάται από το dataset που κρατάτε στο cache και από την πολιτική eviction που επιλέγετε. Ξεκινάμε μετρώντας το πραγματικό working set της εφαρμογής σας και ρυθμίζουμε το maxmemory με ασφαλές περιθώριο, αντί να μαντεύουμε ένα νούμερο εκ των προτέρων.
Ένα σωστό replica set έχει τρεις κόμβους σε ιδιωτικό δίκτυο, με authentication, TLS και αυτόματη εκλογή νέου primary όταν ο τρέχων πέσει. Το στήνουμε, δοκιμάζουμε την εναλλαγή στην πράξη και τεκμηριώνουμε τι σημάδια αφήνει στα logs, ώστε η ομάδα σας να το αναγνωρίζει αμέσως.
Χρειάζεστε VPS ή dedicated server. Το MongoDB απαιτεί έλεγχο πάνω στη διεργασία, τη μνήμη και το δίκτυο, πράγματα που δεν υπάρχουν σε shared hosting. Επιπλέον, ένα σωστό replica set έχει τρεις κόμβους, άρα προϋποθέτει αποκλειστικούς πόρους και ιδιωτικό δίκτυο μεταξύ τους.
Το σύνολο επιλέγει αυτόματα νέο primary και η εφαρμογή επανασυνδέεται μέσω του driver. Την εναλλαγή τη δοκιμάζουμε κατά την παράδοση, δεν την αφήνουμε απλώς ρυθμισμένη, και σημειώνουμε στην τεκμηρίωση τι ίχνη αφήνει στα logs.
Ελέγχουμε την έκθεση, βάζουμε authentication, TLS και ιδιωτικό δίκτυο, και ρυθμίζουμε replication και backup μέσα στις ώρες που περιλαμβάνει η συνδρομή σας.