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

Azure Service Fabric: Τι πρέπει να γνωρίζετε

Οι υπηρεσίες cloud όπως το Azure είναι στην καρδιά τεράστια κατανεμημένα συστήματα, που φιλοξενούν κάθε είδους υπηρεσίες. Ορισμένα από αυτά φιλοξενούνται υποδομή, μερικά από αυτά είναι κοντέινερ και μικροϋπηρεσίες, μερικά είναι πλατφόρμες ανάπτυξης και μερικά εκμεταλλεύονται μοτίβα χωρίς διακομιστές.

Όλοι χρειάζονται ένα πράγμα: μια πλατφόρμα διαχείρισης και ενορχήστρωσης. Εργαλεία γενικής χρήσης πολλαπλών cloud όπως το Kubernetes προσφέρουν έναν δρόμο για την παροχή ενός διαχειριζόμενου περιβάλλοντος κοντέινερ, αλλά υπάρχει επίσης ένα μέρος για προσαρμοσμένα περιβάλλοντα που εστιάζουν στις ανάγκες μιας συγκεκριμένης πλατφόρμας cloud. Για το Azure, αυτό το χειρίζεται ένα εργαλείο που ήταν εκεί από τις πρώτες μέρες του δημόσιου cloud της Microsoft: Azure Service Fabric.

Παρουσιάζοντας το Azure Service Fabric

Κρυμμένο στα θεμέλια του Azure, το Service Fabric μπορεί να είναι δύσκολο να περιγραφεί. Όμως το βλέπουμε συνεχώς, στα εργαλεία που χρησιμοποιούμε για να δημιουργήσουμε το δικό μας λογισμικό εγγενών cloud. Βρίσκεται στην καρδιά της πλατφόρμας του Azure's Hub και της πλατφόρμας IoT, των βάσεων δεδομένων SQL και Cosmos DB, καθώς και πολλές από τις επιχειρηματικές και καταναλωτικές υπηρεσίες που χρησιμοποιούμε καθημερινά. Με το Azure Service Fabric, αποκτάτε πρόσβαση στα ίδια εργαλεία που χρησιμοποιεί η Microsoft για να εκτελεί και να διαχειρίζεται τις δικές της υπηρεσίες, ενσωματώνοντάς τις στον δικό σας κωδικό.

Ο σκοπός του Azure Service Fabric είναι να διευκολύνει την ανάπτυξη και τη διαχείριση μικροσυσκευών, χειρισμό τόσο λειτουργικών όσο και ανιθαγενών λειτουργιών σε μια παρουσία PaaS Azure. Δεν είναι μόνο για το Azure, επειδή το εργαλείο τοπικής ανάπτυξης είναι μια ολοκληρωμένη έκδοση του Azure Service Fabric, που σημαίνει ότι θα λειτουργεί σε οποιοδήποτε σύστημα Windows. Μια έκδοση Linux το καθιστά φορητό και σε πολλά σύννεφα, χειρίζοντας υπάρχοντα και προσαρμοσμένο κώδικα.

Το Azure Service Fabric διαχειρίζεται τον κύκλο ζωής της εφαρμογής σας, με API που παρέχουν πρόσθετη πρόσβαση στην πλατφόρμα πέρα ​​από καθαρά αυτόνομο κώδικα. Υποστηρίζει επίσης τις δικές του μικροσυσκευές ηθοποιών / μηνυμάτων, καθώς και φιλοξενία κώδικα ASP.Net Core. Οι υπηρεσίες μπορούν να λειτουργούν εγγενώς ως διαδικασίες ή μπορείτε να τις φιλοξενήσετε σε κοντέινερ, δίνοντάς σας τη δυνατότητα να μεταφέρετε γρήγορα τον υπάρχοντα κώδικα στο PaaS του Azure. Τα κοντέινερ αναμειγνύονται με άλλα μοντέλα εφαρμογών Azure Service Fabric, επιτρέποντάς σας να συμπεριλάβετε γρήγορα την υπάρχουσα λειτουργικότητα μέσω ανύψωσης και αλλαγής ή συμπεριλαμβάνοντας συγκεκριμένες συσκευασμένες εφαρμογές.

Ξεκινήστε με το Azure Service Fabric

Ίσως ο πιο γρήγορος τρόπος για να ξεκινήσετε την ανάπτυξη με το Service Fabric είναι το πλαίσιο αξιόπιστων υπηρεσιών του. Αυτό είναι ένα σύνολο API που ενσωματώνεται στις δυνατότητες διαχείρισης του κύκλου ζωής της εφαρμογής Azure Service Fabric. Μπορείτε να γράψετε κώδικα σε οποιαδήποτε υποστηριζόμενη γλώσσα ή στην επιλογή του πλαισίου εφαρμογής. Οι υπηρεσίες μπορούν να είναι ανιθαγενείς ή κρατικές, με υπηρεσίες απάτριδες που χρησιμοποιούν εξωτερικό χώρο αποθήκευσης για τη διαχείριση της κατάστασης. Η επιλογή stateful είναι πιο ενδιαφέρουσα, επειδή χρησιμοποιεί τα εργαλεία του Service Fabric για τη διαχείριση της κατάστασης εφαρμογής. Δεν χρειάζεται να εξετάσετε το ενδεχόμενο κλιμάκωσης ή υψηλής διαθεσιμότητας. είναι όλα για εσάς.

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

Η Microsoft διευκολύνει τη δημιουργία οικείων οπτικών εφαρμογών ιστού και εφαρμογών στο Azure Service Fabric με υποστήριξη για ASP.Net Core. Αν και δεν είναι 100% συμβατό με κώδικα με το ASP.Net MVC, μπορείτε να μετεγκαταστήσετε τον υπάρχοντα κώδικα στη νέα πλατφόρμα. Υπάρχει υποστήριξη για τη δημιουργία υπηρεσιών ανιθαγενών και πολιτειών, την παράδοση ενορχηστρώσεων εφαρμογών και την κλιμάκωση στο Azure Service Fabric.

Επεκτάσιμη συνάφεια με ηθοποιούς

Οι εφαρμογές Born-in-the-Cloud πρέπει να εκμεταλλευτούν το πλαίσιο του Reliable Actor. Αυτό επεκτείνει τις αξιόπιστες υπηρεσίες για να εφαρμόσει εικονικούς ηθοποιούς (όπως χρησιμοποιείται από το ανοιχτό πλαίσιο Project Orleans που είναι δημοφιλές στα τυχερά παιχνίδια). Η χρήση του μοτίβου ηθοποιού / μηνύματος για το χειρισμό μικροσυστημάτων λειτουργεί καλά, επειδή το υποκείμενο ταυτόχρονο μοντέλο συστημάτων κλιμακώνεται γρήγορα και μπορεί να χειριστεί πολλούς παράγοντες που λειτουργούν ταυτόχρονα.

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

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

Το Azure Service Fabric πηγαίνει ανοιχτού κώδικα

Η Microsoft ανακοίνωσε πρόσφατα ότι είναι το Open Fabric Service Fabric, αλλάζοντας το μοντέλο ανάπτυξης σε μοντέλο που θα δέχεται αιτήματα έλξης τρίτων, καθώς και επιτρέπει μια δημόσια, ανοιχτή διαδικασία σχεδίασης.

Η μετάβαση σε ένα μοντέλο ανάπτυξης ανοιχτού κώδικα, παράλληλα με μια διαδικασία ανοιχτού σχεδιασμού, είναι μια τεράστια δέσμευση για μια θεμελιώδη τεχνολογία όπως το Azure Service Fabric. Ενώ η αρχική δόση κώδικα ανοιχτού κώδικα βασίζεται σε Linux, η ομάδα ανάπτυξης της Microsoft έχει δηλώσει ότι ο κώδικας που βασίζεται στα Windows που εκτελείται αυτήν τη στιγμή στο Azure θα ακολουθήσει σύντομα. Η ανάπτυξη θα πραγματοποιηθεί στο GitHub, με μεγάλο μέρος της αρχικής εργασίας να επικεντρώνεται στην ολοκλήρωση της μετάβασης από τις εσωτερικές πλατφόρμες της Microsoft σε μια διαδικασία που αντιμετωπίζει το κοινό.

Η Microsoft έχει προγραμματίσει να παραδώσει ένα ανοιχτό λογισμικό Azure Service Fabric εδώ και αρκετό καιρό - τουλάχιστον από την έναρξη του κλάδου Linux του κώδικα. Επειδή είναι και ο νεότερος κώδικας και χρησιμοποιεί ένα διαφορετικό εργαλείο από την έκδοση των Windows, ήταν πολύ πιο εύκολο να διαμορφωθεί αυτός ο κλάδος για δημόσια κυκλοφορία. Το εργαλείο των Windows είναι πιο περίπλοκο, με μια δεκαετία περίπου ιστορίας που πρέπει να ξετυλιχθεί και να αναδιαμορφωθεί. Πολλά από αυτά οφείλονται στη χρήση εργαλείων ανάπτυξης μόνο για Microsoft που δεν είναι διαθέσιμα στον έξω κόσμο, καθώς και η επανεπεξεργασία που απαιτείται για τη μεταφορά του σε διαθέσιμα στο κοινό εργαλεία.

Έχοντας στη διάθεσή σας ένα εργαλείο όπως το Azure Service Fabric σας προσφέρει πολλές περισσότερες επιλογές από το παραδοσιακό PaaS, ειδικά όταν δημιουργείτε νέες εφαρμογές από το μηδέν. Η υποστήριξη για κοντέινερ προσθέτει τη δυνατότητα προσθήκης συσκευασμένων εφαρμογών μαζί με τον κωδικό σας. Ομοίως, η χρήση οικείων πλαισίων και προτύπων μπορεί να συντομεύσει την καμπύλη μάθησης. Με ένα μέλλον ανοιχτού κώδικα μπροστά του, το Azure Service Fabric θα μπορούσε να είναι το πλαίσιο εφαρμογής πολλαπλών ηχείων που αναζητάτε.