SaaS πλατφόρμες όπου κάθε πελάτης βλέπει μόνο τα δικά του δεδομένα

Η κατασκευή SaaS πλατφόρμας multi-tenant σημαίνει ένα σύστημα για πολλούς πελάτες, με τα δεδομένα του καθενός χωριστά. Στα Forkly και Mesito την απομόνωση επιβάλλει η ίδια η βάση, με row-level security της PostgreSQL.

Σε μια multi-tenant πλατφόρμα SaaS, μία εφαρμογή εξυπηρετεί πολλούς πελάτες και τα δεδομένα του καθενός μένουν αόρατα στους υπόλοιπους. Ο βασικός κίνδυνος είναι η διαρροή ανάμεσα σε πελάτες. Στην κατασκευή SaaS πλατφόρμας τον αντιμετωπίζουμε μέσα στη βάση δεδομένων, όχι μόνο στις οθόνες.

Τι περιλαμβάνει η κατασκευή SaaS πλατφόρμας;

Ένα προϊόν SaaS δεν είναι μια εφαρμογή με σελίδα σύνδεσης. Από την αρχή σχεδιάζουμε τα εξής.

  1. Πελάτες (tenants) και χρήστες, με ρόλους και προσκλήσεις.
  2. Απομόνωση δεδομένων ανάμεσα στους πελάτες.
  3. Εργασίες παρασκηνίου για ό,τι δεν πρέπει να καθυστερεί μια σελίδα.
  4. Αποθήκευση αρχείων για uploads και έγγραφα που παράγονται.
  5. Τιμολόγηση και συνδρομές.
  6. Φιλοξενία, αντίγραφα ασφαλείας και παρακολούθηση.

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

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

Προσθέτουμε δεύτερο επίπεδο. Στο Forkly και στο Mesito την απομόνωση την επιβάλλει η ίδια η βάση, με row-level security της PostgreSQL. Κάθε αίτημα δηλώνει στη βάση για ποιον πελάτη ενεργεί, και η βάση επιστρέφει μόνο τις γραμμές αυτού του πελάτη, ακόμη και αν ένα ερώτημα είναι λάθος.

Αυτό ισχύει μόνο για το Forkly και το Mesito. Το Kommo είναι αγορά με διαφορετικό μοντέλο δεδομένων και δεν κάνουμε τέτοιον ισχυρισμό γι’ αυτό.

Προσέγγιση Πλεονέκτημα Κόστος
Φίλτρο ανά πελάτη μόνο στον κώδικα Απλή Ένα φίλτρο που λείπει διαρρέει δεδομένα
Κοινή βάση με row-level security Ισχυρή και οικονομική στη λειτουργία Θέλει προσεκτικό σχεδιασμό και tests
Ξεχωριστή βάση ανά πελάτη Ο ισχυρότερος διαχωρισμός Περισσότερα να λειτουργήσετε, να αναβαθμίσετε και να αντιγράψετε

Για τις περισσότερες επιχειρησιακές πλατφόρμες η μεσαία επιλογή είναι η σωστή ισορροπία. Αν έχετε πελάτη με αυστηρές συμβατικές απαιτήσεις, μπορούμε να συζητήσουμε την τρίτη.

Πώς δουλεύουν οι εργασίες παρασκηνίου;

Email, εισαγωγές, ειδοποιήσεις και αναφορές τρέχουν σε workers, έξω από το αίτημα του χρήστη. Τα προϊόντα μας χρησιμοποιούν ουρές πάνω σε PostgreSQL (pg-boss) ή σε Redis (BullMQ). Οι προγραμματισμένες εργασίες γράφονται έτσι ώστε, αν τρέχουν δύο αντίγραφα ταυτόχρονα, τίποτα να μην εκτελείται δύο φορές. Αυτό μετράει τη μέρα που θα προστεθεί δεύτερος server.

Πού πηγαίνουν τα αρχεία;

Τα uploads, τα έγγραφα και τα PDF που παράγονται πηγαίνουν σε object storage συμβατό με S3, όχι στον δίσκο του server της εφαρμογής. Ο ίδιος κώδικας δουλεύει σήμερα με το Garage και μπορεί να δουλέψει με άλλον πάροχο S3 αλλάζοντας ρυθμίσεις. Το Kommo τρέχει επιπλέον pipeline επεξεργασίας βίντεο πάνω σε αυτή τη βάση.

Τι γίνεται με την τιμολόγηση και τις συνδρομές;

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

Πώς φιλοξενούμε και παρακολουθούμε την πλατφόρμα;

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

Το Forkly είναι δημόσια προεπισκόπηση με δοκιμαστικά καταστήματα, όχι προϊόν σε πλήρη λειτουργία. Το γράφουμε και στη σελίδα του.

Πού να πάτε στη συνέχεια

Δείτε την ευρύτερη υπηρεσία λογισμικού ή την πλευρά των web εφαρμογών της ίδιας δουλειάς. Για να συζητήσουμε μια πλατφόρμα, επικοινωνήστε μαζί μας.

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

Τι είναι μια multi-tenant πλατφόρμα SaaS;

Μία εφαρμογή και μία βάση δεδομένων εξυπηρετούν πολλούς πελάτες, τους «tenants». Ο καθένας βλέπει μόνο τα δικά του δεδομένα και εσείς ενημερώνετε και λειτουργείτε ένα σύστημα, όχι ένα αντίγραφο ανά πελάτη.

Είναι εγγυημένη η απομόνωση των δεδομένων;

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

Χρησιμοποιείτε row-level security σε όλα τα προϊόντα σας;

Το Forkly και το Mesito επιβάλλουν την απομόνωση δεδομένων στη βάση με row-level security της PostgreSQL. Το Kommo είναι φτιαγμένο διαφορετικά και δεν ισχυριζόμαστε απομόνωση σε επίπεδο βάσης γι' αυτό.

Μπορείτε να φτιάξετε και την τιμολόγηση;

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

Πόσο κοστίζει μια πλατφόρμα SaaS;

Εξαρτάται από τους ρόλους, τον αριθμό των ροών εργασίας και τις διασυνδέσεις. Μετά από μια σύντομη κουβέντα δίνουμε σταθερή προσφορά για μια καθορισμένη πρώτη έκδοση.

Πείτε μας τι θέλετε να φτιάξουμε.

Ένα προϊόν, μια ιστοσελίδα, ένα θέμα αναζήτησης ή ένα σύστημα που θα έπρεπε να δουλεύει καλύτερα. Θα σας απαντήσουμε καθαρά, με το πρώτο βήμα.

Email
[email protected]
Τηλέφωνο
+30 698 179 8240

Αρκούν λίγες προτάσεις (τουλάχιστον 20 χαρακτήρες).

Χρησιμοποιούμε τα στοιχεία σας μόνο για να απαντήσουμε στο αίτημά σας. Δείτε την πολιτική απορρήτου.