4 μηχανικοί, 7000 διακομιστές και μία παγκόσμια πανδημία

Γεια σου Χαμπρ! Σας παρουσιάζω τη μετάφραση του άρθρου "4 μηχανικοί, 7000 διακομιστές και μία παγκόσμια πανδημία" από τον Adib Daw.

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

Ποιοι είμαστε

Είμαστε μια ομάδα 4 πιγκουίνων που τους αρέσει να γράφουν κώδικα και να εργάζονται με υλικό. Στον ελεύθερο χρόνο μας, είμαστε υπεύθυνοι για την ανάπτυξη, τη συντήρηση και τη λειτουργία ενός στόλου με περισσότερους από 7000 φυσικούς διακομιστές με Linux, κατανεμημένους σε 3 διαφορετικά κέντρα δεδομένων στις Ηνωμένες Πολιτείες.

Είχαμε επίσης την ευκαιρία να το κάνουμε αυτό 10 km μακριά από τοποθεσίες, από την άνεση του γραφείου μας, το οποίο βρίσκεται σε μικρή απόσταση με το αυτοκίνητο από την παραλία στη Μεσόγειο Θάλασσα.

Ζητήματα κλίμακας

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

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

Κατακτήστε τους Τομείς σας

Για να λύσουμε πολλά από αυτά τα προβλήματα, αναλύσαμε τον κύκλο ζωής του διακομιστή στο Outbrain στα κύρια στοιχεία του και τα ονομάσαμε τομείς. Για παράδειγμα, ένας τομέας καλύπτει τις απαιτήσεις εξοπλισμού, ένας άλλος καλύπτει τα logistics που σχετίζονται με τον κύκλο ζωής του αποθέματος και ένας τρίτος καλύπτει τις επικοινωνίες με το προσωπικό πεδίου. Υπάρχει ένα άλλο που αφορά την παρατηρησιμότητα υλικού, αλλά δεν θα περιγράψουμε όλα τα σημεία. Στόχος μας ήταν να μελετήσουμε και να ορίσουμε τομείς ώστε να μπορούν να αφαιρεθούν χρησιμοποιώντας κώδικα. Μόλις αναπτυχθεί μια αφαίρεση εργασίας, μεταφέρεται σε μια χειροκίνητη διαδικασία που αναπτύσσεται, δοκιμάζεται και τελειοποιείται. Τέλος, ο τομέας έχει ρυθμιστεί ώστε να ενσωματώνεται με άλλους τομείς μέσω API, διαμορφώνοντας ένα ολιστικό, δυναμικό και συνεχώς εξελισσόμενο σύστημα κύκλου ζωής υλικού που μπορεί να αναπτυχθεί, να ελεγχθεί και να παρατηρηθεί. Όπως όλα τα άλλα συστήματα παραγωγής μας.

Η υιοθέτηση αυτής της προσέγγισης μας επέτρεψε να λύσουμε σωστά πολλά προβλήματα - δημιουργώντας εργαλεία και αυτοματισμούς.

Χρειάζεστε Domain

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

  • Δυνατότητα προσαρμογής της προβολής μόνο σχετικών πεδίων (απλή)
  • Ανοικτά API (επεκτάσιμα)
  • Γνωστό στην ομάδα μας (καταλαβαίνεται)
  • Ενοποίηση με τις υπάρχουσες ροές εργασίας μας (ενοποιημένη)

Δεδομένου ότι χρησιμοποιούμε το Jira για τη διαχείριση των σπριντ και των εσωτερικών μας εργασιών, αποφασίσαμε να δημιουργήσουμε ένα άλλο έργο που θα βοηθούσε τους πελάτες μας να υποβάλλουν εισιτήρια και να παρακολουθούν τα αποτελέσματά τους. Η χρήση του Jira για εισερχόμενα αιτήματα και για τη διαχείριση εσωτερικών εργασιών μας επέτρεψε να δημιουργήσουμε έναν ενιαίο πίνακα Kanban που μας επέτρεπε να εξετάσουμε όλες τις διαδικασίες στο σύνολό τους. Οι εσωτερικοί μας «πελάτες» είδαν μόνο αιτήματα για εξοπλισμό, χωρίς να εμβαθύνουν στις λιγότερο σημαντικές λεπτομέρειες πρόσθετων εργασιών (όπως βελτίωση εργαλείων, διόρθωση σφαλμάτων).

4 μηχανικοί, 7000 διακομιστές και μία παγκόσμια πανδημία
Πίνακας Kanban στο Jira

Ως μπόνους, το γεγονός ότι οι ουρές και οι προτεραιότητες ήταν πλέον ορατές σε όλους μας επέτρεπε να κατανοήσουμε «πού στην ουρά» βρισκόταν ένα συγκεκριμένο αίτημα και τι προηγήθηκε. Αυτό επέτρεψε στους ιδιοκτήτες να επαναπροσδιορίσουν τα δικά τους αιτήματα χωρίς να χρειάζεται να επικοινωνήσουν μαζί μας. Σύρετε το και αυτό είναι όλο. Μας επέτρεψε επίσης να παρακολουθούμε και να αξιολογούμε τις SLA μας σύμφωνα με τους τύπους αιτημάτων με βάση τις μετρήσεις που δημιουργούνται στο Jira.

Τομέας κύκλου ζωής εξοπλισμού

Προσπαθήστε να φανταστείτε την πολυπλοκότητα της διαχείρισης του υλικού που χρησιμοποιείται σε κάθε rack διακομιστή. Το ακόμη χειρότερο είναι ότι πολλά κομμάτια υλικού (RAM, ROM) μπορούν να μετακινηθούν από την αποθήκη στο δωμάτιο διακομιστή και πίσω. Επίσης αποτυγχάνουν ή διαγράφονται και αντικαθίστανται και επιστρέφονται στον προμηθευτή για αντικατάσταση/επισκευή. Όλα αυτά πρέπει να κοινοποιούνται στους υπαλλήλους της υπηρεσίας συνεγκατάστασης που εμπλέκονται στη φυσική συντήρηση του εξοπλισμού. Για να λύσουμε αυτά τα προβλήματα, δημιουργήσαμε ένα εσωτερικό εργαλείο που ονομάζεται Floppy. Το καθήκον του είναι:

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

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

4 μηχανικοί, 7000 διακομιστές και μία παγκόσμια πανδημίαΠίνακας ελέγχου εξοπλισμού αποθήκης στα Γραφάνα

Για συσκευές διακομιστή που καλύπτονται από εγγύηση, χρησιμοποιούμε ένα άλλο εργαλείο που ονομάζουμε Dispatcher. Αυτός:

  • Συλλέγει αρχεία καταγραφής συστήματος.
  • Δημιουργεί αναφορές στη μορφή που απαιτείται από τον προμηθευτή.
  • Δημιουργεί ένα αίτημα από τον προμηθευτή μέσω API.
  • Λαμβάνει και αποθηκεύει το αναγνωριστικό της εφαρμογής για περαιτέρω παρακολούθηση της προόδου της.

Μόλις γίνει αποδεκτή η αξίωσή μας (συνήθως εντός εργάσιμων ωρών), το ανταλλακτικό αποστέλλεται στο κατάλληλο κέντρο δεδομένων και γίνεται αποδεκτό από το προσωπικό.

4 μηχανικοί, 7000 διακομιστές και μία παγκόσμια πανδημία
Έξοδος κονσόλας Jenkins

Τομέας Επικοινωνίας

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

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

  • Απλότητα;
  • Αυτονομία;
  • Αποδοτικότητα;
  • Αξιοπιστία.

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

Για να το πετύχουμε αυτό, εγκαταστήσαμε iPad σε κάθε κέντρο δεδομένων. Μετά τη σύνδεση στον διακομιστή, θα συμβούν τα εξής:

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

Επιπλέον, ετοιμάσαμε και ένα Slack bot για να βοηθήσουμε τον τεχνικό. Χάρη σε ένα ευρύ φάσμα δυνατοτήτων (επεκτείναμε συνεχώς τη λειτουργικότητα), το bot έκανε τη δουλειά του πιο εύκολη και έκανε τη ζωή μας πολύ πιο εύκολη. Με αυτόν τον τρόπο βελτιστοποιήσαμε το μεγαλύτερο μέρος της διαδικασίας επαναχρησιμοποίησης και συντήρησης διακομιστών, αποβάλλοντας τον εαυτό μας από τη ροή εργασίας.

4 μηχανικοί, 7000 διακομιστές και μία παγκόσμια πανδημία
iPad σε ένα από τα κέντρα δεδομένων μας

Τομέας υλικού

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

  • Ανίχνευση αστοχίας υλικού
  • Καταστάσεις διακομιστή (ενεργές, φιλοξενούμενες, ζόμπι, κ.λπ.)
  • Κατανάλωση ενέργειας
  • Έκδοση υλικολογισμικού
  • Analytics για όλη αυτήν την επιχείρηση

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

4 μηχανικοί, 7000 διακομιστές και μία παγκόσμια πανδημία
Ενεργειακό ταμπλό στη Γραφάνα

Και τότε εμφανίστηκε ο COVID-19...

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

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

Αλλά, όπως είπαμε, το μοντέλο μας ήδη υποθέτει ότι:

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

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

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

Πρωτότυπο: tyts

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο