Προγραμματισμός

Το Azure Cosmos DB πηγαίνει χωρίς διακομιστή

Το Azure’s Cosmos DB είναι ένα από τα θεμέλια της πλατφόρμας, τροφοδοτώντας πολλές από τις βασικές υπηρεσίες της. Σχεδιασμένο από την αρχή ως κατανεμημένη βάση δεδομένων, εφαρμόζει ένα σύνολο διαφορετικών μοντέλων συνέπειας που σας επιτρέπουν να ανταλλάξετε μεταξύ απόδοσης και καθυστέρησης για τις εφαρμογές σας. Στη συνέχεια, υπάρχουν τα διαφορετικά μοντέλα για εργασία με δεδομένα, από γνωστά API NoSQL και SQL, για υποστήριξη για το API του Mongo DB, έως τη μηχανή αναζήτησης ερωτημάτων βάσης δεδομένων Gremlin.

Υπάρχει αρκετό στο Cosmos DB για την υποστήριξη των πιο συνηθισμένων σεναρίων ανάπτυξης cloud, δίνοντάς σας μια συνεπή πλατφόρμα δεδομένων που μπορεί να μοιράζεται δεδομένα σε παγκόσμια κλίμακα. Η Microsoft το περιγράφει συχνά ως «βάση δεδομένων πλανητικής κλίμακας», μια κατάλληλη περιγραφή.

Η εναλλακτική λύση χωρίς διακομιστή σε παρεχόμενη απόδοση

Για όλα τα οφέλη, το Cosmos DB έχει κάποια μειονεκτήματα. τουλάχιστον το κόστος του. Παρόλο που υπάρχει μια σχετικά περιορισμένη δωρεάν επιλογή, η εκτέλεση σε κλίμακα μπορεί να είναι δαπανηρή και πρέπει να το λάβετε υπόψη κατά τη δημιουργία εφαρμογών γύρω από αυτό. Ο προϋπολογισμός για τις μονάδες αιτήματος DB Cosmos είναι μια πολύπλοκη διαδικασία που είναι δύσκολο να γίνει σωστή την πρώτη φορά, ειδικά όταν λαμβάνετε υπόψη την κλιμάκωση, είτε χειροκίνητα είτε αυτόματα.

Η Microsoft έχει εκτελέσει μια προεπισκόπηση μιας επιλογής χωρίς διακομιστή για το Cosmos DB για λίγο τώρα, με βάση τον πυρήνα του SQL API. Είναι μια ενδιαφέρουσα εναλλακτική λύση στην παραδοσιακά παρεχόμενη επιλογή. Σας χρεώνει μόνο όταν εκτελεί ένα αίτημα και αναστέλλει την παρουσία σας όταν δεν συμβαίνει τίποτα. Θα υπάρξει επιπλέον καθυστέρηση στις λειτουργίες της βάσης δεδομένων, καθώς η περίπτωσή σας πρέπει να εμφανιστεί όταν έχει τεθεί σε αναστολή. Φυσικά υπάρχει χρέωση για αποθήκευση, αλλά αυτό είναι το ίδιο με οποιαδήποτε βάση δεδομένων Azure. Η αρχική δοκιμή έχει πλέον επεκταθεί σε όλα τα API του Cosmos DB, με γενική διαθεσιμότητα όχι πολύ μακριά στο μέλλον.

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

Το κόστος είναι χαμηλό: Πληρώνετε 0,282 $ ανά μονάδα αιτήματος χωρίς διακομιστή, για έως και ένα εκατομμύριο RU σε έναν κύκλο χρέωσης. Εάν χρειάζεστε έναν πιο αξιόπιστο διακομιστή, μπορείτε να ρυθμίσετε μια ζώνη διαθεσιμότητας, αν και αυτό αυξάνει το κόστος κατά 1,25 φορές. Αυτή είναι ακόμα μια λογική συμφωνία, και αυτό που χάνετε στην προβλεψιμότητα, κερδίζετε με χαμηλότερο κόστος. Το κόστος αποθήκευσης παραμένει το ίδιο τόσο για χειροκίνητη όσο και για αυτόματη απόδοση που παρέχεται.

Ξεκινώντας με το Cosmos DB χωρίς διακομιστή

Το άλμα είναι αρκετά εύκολο. Όπως ένας τυπικός λογαριασμός Cosmos DB, θα πρέπει να τον παρέχετε σε μια συνδρομή και να προσθέσετε την παρουσία χωρίς διακομιστή σε μια ομάδα πόρων. Στη συνέχεια, επιλέξτε το API που σκοπεύετε να χρησιμοποιήσετε για ερωτήματα και όταν σας ζητηθεί να επιλέξετε μια λειτουργία χωρητικότητας, επιλέξτε χωρίς διακομιστή αντί να παρέχεται απόδοση. Τέλος, συνδέστε το με μια περιοχή, θυμηθείτε ότι μπορείτε να χρησιμοποιήσετε μόνο διακομιστή σε μία περιοχή Azure. δεν υπάρχει επιλογή για γεω-πλεονασμό. Δεν θα μπορείτε να το χρησιμοποιήσετε με το δωρεάν επίπεδο.

Όταν εκτελείται η παρουσία χωρίς διακομιστή, μπορείτε να χρησιμοποιήσετε τα API της για τη φόρτωση δεδομένων και την υποβολή ερωτημάτων. Όπως μια τυπική παρουσία του Cosmos DB, μπορείτε να δημιουργήσετε συναρτήσεις και ενεργοποιήσεις JavaScript που εκτελούνται μέσα στη βάση δεδομένων, καθώς και να χρησιμοποιήσετε τα πολλά διαφορετικά API της για τη διαχείριση των ερωτημάτων.

Το διακομιστή Cosmos DB χωρίς διακομιστή θα πρέπει να απομακρυνθεί σύντομα από την προεπισκόπηση και προσθέτει υποστήριξη για όλα τα API του, ακόμη και για το πρόσφατο Cassandra API. Καθώς είναι μια δημόσια προεπισκόπηση, μπορείτε να τη ρυθμίσετε και να εξερευνήσετε τη λειτουργία της απευθείας από την πύλη Azure. Κατά την προεπισκόπηση δεν υπάρχει υποστήριξη για ARM ή άλλη υποδομή ως εργαλεία ανάπτυξης κώδικα, αν και θα πρέπει να υπάρχει όταν η υπηρεσία είναι γενικά διαθέσιμη. Δεν μπορείτε να αυτοματοποιήσετε τη διαμόρφωση και την ανάπτυξη, επομένως δεν θα μπορείτε να το χρησιμοποιήσετε ως μέρος ενός αγωγού CI / CD (συνεχής ενσωμάτωση / συνεχής παράδοση) για τώρα, καθώς οι αναπτύξεις θα πρέπει να είναι μη αυτόματες.

Κωδικός δημιουργίας με διακομιστή Cosmos DB χωρίς διακομιστή

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

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

Κατανόηση των περιορισμών χωρίς διακομιστές

Υπάρχουν περιορισμοί στη χρήση λογαριασμού Cosmos DB χωρίς διακομιστή. Ίσως το πιο σημαντικό είναι ότι δεν έχετε πρόσβαση σε αναπτύξεις πολλαπλών περιφερειών, καθώς οι λογαριασμοί χωρίς διακομιστές εκτελούνται μόνο σε μία περιοχή. Είναι ένας περιορισμός που έχει νόημα: Οι εφαρμογές Multiregion Cosmos DB χρειάζονται πολλαπλές παρουσίες ταυτόχρονα για αναπαραγωγή και συνέπεια μεταξύ περιοχών. Εάν οι παρουσίες χωρίς διακομιστή εκτελούνται μόνο όταν επεξεργάζονται αιτήματα, τότε δεν υπάρχει εγγύηση ότι μια άλλη περιοχή θα είναι συνδεδεμένη στο διαδίκτυο για να χειριστεί την αναπαραγωγή. Ως αποτέλεσμα, υπάρχουν αλλαγές στον στόχο επιπέδου υπηρεσίας του Cosmos DB για παρουσίες χωρίς διακομιστή, με εγγραφές που αναμένεται να είναι 30ms ή λιγότερο και διαβάζει 10ms ή λιγότερο.

Ο άλλος περιορισμός κλειδιού είναι το μέγιστο 5.000 μονάδες αιτήματος ανά δευτερόλεπτο. Και πάλι, αυτό θα πρέπει να είναι αρκετό για τις περισσότερες απλές ή αναπτυξιακές υλοποιήσεις, αλλά απαιτεί από εσάς να παρακολουθείτε τις εφαρμογές σας και να είστε έτοιμοι να μεταβείτε σε μια παρεχόμενη παρουσία Cosmos DB, εάν υπερβαίνετε τακτικά τα όριά σας. Ταυτόχρονα, κάθε κοντέινερ χωρίς διακομιστή μπορεί να αποθηκεύσει μόνο 50 GB δεδομένων και ευρετηρίων. Η Microsoft παρέχει εργαλεία στην πύλη Azure για να βοηθήσει στην παρακολούθηση των λειτουργιών, καθώς και στο Azure Monitor.

Η προσθήκη μιας επιλογής χωρίς διακομιστή στο Cosmos DB απαντά σε πολλές ερωτήσεις σχετικά με το κόστος. Για σενάρια χαμηλής χρήσης όπου δεν χρειάζεστε παγκόσμια κάλυψη, θα πρέπει να είναι η πρώτη σας επιλογή. Μεταβείτε στη χρήση μιας προβλεπόμενης παρουσίας απόδοσης μόνο όταν είστε σε θέση να κατανοήσετε το μοτίβο αιτήματος της εφαρμογής σας και μπορείτε να προϋπολογισμό ανάλογα.