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

4 στρατηγικές ανάπτυξης για ανθεκτικές μικροσυσκευές

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

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

Εγκαταστάσεις καναρινιών

Ονομάστηκε από την ιστορική πρακτική της αποστολής πραγματικών πτηνών σε ανθρακωρυχεία για να διαπιστωθεί εάν η ποιότητα του αέρα ήταν ασφαλής για τον άνθρωπο, οι επεμβάσεις καναρινιών είναι ένας τρόπος δοκιμής των πραγματικών εγκαταστάσεων παραγωγής με ελάχιστο αντίκτυπο ή κίνδυνο. Το λεγόμενο καναρίνι είναι μια υποψήφια έκδοση μιας υπηρεσίας που λαμβάνει κάποιο υποσύνολο ποσοστό των εισερχόμενων αιτημάτων (ας πούμε, 1%) για να δοκιμάσετε νέες δυνατότητες ή εκδόσεις. Οι ομάδες μπορούν στη συνέχεια να εξετάσουν τα αποτελέσματα και αν τα πράγματα πάνε ομαλά, αυξάνουν σταδιακά την ανάπτυξη στο 100% των διακομιστών ή των κόμβων. Και αν όχι; Η επισκεψιμότητα μπορεί να ανακατευθυνθεί γρήγορα από τις εφαρμογές καναρινιών, ενώ ο προσβλητικός κώδικας ελέγχεται και διορθώνεται.

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

Δοκιμή A / B

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

Αυτό το μοτίβο χρησιμοποιεί δρομολόγηση λογισμικού για να ενεργοποιήσει και να δοκιμάσει συγκεκριμένες λειτουργίες με διαφορετικά τμήματα επισκεψιμότητας, εκθέτοντας νέες δυνατότητες σε ένα καθορισμένο ποσοστό επισκεψιμότητας ή σε περιορισμένες ομάδες. Τα τμήματα δρομολόγησης A και B ενδέχεται να στέλνουν επισκεψιμότητα σε διαφορετικές εκδόσεις του λογισμικού ή οι παρουσίες υπηρεσίας ενδέχεται να χρησιμοποιούν την ίδια έκδοση λογισμικού, αλλά με διαφορετικά χαρακτηριστικά διαμόρφωσης (όπως ορίζεται στον ενορχηστρωτή ή αλλού).

Μπλε-πράσινες αναπτύξεις

Το μοτίβο ανάπτυξης μπλε-πράσινου περιλαμβάνει παράλληλη λειτουργία δύο περιβαλλόντων παραγωγής: ένα για την τρέχουσα σταθερή κυκλοφορία (μπλε) και ένα για στάδιο και εκτέλεση δοκιμών στην επόμενη κυκλοφορία (πράσινο). Αυτή η στρατηγική επιτρέπει την κυκλοφορία ενημερωμένων εκδόσεων λογισμικού με εύκολο επαναλαμβανόμενο τρόπο. Οι ομάδες Devops μπορούν να χρησιμοποιήσουν αυτήν την τεχνική για να αυτοματοποιήσουν τις νέες εκδόσεις εκδόσεων χρησιμοποιώντας έναν αγωγό CI / CD.

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

Σκιώνοντας την κυκλοφορία

Η σκίαση της κυκλοφορίας είναι παρόμοια με τις αναπτύξεις μπλε-πράσινου, αλλά αντί να χρησιμοποιεί συνθετικές δοκιμές για την επικύρωση του «πράσινου» περιβάλλοντος, η τεχνολογία δρομολόγησης αντιγράφει όλη την εισερχόμενη κυκλοφορία παραγωγής και την αντικατοπτρίζει σε μια ξεχωριστή δοκιμαστική ανάπτυξη που δεν είναι ακόμη δημόσια. Έτσι, η σκίαση της κυκλοφορίας δημιουργεί μια ακριβή εικόνα του τι θα συνέβαινε εάν η νέα έκδοση αναπτύχθηκε, με βάση την πραγματική κίνηση. Ταυτόχρονα, η σκίαση της κυκλοφορίας διασφαλίζει ότι οι δοκιμές δεν επηρεάζουν την πραγματική παραγωγή. Στην πράξη, οι προγραμματιστές μπορούν να επιλέξουν να αντιγράψουν ένα καθορισμένο ποσοστό αιτημάτων σε μια δοκιμαστική υπηρεσία, όπου μπορούν στη συνέχεια να πραγματοποιήσουν δοκιμές ενοποίησης και συγκριτική αξιολόγηση επιδόσεων (είτε χειροκίνητα είτε στο πλαίσιο ενός αυτοματοποιημένου αγωγού CI / CD).

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

Τέσσερις στρατηγικές, ένας στόχος

Αυτές οι τεχνικές δρομολόγησης προσφέρουν όλες διαφορετικές, αλλά σχετικές μεθόδους βοήθειας στην ανακάλυψη, τον μετριασμό και τον έλεγχο των ελαττωμάτων σε εφαρμογές που βασίζονται σε μικροσυσκευές. Είναι ισχυρά εργαλεία για την αντιμετώπιση σφαλμάτων, ζητημάτων απόδοσης και τρωτών σημείων ασφαλείας, ιδιαίτερα όταν αναπτύσσονται ως μέρος ενός αγωγού συνεχούς ολοκλήρωσης και παράδοσης (CI / CD) από άκρο σε άκρο.

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

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

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

Ο Manuel Zapf είναι ο επικεφαλής του προϊόντος OSS στο Containous, μια εταιρεία δικτύωσης που βασίζεται στο cloud πίσω από τα έργα ανοιχτού κώδικα Traefik και Maesh.

Το New Tech Forum παρέχει έναν χώρο για να εξερευνήσετε και να συζητήσετε την αναδυόμενη τεχνολογία σε πρωτοφανές βάθος και εύρος. Η επιλογή είναι υποκειμενική, με βάση την επιλογή των τεχνολογιών που πιστεύουμε ότι είναι σημαντικές και έχουν μεγάλο ενδιαφέρον για τους αναγνώστες. δεν αποδέχεται ασφάλεια μάρκετινγκ για δημοσίευση και διατηρεί το δικαίωμα να επεξεργαστεί όλο το περιεχόμενο. Στείλτε όλες τις ερωτήσεις στο [email protected].

$config[zx-auto] not found$config[zx-overlay] not found