Το Backend-as-a-Service (BaaS) αναφέρεται σε πλατφόρμες που παρέχουν υπηρεσίες υποστήριξης, όπως αποθήκευση δεδομένων, αναλυτικά στοιχεία, ειδοποιήσεις, συνδρομές σε πραγματικό χρόνο και έλεγχος ταυτότητας, σε εφαρμογές λογισμικού. Οι πάροχοι BaaS μειώνουν τον χρόνο που απαιτείται για την ανάπτυξη μιας εφαρμογής, καθώς εξαλείφει την ανάγκη δημιουργίας του backend από την αρχή.
Μερικοί δημοφιλείς πάροχοι BaaS που υποστηρίζουν εφαρμογές React είναι οι AWS Amplify, Firebase και SupaBase.
AWS Amplify
Η χρήση των Υπηρεσιών AWS μπορεί να είναι δύσκολη χωρίς εμπειρία στο cloud. Το AWS Amplify που κυκλοφόρησε το 2017 είναι μια βιβλιοθήκη ανοιχτού κώδικα που απλοποιεί τον τρόπο με τον οποίο αλληλεπιδράτε και ενσωματώνετε τις υπηρεσίες AWS στην εφαρμογή σας.
Παρέχει υπηρεσίες όπως αποθήκευση, έλεγχος ταυτότητας, GraphQL, REST API και ειδοποιήσεις push, μεταξύ άλλων. Παρέχει επίσης έναν απλό τρόπο προσθήκης πόρων AWS όπως Cognito, DynamoDB και ElasticSearch σε μια εφαρμογή χωρίς τη χρήση της κονσόλας AWS. Μπορείτε να χρησιμοποιήσετε το CLI ή τη διεπαφή χρήστη διαχειριστή για πρόσβαση στο Amplify.
Βασικά χαρακτηριστικά του AWS Amplify
- Το AWS Amplify λειτουργεί με πολλά πλαίσια και γλώσσες. Για εφαρμογές web, υποστηρίζει δημοφιλή πλαίσια και βιβλιοθήκες JavaScript όπως το React, το Angular και το Vue. Υποστηρίζει επίσης iOS και Android.
- Το Amplify ενσωματώνει το Amazon Cognito για να υποστηρίζει έλεγχο ταυτότητας email/κωδικού πρόσβασης, έλεγχο ταυτότητας κοινωνικού δικτύου με παρόχους όπως το Facebook και το Amazon και τον έλεγχο ταυτότητας πολλαπλών παραγόντων.
- Το Amplify σάς επιτρέπει να προσθέτετε GraphQL και REST API στην εφαρμογή σας. Μπορείτε να χρησιμοποιήσετε αυτά τα API για πρόσβαση σε δεδομένα από μια πηγή δεδομένων όπως το DynamoDB.
- Το Amplify σάς επιτρέπει να χρησιμοποιείτε το S3 για την αποθήκευση και τη διαχείριση αρχείων πολυμέσων στη συσκευή και στο cloud.
- Το Amplify CLI σάς δίνει τη δυνατότητα να δημιουργήσετε και να αναπτύξετε συναρτήσεις λάμδα. Μια συνάρτηση λάμδα είναι α λειτουργία χωρίς διακομιστή που σας επιτρέπει να εκτελείτε κώδικα χωρίς την παροχή διακομιστή. Ορισμένες συνήθεις περιπτώσεις χρήσης για τις λειτουργίες λάμδα περιλαμβάνουν την αποστολή ειδοποιήσεων SMS όταν ενεργοποιείται ένα συμβάν, την αποστολή email και τον χειρισμό εικόνας, όπως η δημιουργία μικρογραφιών. Δείτε τα έγγραφα AWS, για περισσότερα περιπτώσεις κοινής χρήσης συναρτήσεων λάμδα.
- Είναι φθηνό να ξεκινήσετε. Μπορείτε να ξεκινήσετε τη δημιουργία της εφαρμογής σας στο δωρεάν επίπεδο που προσφέρει τις περισσότερες από τις δυνατότητες του Amplify. Μόλις λήξει η δωρεάν περίοδος, μπορείτε να πληρώσετε για τις συγκεκριμένες δυνατότητες που χρησιμοποιήσατε.
- Το Amplify μειώνει τον χρόνο διάθεσης στην αγορά για εφαρμογές λογισμικού, επειδή δεν χρειάζεται να κωδικοποιήσετε το backend από την αρχή.
Το AWS Amplify στοχεύει μόνο το AWS Cloud. Για το Google Cloud, θα πρέπει να εξετάσετε το Firebase.
Firebase
Το Firebase είναι μια πλατφόρμα BaaS που βασίζεται στο Google Cloud και παρέχει μια διαχειριζόμενη πλατφόρμα υποστήριξης για εφαρμογές ιστού και κινητές συσκευές. Το Firebase προσφέρει προϊόντα που βοηθούν τους προγραμματιστές να δημιουργήσουν την υποδομή υποστήριξης, να απελευθερώνουν και να παρακολουθούν την εφαρμογή και να αλληλεπιδρούν με τους χρήστες.
Βασικά χαρακτηριστικά του Firebase
- Το Firebase υποστηρίζει την ενοποίηση με iOS, web και Android.
- Το Firebase διαθέτει μια βάση δεδομένων Cloud Firestore που είναι μια βάση δεδομένων NoSQL που μπορείτε να χρησιμοποιήσετε για την αποθήκευση δεδομένων για τις εφαρμογές σας. Το Firebase παρέχει επίσης μια βάση δεδομένων σε πραγματικό χρόνο που σας επιτρέπει να αποθηκεύετε και να συγχρονίζετε δεδομένα μεταξύ των χρηστών σε πραγματικό χρόνο.
- Το Firebase σάς επιτρέπει να προσθέτετε επεκτάσεις στην εφαρμογή σας. Οι επεκτάσεις είναι προσυσκευασμένες δέσμες κώδικα που προσθέτουν περισσότερη λειτουργικότητα σε μια εφαρμογή. Ένα παράδειγμα επέκτασης είναι το Search with Algolia, ένα πακέτο που επιτρέπει την αναζήτηση πλήρους κειμένου στη βάση δεδομένων του cloud Firestore χρησιμοποιώντας το Algolia. Μπορείτε να δείτε άλλες επεκτάσεις στο αγορά επέκτασης.
- Μπορείτε να προσθέσετε λειτουργικότητα στην εφαρμογή σας ενσωματώνοντας το Firebase με άλλα εργαλεία όπως το Google Ads, το Google Play, το Jira και το Slack.
- Το Firebase είναι ενσωματωμένο στο Google Cloud, επιτρέποντάς σας να κλιμακώνετε εύκολα την εφαρμογή σας.
- Το πρόγραμμα Spark είναι δωρεάν, το οποίο βοηθά τους προγραμματιστές να ξεκινήσουν εύκολα με το Firebase.
- ο Έλεγχος ταυτότητας Firebase Η υπηρεσία υποστηρίζει έλεγχο ταυτότητας χρήστη χρησιμοποιώντας email και κωδικούς πρόσβασης, αριθμούς τηλεφώνου και παρόχους κοινωνικής ταυτότητας όπως το Twitter και το GitHub.
- Τα προϊόντα Firebase όπως τα crashlytics, η παρακολούθηση απόδοσης, το Google Analytics και το εργαστήριο δοκιμών σάς βοηθούν να παρακολουθείτε την απόδοση της εφαρμογής σας.
Όπως μπορείτε να δείτε, το Firebase έχει εξαιρετικές δυνατότητες, ωστόσο, δεν είναι ανοιχτού κώδικα και μπορεί να χρησιμοποιηθεί μόνο στο Google Cloud. Εάν θέλετε μια εναλλακτική λύση ανοιχτού κώδικα, δοκιμάστε το Supabase.
Supabase
Το Supabase είναι μια πλατφόρμα που επιτρέπει στους προγραμματιστές να δημιουργήσουν γρήγορα ένα backend για τις εφαρμογές τους. Κάθε έργο που δημιουργείται στο Supabase είναι μια βάση δεδομένων Postgres που είναι 100% φορητή, η οποία απλοποιεί τη μετάβαση από και προς το Supabase. Η βάση δεδομένων είναι ενεργοποιημένη σε πραγματικό χρόνο και μπορείτε να εγγραφείτε και να αντιδράτε στις ενημερώσεις της βάσης δεδομένων. Άλλες υπηρεσίες που παρέχονται από το Supabase είναι οι λειτουργίες άκρων, ο έλεγχος ταυτότητας και τα API που δημιουργούνται αυτόματα.
Βασικά χαρακτηριστικά του Supabase
- Το Supabase παρέχει μια πλήρως ανεπτυγμένη βάση δεδομένων Postgres. Η βάση δεδομένων είναι φορητή και έχει ενσωματωμένη ταυτότητα που μπορείτε να χρησιμοποιήσετε για να ελέγξετε την πρόσβαση των χρηστών.
- Προσφέρει πολλαπλές μεθόδους ελέγχου ταυτότητας, όπως συνδέσεις κοινωνικής δικτύωσης με το Google, το Facebook και το Twitter, έλεγχο ταυτότητας email/κωδικού πρόσβασης και ένα ενσωματωμένο σύστημα διαχείρισης χρηστών στο οποίο μπορείτε να έχετε πρόσβαση μέσω ενός API.
- Το Supabase υποστηρίζει συναρτήσεις άκρων που είναι λειτουργίες χωρίς διακομιστή που εκτελούνται κοντά σε χρήστες σε όλο τον κόσμο. Χρησιμοποιώντας συναρτήσεις άκρης, μειώνετε την καθυστέρηση και αυξάνετε τις ταχύτητες εκτέλεσης κώδικα.
- Υποστηρίζει επίσης ενημερώσεις σε πραγματικό χρόνο που σας επιτρέπουν να ακούτε συμβάντα στη βάση δεδομένων Postgres.
- Το Supabase και το Firebase προσφέρουν παρόμοιες υπηρεσίες και η κύρια διαφορά μεταξύ τους είναι ότι το Supabase βασίζεται σε μια βάση δεδομένων PostgreSQL, μια σχεσιακή βάση δεδομένων, ενώ το Firebase βασίζεται σε μια βάση δεδομένων NoSQL.
- Η τιμολόγηση Supabase βασίζεται στον όγκο των δεδομένων που αποθηκεύονται, γεγονός που καθιστά τους λογαριασμούς προβλέψιμους. Το δωρεάν πακέτο σάς παρέχει ήδη έως 500MB βάσης δεδομένων και 1GB αποθήκευσης αρχείων και είναι ιδανικό για παράπλευρες εργασίες. Εάν χρειάζεστε περισσότερο χώρο αποθήκευσης, το επόμενο επίπεδο τιμολόγησης είναι 25 $ ανά μήνα.
- Μπορείτε να ρωτήσετε μια υπάρχουσα βάση δεδομένων PostgreSQL χρησιμοποιώντας το GraphQL.
Ποια πλατφόρμα BaaS πρέπει να χρησιμοποιήσετε;
Η πλατφόρμα που θα επιλέξετε εξαρτάται από τις ανάγκες του έργου στο οποίο εργάζεστε. Το Firebase είναι εξαιρετικό για μη σχεσιακά δεδομένα, καθώς χρησιμοποιεί μια βάση δεδομένων NoSQL, ενώ το Supabase είναι μια καλή επιλογή εάν θέλετε να χρησιμοποιήσετε μια σχεσιακή βάση δεδομένων. Amplify, σας επιτρέπει να δημιουργήσετε μια βάση δεδομένων NoSQL που υποστηρίζεται από DynamoDB ή S3, αλλά μπορείτε επίσης να χρησιμοποιήσετε μια συνάρτηση λάμδα για να συνδεθείτε σε μια σχεσιακή βάση δεδομένων.
Επιπλέον, εάν θέλετε να χρησιμοποιήσετε GraphQL API, επιλέξτε Amplify ή Supabase καθώς το Firebase δεν το υποστηρίζει.
Θα πρέπει επίσης να εξετάσετε τον υπάρχοντα πάροχο cloud, καθώς μπορεί να σας είναι πιο εύκολο να χρησιμοποιήσετε μια πλατφόρμα που βασίζεται στον πάροχο που ήδη χρησιμοποιείτε. Για παράδειγμα, εάν χρησιμοποιείτε AWS, μπορείτε να προτιμήσετε το Amplify ή το Firebase εάν χρησιμοποιείτε το Google Cloud. Το Supabase είναι μια καλή επιλογή εάν προτιμάτε να μην είστε συνδεδεμένοι με έναν συγκεκριμένο προμηθευτή cloud.
Πώς οι πάροχοι BaaS σας βοηθούν να αποστέλλετε ταχύτερα
Μέχρι στιγμής, έχετε μάθει για τις δυνατότητες των Amplify, Firebase και Supabase και ορισμένους από τους παράγοντες που πρέπει να λάβετε υπόψη όταν επιλέγετε έναν πάροχο BaaS. Ανεξάρτητα από την πλατφόρμα που θα επιλέξετε, το BaaS θα σας βοηθήσει να εξοικονομήσετε χρόνο ανάπτυξης. Αντί να διαμορφώσετε τη βάση δεδομένων, να δημιουργήσετε ένα σύστημα ελέγχου ταυτότητας, να ρυθμίσετε τα αναλυτικά στοιχεία και άλλες υπηρεσίες υποστήριξης, μπορείτε να εστιάσετε στη σχεδίαση και στο μπροστινό μέρος.