Managed MongoDB και Redis στην Ελλάδα

Υπηρεσίες DevOps · NoSQL · Ελλάδα

Replica set σε τρεις κόμβους, δοκιμασμένη εναλλαγή

Managed MongoDB στην Ελλάδα με Redis δίπλα, και τα δύο υπό τη λειτουργία μας: replica set σε τρεις κόμβους, authentication και TLS, cache με όριο μνήμης και πολιτική eviction, persistence και δοκιμασμένη επαναφορά. Κατάλληλο για εφαρμογές με schema που αλλάζει συχνά και για κάθε API που χρειάζεται γρήγορες απαντήσεις σε μεταβλητή κίνηση.

  • Redis χωρίς public port, μόνο σε ιδιωτικό δίκτυο
  • Ώρες DevOps στη συνδρομή κάθε μήνα
  • VPS 1–8 ώρες/μήνα· dedicated 5–10 ώρες/μήνα ανάλογα με το πλάνο· GPU 10 ώρες/μήνα
    Ώρες που περιλαμβάνονται
  • Φρανκφούρτη, στην ΕΕ
    Datacenters
  • στα ελληνικά, με δωρεάν migration
    Υποστήριξη
  • σε EUR, με ΦΠΑ 24% διαχωρισμένο στο τιμολόγιο
    Χρέωση

Τι κάνουμε για το MongoDB και τι για το Redis

Είναι δύο διαφορετικοί ρόλοι, άρα δύο διαφορετικές ρυθμίσεις. Το MongoDB παίρνει replica set σε τρεις κόμβους, indexes ταιριασμένα στα πραγματικά queries, schema validation όπου χρειάζεται και backup με δοκιμασμένη επαναφορά. Το Redis παίρνει όριο μνήμης, πολιτική eviction ανάλογα με τον ρόλο, persistence με AOF ή RDB και Sentinel για εναλλαγή. Τα παρακολουθούμε μαζί, γιατί μια πτώση cache φαίνεται αμέσως ως πίεση στην κύρια βάση.

  • Indexes και projections αναθεωρημένα στα πραγματικά queries κίνησης
  • TTL σε collections για sessions, events και προσωρινές ουρές
  • Redis χωρισμένο ανά ρόλο: cache, ουρές, rate limiting
  • Alerting στο hit rate του cache και στη μνήμη που καταναλώνεται

Βέλτιστες πρακτικές που εφαρμόζουμε σε NoSQL

Τα περισσότερα περιστατικά με MongoDB και Redis δεν προέρχονται από την κίνηση, αλλά από τις προεπιλεγμένες ρυθμίσεις που έμειναν ανέγγιχτες μετά την εγκατάσταση. Γι' αυτό εφαρμόζουμε την ίδια λίστα σε κάθε παράδοση και τη σημειώνουμε στη δική σας τεκμηρίωση. Ένα instance εκτεθειμένο δημόσια, χωρίς κωδικό, εντοπίζεται από αυτόματα scanners μέσα σε λίγες ώρες από την εκκίνηση, οπότε η απομόνωση δικτύου δεν είναι προαιρετική σε κανένα περιβάλλον.

  • Replica set σε τρεις κόμβους, με εναλλαγή που δοκιμάζεται στην πράξη
  • Υποχρεωτικά authentication και TLS, bind μόνο στο ιδιωτικό δίκτυο
  • maxmemory και πολιτική eviction ορισμένα ρητά για κάθε instance
  • Persistence AOF ή RDB, μαζί με Sentinel ή Cluster ανάλογα με τον ρόλο
  • ACLs στο Redis και περιοδικές δοκιμές επαναφοράς από backup

Πού ταιριάζουν στη δική σας αρχιτεκτονική

Το Redis μπαίνει όταν η ίδια απάντηση υπολογίζεται χιλιάδες φορές: κατάλογοι προϊόντων, διαθεσιμότητα, καλάθια, rate limiting, ουρές επεξεργασίας. Το MongoDB μπαίνει όταν τα έγγραφα διαφέρουν μεταξύ τους και το schema αλλάζει από έκδοση σε έκδοση: κατάλογοι με μεταβλητά attributes, προφίλ πελατών, events, περιεχόμενο. Όταν τα δεδομένα έχουν αυστηρές σχέσεις και οικονομικά reports, σας το λέμε καθαρά: το PostgreSQL είναι η καλύτερη επιλογή.

  • Cache ανάγνωσης μπροστά από APIs με ανομοιόμορφη κίνηση
  • Ουρές επεξεργασίας για τιμολόγια, emails και reports
  • Έγγραφα με μεταβλητά attributes, χωρίς schema migrations σε κάθε κυκλοφορία

Οι ώρες που περιλαμβάνονται και πώς τις ζητάτε

Η διαχείριση μπαίνει στις μηνιαίες ώρες της συνδρομής: 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. Οι ώρες ζητούνται από τον πίνακα πελάτη, δεν μεταφέρονται στον επόμενο μήνα, και ό,τι ξεπερνά το όριο γίνεται δεκτό και χρεώνεται ξεχωριστά.

Περιπτώσεις χρήσης

E-shop από τη Θεσσαλονίκη

Ο κατάλογος με διαφορετικά attributes ανά κατηγορία μένει στο MongoDB, ενώ η διαθεσιμότητα και τα καλάθια περνούν από Redis, ώστε οι σελίδες λίστας να μη χτυπούν την κύρια βάση σε κάθε προβολή.

Δίκτυο ιατρικών ραντεβού

Τα ραντεβού και οι φάκελοι με μεταβλητή δομή μένουν στο MongoDB με πρόσβαση σε ιδιωτικό δίκτυο, ενώ το Redis κρατά sessions και rate limiting για το portal των ασθενών.

Πλατφόρμα παράδοσης από την Πάτρα

Οι τρέχουσες θέσεις των διανομέων και οι ουρές ανάθεσης περνούν από Redis με σύντομο TTL, ενώ το ιστορικό παραγγελιών μένει στο MongoDB, partitioned ανά περίοδο.

Πώς δουλεύουμε

  1. Ζητάτε το έργο από τον πίνακα

    Ανοίγετε αίτημα στον πίνακα πελάτη, στις Υπηρεσίες DevOps, με τους τρέχοντες όγκους, τον τύπο κίνησης και την προθεσμία που σας βολεύει.

  2. Ορίζουμε πεδίο και προθεσμία

    Κοιτάμε queries, μνήμη και τον τρόπο που η εφαρμογή χρησιμοποιεί το cache, και συμφωνούμε τι μπαίνει στις ώρες που περιλαμβάνει ο μήνας.

  3. Παραδίδουμε και επαληθεύουμε υπό κίνηση

    Στήνουμε replica set, authentication, πολιτικές μνήμης και backup, και παρακολουθούμε το hit rate και τη λανθάνουσα καθυστέρηση που αντιλαμβάνεται η εφαρμογή.

  4. Παραδίδουμε με τεκμηρίωση

    Παίρνετε τις ρυθμίσεις, τους κανόνες πρόσβασης, το πλάνο backup και τα βήματα εναλλαγής, μαζί με το αποτέλεσμα της δοκιμής επαναφοράς.

Τεχνολογίες

  • MongoDB
  • Redis
  • Redis Sentinel
  • Percona Backup for MongoDB
  • HAProxy
  • Prometheus
  • Grafana
  • WireGuard

Συχνές ερωτήσεις

  • Τι κάνει το Redis σε μια web εφαρμογή;

    Το Redis είναι μια in-memory βάση, χρησιμοποιείται για cache, sessions, ουρές επεξεργασίας και rate limiting. Κρατά τα δεδομένα στη RAM, άρα απαντά πολύ γρήγορα, αλλά χρειάζεται σωστά ρυθμισμένο όριο μνήμης, πολιτική eviction και persistence, ώστε να μη χάνει δεδομένα σε επανεκκίνηση.

  • MongoDB ή PostgreSQL για e-shop;

    Το MongoDB ταιριάζει όταν ο κατάλογος προϊόντων έχει πολύ διαφορετικά attributes ανά κατηγορία και αλλάζει συχνά. Το PostgreSQL ταιριάζει καλύτερα όταν έχετε αυστηρές σχέσεις μεταξύ παραγγελιών, πελατών και αποθέματος και χρειάζεστε οικονομικά reports με ακρίβεια.

  • Πόση RAM χρειάζεται ένας Redis server;

    Εξαρτάται από το dataset που κρατάτε στο cache και από την πολιτική eviction που επιλέγετε. Ξεκινάμε μετρώντας το πραγματικό working set της εφαρμογής σας και ρυθμίζουμε το maxmemory με ασφαλές περιθώριο, αντί να μαντεύουμε ένα νούμερο εκ των προτέρων.

  • Πώς στήνω MongoDB replica set;

    Ένα σωστό replica set έχει τρεις κόμβους σε ιδιωτικό δίκτυο, με authentication, TLS και αυτόματη εκλογή νέου primary όταν ο τρέχων πέσει. Το στήνουμε, δοκιμάζουμε την εναλλαγή στην πράξη και τεκμηριώνουμε τι σημάδια αφήνει στα logs, ώστε η ομάδα σας να το αναγνωρίζει αμέσως.

  • Μπορώ να τρέξω MongoDB σε shared hosting ή χρειάζομαι VPS;

    Χρειάζεστε VPS ή dedicated server. Το MongoDB απαιτεί έλεγχο πάνω στη διεργασία, τη μνήμη και το δίκτυο, πράγματα που δεν υπάρχουν σε shared hosting. Επιπλέον, ένα σωστό replica set έχει τρεις κόμβους, άρα προϋποθέτει αποκλειστικούς πόρους και ιδιωτικό δίκτυο μεταξύ τους.

  • Τι γίνεται αν πέσει ένας κόμβος από το replica set;

    Το σύνολο επιλέγει αυτόματα νέο primary και η εφαρμογή επανασυνδέεται μέσω του driver. Την εναλλαγή τη δοκιμάζουμε κατά την παράδοση, δεν την αφήνουμε απλώς ρυθμισμένη, και σημειώνουμε στην τεκμηρίωση τι ίχνη αφήνει στα logs.

Έχετε Redis ή MongoDB χωρίς κωδικό σε public IP;

Ελέγχουμε την έκθεση, βάζουμε authentication, TLS και ιδιωτικό δίκτυο, και ρυθμίζουμε replication και backup μέσα στις ώρες που περιλαμβάνει η συνδρομή σας.

Οδηγοί για επιχειρήσεις στην Ελλάδα