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

Κεντρικά πλαίσια νοσοκομείου; Κάτι σημαντικό. Η ανθεκτικότητα της εφαρμογής Candy Crush στο κινητό σας; Πιθανώς λίγο χαμηλότερα στη συνολική λίστα προτεραιοτήτων.

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

Τι είναι το Netflix Chaos Engineering;

20 Σεπτεμβρίου 2015.

Όλα ήσυχα στο δυτικό μέτωπο, όταν, ξαφνικά, πολλοί σημαντικοί εταιρικοί διακομιστές Amazon Web Services κατεβαίνουν χωρίς λέξη.

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

instagram viewer

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

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

Κανένας άλλος δεν ήταν έτοιμος όταν χτύπησε το μεγάλο κύμα. Το σύστημα Netflix ήταν αρκετά ισχυρό για να αντιμετωπίσει τον εαυτό του. Συμπέρασμα? Αυτοί οι χαοτικοί εγκέφαλοι μπορεί να είναι σε κάτι εδώ.

Σκόπιμα εκμηδενίζοντας αυτούς που σας αγαπούν

"Το Chaos Engineering είναι η πειθαρχία του πειραματισμού σε ένα σύστημα με σκοπό την οικοδόμηση εμπιστοσύνης στην ικανότητα του συστήματος να αντέχει σε ταραχώδεις συνθήκες στην παραγωγή."

Αρχές του Μανιφέστο του Χάους

Αυτή είναι η καρδιά της μηχανικής χάους - στην ουσία, ένα "τρυπάνι πυρκαγιάς" που επιβάλλεται στο σύστημα κατά τις εργάσιμες ώρες, όταν υπάρχουν διαθέσιμα μάτια και χέρια για την αντιμετώπιση της πρόκλησης που παρουσιάζεται. Η ικανότητα ενός δεδομένου συστήματος να ανέχεται την αποτυχία δοκιμάζεται καθώς εκτίθενται τυχόν ευπάθειες.

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

Πραγματική αποτυχία; Μπορεί να είναι δαπανηρό ως κόλαση, και αυτό υπερβαίνει τις νομισματικές επιπτώσεις. Ακόμα και περίοδοι διακοπής λειτουργίας, χωρίς πραγματικό σφάλμα ασφάλειας, πιθανότατα θα οδηγήσουν σε πολλές χαμένες ευκαιρίες για να κερδίσετε έσοδα. Γιατί να περιμένετε μια κατάσταση έκτακτης ανάγκης να σας τυφλώσει;

Οι πίθηκοι πίσω από την τρέλα

Ορισμένες εταιρείες θα υιοθετήσουν ένα μοντέλο «κόκκινης ομάδας» που θα τοποθετήσει ομάδες προγραμματιστών εναντίον των αδελφών τους σε διάφορα τμήματα. Το κλασικό παράδειγμα που το Netflix εγκατέστησε, ωστόσο, χρησιμοποιεί το "Simian Army". Αυτά τα bots κάνουν τη βρώμικη δουλειά για αυτούς δίκαια και εντελώς τυχαία.

Παράφρων? Στον απλό, ίσως. Σύμφωνα με τα λόγια του συγγραφέα "Chaos Monkeys" Antonio Garcia Martinez:

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

Μια πολύχρωμη αναλογία. Ωστόσο, δεν είναι όλοι οι Σιμίνοι σκληροί: Ο Γιατρός Monkey παρακολουθεί την απόδοση του συστήματος, για παράδειγμα. Όταν όμως το Chaos Kong σταματά για μια επίσκεψη, όλα τα στοιχήματα είναι εκτός λειτουργίας. Αυτός ο χαρακτήρας θα καταργήσει μια ολόκληρη ζώνη διαθεσιμότητας AWS.

Σχετιζομαι με: Πώς αξιολογούνται οι ευπάθειες ασφαλείας;

Μηχανική χάους και η επιστημονική μέθοδος

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

Πριν ρίξετε το βαρέλι πιθήκων έξω στο τραπέζι, η χάος της μηχανικής απαιτεί λίγη δουλειά.

  1. Πρώτα πρέπει να προσδιορίσετε τι θεωρείτε ως «σταθερή», υγιή, λειτουργική κατάσταση για το σύστημά σας. Αυτός θα είναι ο «έλεγχος» στον οποίο μετράτε τυχόν απτά αποτελέσματα.
  2. Αρχίστε να σκέφτεστε πώς αυτή η κατάσταση θα εξισορροπηθεί από την εισβολή της ενορχηστρωμένης αποτυχίας. Προγραμματίστε το κακόβουλο λογισμικό ανίχνευσης ώστε να επηρεάζει μόνο μια περιορισμένη, ελεγχόμενη περιοχή του συστήματός σας.
  3. Εισαγάγετε τον "εισβολέα" και αφήστε το σύστημα να ανταποκριθεί.
  4. Παρατηρήστε και ερμηνεύστε τυχόν διαφορές μεταξύ του συστήματος όπως υπάρχει τώρα και πώς συμπεριφερόταν στο παρελθόν, ενώ βρίσκονταν σε ομοιόσταση. Αυξήστε την "ακτίνα έκρηξης" της πρόσκρουσης μέχρι να εντοπίσετε μια ευπάθεια ή να φτάσετε σε πλήρη κλίμακα, όποιο από τα δύο είναι πρώτο.

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

"Επειδή κανένα στοιχείο δεν μπορεί να εγγυηθεί 100% χρόνο λειτουργίας (και ακόμη και το πιο ακριβό υλικό τελικά αποτυγχάνει), πρέπει να το κάνουμε σχεδιάστε μια αρχιτεκτονική cloud όπου τα μεμονωμένα στοιχεία μπορούν να αποτύχουν χωρίς να επηρεάζεται η διαθεσιμότητα του συνόλου Σύστημα."

ο Netflix Ιστολόγιο

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

Σχετιζομαι με: Τι είναι το Zero-Day Exploit;

Αξίζει ο μηχανικός χάους;

Εάν θέλετε να κατανοήσετε ένα περίπλοκο σύστημα - ενοχλήστε το

- Farhan Thawar (@fnthawar) 26 Μαΐου 2021

Οι επικριτές θα πουν ότι κανένα παιχνίδι back-end δεν αξίζει να επηρεάσει την εμπειρία ενός πελάτη, ακόμα κι αν μόνο για λίγο και κατά περίπτωση. Όσοι είναι υπέρ της μηχανικής χάους, ωστόσο, θα αντικρούσουν το γεγονός ότι αυτές οι «προγραμματισμένες διακοπές λειτουργίας» θα είναι πολύ μικρότερες από αυτές που βίωσε η AWS το 2015. Εάν ένα μικρό, προγραμματισμένο πρόβλημα σάς θέσει σε θέση να αποφύγετε την παρουσία ενός πολύ μεγαλύτερου προβλήματος, ο προγραμματισμός του αρχικού συμβάντος μπορεί να είναι ο καλύτερος τρόπος προετοιμασίας. Λιγότεροι χρήστες θα επηρεαστούν συνολικά. Τα μαθηματικά λειτουργούν.

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

Silicon Valley: όπου τα όνειρα πηγαίνουν να πεθάνουν

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

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

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

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Τι είναι η μεθοδολογία προγραμματισμού Agile;

Είτε κάνετε αίτηση για εργασίες προγραμματισμού είτε θέλετε έναν πιο αποτελεσματικό τρόπο εργασίας, θα πρέπει να γνωρίζετε για το Agile.

Διαβάστε Επόμενο

Σχετικά θέματα
  • Προγραμματισμός
  • Προγραμματισμός
Σχετικά με τον Συγγραφέα
Έμμα Γκαρόφαλο (Δημοσιεύθηκαν 25 άρθρα)

Η Emma Garofalo είναι συγγραφέας που εδρεύει στο Πίτσμπουργκ της Πενσυλβανίας. Όταν δεν δουλεύει μακριά στο γραφείο της και θέλει ένα καλύτερο αύριο, συνήθως βρίσκεται πίσω από την κάμερα ή στην κουζίνα.

Περισσότερα από την Emma Garofalo

Εγγραφείτε στο Newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Ένα ακόμη βήμα…!

Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.

.