iwebforyou
Ξεκινήστε ένα Έργο
Όλα τα άρθρα

SaaS

Πώς κρατιούνται χωριστά τα δεδομένα πελατών σε ένα SaaS

Σε μια πλατφόρμα SaaS τα δεδομένα των πελατών κρατιούνται χωριστά με ένα από τρία μοντέλα της AWS. Στο silo κάθε πελάτης έχει δικούς του πόρους, στο pool οι πελάτες μοιράζονται πόρους και στο bridge ο συνδυασμός των δύο. Το μοντέλο επιλέγεται στο σχέδιο συστήματος, πριν γραφτεί κώδικας.

Εκδότης: iwebforyouΔημοσιεύθηκε Ενημερώθηκε 5 λεπτά ανάγνωσης

Πώς κρατιούνται χωριστά τα δεδομένα πελατών σε ένα SaaS

Αν σκέφτεστε ένα προϊόν SaaS, μία από τις πρώτες ερωτήσεις είναι πόσο χωριστά θα κρατιούνται τα δεδομένα κάθε πελάτη. Η απάντηση επηρεάζει το κόστος και την ασφάλεια, και αλλάζει δύσκολα αργότερα. Το άρθρο εξηγεί τις τρεις επιλογές της AWS με απλά παραδείγματα, ώστε να μπορείτε να τη συζητήσετε με την ομάδα σας.

Τι είναι ένας tenant;

Ένας tenant είναι ένας πελάτης του προϊόντος SaaS, μαζί με τους χρήστες και τα δεδομένα του. Μια εταιρεία που χρησιμοποιεί την πλατφόρμα σας είναι ένας tenant, και ο οργανισμός της βλέπει το προϊόν σαν να ήταν δικό του. Στην πραγματικότητα το ίδιο λογισμικό εξυπηρετεί δεκάδες ή εκατοντάδες tenants ταυτόχρονα.

Γι' αυτό η απομόνωση των tenants έχει τόση σημασία. Το Well-Architected SaaS Lens της AWS τη χαρακτηρίζει θεμελιώδες θέμα που πρέπει να αντιμετωπίσει κάθε πάροχος SaaS. Προσθέτει ότι η παραβίαση αυτού του ορίου, με οποιονδήποτε τρόπο, θα ήταν σοβαρό και πιθανότατα μη αναστρέψιμο γεγονός για μια επιχείρηση SaaS. Ένας πελάτης που βλέπει δεδομένα ενός άλλου χάνει την εμπιστοσύνη του σε μία στιγμή.

Τι είναι το μοντέλο silo;

Στο μοντέλο silo κάθε tenant έχει δικούς του, αποκλειστικούς πόρους. Η AWS δίνει δύο παραδείγματα: ένα εντελώς ανεξάρτητο σύνολο υποδομής για κάθε tenant, ή μια ξεχωριστή βάση δεδομένων για καθέναν. Όταν ένα μέρος ή όλοι οι πόροι ενός tenant είναι αφιερωμένοι σε αυτόν, μιλάμε για silo.

Ακόμη και τότε, η AWS επισημαίνει ότι η ταυτότητα, η εγγραφή και η λειτουργία παραμένουν κοινές για όλους. Αυτό ξεχωρίζει ένα SaaS από μια υπηρεσία όπου κάθε πελάτης τρέχει μια δική του έκδοση του προϊόντος. Το κέρδος είναι ισχυρός διαχωρισμός, επειδή τα δεδομένα βρίσκονται σε διαφορετικό μέρος. Το κόστος είναι περισσότερη δουλειά στη λειτουργία, γιατί κάθε αλλαγή πρέπει να φτάσει σε όλους τους πόρους.

Τι είναι το μοντέλο pool;

Στο μοντέλο pool οι tenants μοιράζονται τους ίδιους πόρους. Η AWS το χαρακτηρίζει το πιο κλασικό νόημα της πολυμίσθωσης (multi-tenancy): κοινή, κλιμακούμενη υποδομή που δίνει οικονομία κλίμακας, ευκολότερη διαχείριση και ταχύτητα στις αλλαγές. Οι πόροι που μοιράζονται μπορεί να είναι υπολογιστική ισχύς, αποθήκευση ή ουρές μηνυμάτων.

Εδώ ο διαχωρισμός δεν προκύπτει από τη δομή. Προκύπτει από τον κώδικα, που σε κάθε ερώτημα προς τη βάση πρέπει να φιλτράρει ανά tenant. Αν ένα φίλτρο λείπει από μία οθόνη, μπορεί να φανούν δεδομένα άλλου πελάτη. Γι' αυτό το pool θέλει συστηματικό έλεγχο, με δοκιμές που ψάχνουν ακριβώς αυτό το λάθος.

Τι είναι το μοντέλο bridge;

Το bridge είναι ο συνδυασμός των δύο. Η AWS σημειώνει ότι τα SaaS προϊόντα δεν είναι πάντα καθαρά silo ή pool, και ότι πολλά συστήματα έχουν μικτή μορφή. Για παράδειγμα, μια υπηρεσία του συστήματος μπορεί να είναι silo και μια άλλη pool.

Τι οδηγεί σε silo; Η AWS αναφέρει το ρυθμιστικό προφίλ των δεδομένων και το φαινόμενο του «θορυβώδους γείτονα», όπου ένας tenant με μεγάλο φόρτο επιβραδύνει τους υπόλοιπους. Τι οδηγεί σε pool; Η ευελιξία, ο τρόπος πρόσβασης και το κόστος. Στην πράξη τα δεδομένα με αυξημένες απαιτήσεις μένουν χωριστά, ενώ οι υπόλοιπες λειτουργίες μοιράζονται πόρους.

Πώς διαλέγουμε μοντέλο για ένα έργο;

Διαλέγουμε με βάση τις απαιτήσεις του έργου, όχι με βάση την προτίμηση της τεχνολογίας. Στο πρώτο στάδιο καταγράφουμε τρία πράγματα: τι δεδομένα αποθηκεύονται, πόσοι tenants αναμένονται και τι ζητούν από εσάς οι πελάτες σας. Με αυτά η σύγκριση γίνεται απλή.

Ερώτηση

Κλίνει προς silo

Κλίνει προς pool

Πόσο ευαίσθητα είναι τα δεδομένα;

Πολύ ευαίσθητα ή ρυθμιζόμενα

Συνηθισμένα επαγγελματικά δεδομένα

Πόσοι tenants αναμένονται;

Λίγοι, μεγάλοι

Πολλοί, μικροί

Πόσο διαφέρει ο φόρτος ανά tenant;

Πολύ

Λίγο

Τι προτεραιότητα έχει το κόστος λειτουργίας;

Δευτερεύουσα

Υψηλή

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

Τι επιλέξαμε στο Praion AI;

Στο δικό μας προϊόν Praion AI κάθε πελάτης έχει τη δική του βάση δεδομένων. Το περιγράφουμε αναλυτικά στο case study του Praion AI. Εκεί βρίσκονται συνομιλίες, επαφές και ιδιωτικές σημειώσεις, δεδομένα που ο πελάτης θέλει να ξέρει ότι ανήκουν μόνο σε αυτόν. Γι' αυτό η απομόνωση χτίστηκε στη δομή και όχι στην προσοχή όποιου γράφει τον κώδικα.

Η επιλογή έχει κόστος, και το αποδεχτήκαμε συνειδητά: κάθε ενημέρωση πρέπει να φτάσει σε όλες τις βάσεις. Σε ένα άλλο έργο, με λιγότερο ευαίσθητα δεδομένα και πολλούς μικρούς πελάτες, το ίδιο σκεπτικό θα μπορούσε να οδηγήσει σε pool. Αυτή είναι η λογική που ακολουθούμε, και όχι μία σταθερή συνταγή. Το επόμενο ερώτημα, δηλαδή ποιος χρήστης μέσα σε κάθε πελάτη βλέπει τι, το εξηγούμε στο άρθρο για τους ρόλους και τα δικαιώματα. Μαζί, οι δύο αποφάσεις ορίζουν ποιος έχει πρόσβαση σε ποια δεδομένα.

Συχνές ερωτήσεις: Πώς κρατιούνται χωριστά τα δεδομένα πελατών σε ένα SaaS

Ποιο μοντέλο είναι το καλύτερο;

Κανένα δεν είναι καλύτερο σε όλες τις περιπτώσεις. Το silo δίνει ισχυρότερο διαχωρισμό με περισσότερη δουλειά στη λειτουργία. Το pool δίνει οικονομία και ευκολότερη διαχείριση, αλλά θέλει συστηματικό έλεγχο του κώδικα. Η επιλογή γίνεται ανά έργο.

Μπορεί να αλλάξει το μοντέλο αργότερα;

Μπορεί, αλλά κοστίζει. Η αλλαγή αγγίζει τη βάση, τον κώδικα και τη λειτουργία της πλατφόρμας. Γι' αυτό η απόφαση γράφεται και εγκρίνεται στην αρχή, όταν η αλλαγή της δεν κοστίζει τίποτα.

Αρκεί ένα φίλτρο ανά tenant σε κάθε ερώτημα;

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

Τι σχέση έχει αυτό με τα δικαιώματα των χρηστών;

Είναι δύο διαφορετικά επίπεδα. Η απομόνωση του tenant ορίζει ποια δεδομένα ανήκουν σε ποιον πελάτη. Οι ρόλοι και τα δικαιώματα ορίζουν τι κάνει κάθε χρήστης μέσα στον λογαριασμό του. Το θέμα αυτό το εξηγούμε στο άρθρο για τους ρόλους και τα δικαιώματα σε ένα SaaS.

Θέλετε να σχεδιάσουμε τη δική σας πλατφόρμα;

Αν χτίζετε προϊόν SaaS ή εσωτερική πλατφόρμα για πολλούς πελάτες, το μοντέλο δεδομένων είναι το πρώτο θέμα που αξίζει να συζητηθεί. Περιγράψτε το έργο σας στο αίτημα έργου και θα το δούμε μαζί, στο στάδιο των απαιτήσεων. Δείτε και τη σελίδα για τις πλατφόρμες SaaS.

Πηγές: Πώς κρατιούνται χωριστά τα δεδομένα πελατών σε ένα SaaS

Στην πράξη: Πώς κρατιούνται χωριστά τα δεδομένα πελατών σε ένα SaaS

Ξεκινήστε ένα έργο

Θέλετε ένα website που οι επισκέπτες σας καταλαβαίνουν αμέσως; Θα σας βοηθήσουμε να το οργανώσετε σωστά.