4 Ingenieuren, 7000 Serveren an eng global Pandemie

Hey Habr! Ech presentéieren Iech d'Iwwersetzung vum Artikel "4 Ingenieuren, 7000 Serveren, an eng global Pandemie" vum Adib Daw.

Wann dës Iwwerschrëft net e liichte Zidderen duerch Är Wirbelsäule schéckt, sollt Dir op den nächsten Abschnitt sprangen oder eis Säit besichen gewidmet fir Carrière an der Firma - mir géife gären schwätzen.

Ween mir sinn

Mir sinn en Team vu 4 Pinguine déi gär Code schreiwen a mat Hardware schaffen. An eiser Fräizäit si mir verantwortlech fir eng Flott vun iwwer 7000 physesch Servere mat Linux z'installéieren, z'erhalen an ze bedreiwen, verdeelt iwwer 3 verschidden Datenzenteren an den USA.

Mir haten och d'Méiglechkeet dëst 10 km ewech vun Siten ze maachen, aus dem Confort vun eisem eegene Büro, deen eng kuerz Fahrt vun der Plage um Mëttelmier läit.

Problemer vun der Skala

Obwuel et Sënn mécht fir e Startup ze starten andeems se seng Infrastruktur an der Wollek hosten wéinst der relativ gerénger initialer Investitioun, hu mir bei Outbrain decidéiert eis eegen Serveren ze benotzen. Mir hunn dat gemaach, well d'Käschte vun der Cloudinfrastruktur wäit iwwer d'Käschte fir eis eegen Ausrüstung ze bedreiwen, déi an Datenzenteren no der Entwécklung op e gewëssen Niveau sinn. Zousätzlech bitt Äre Server den héchste Grad vu Kontroll- a Problembehandlungsfäegkeeten.

Wéi mir entwéckelen, sinn d'Problemer ëmmer an der Géigend. Ausserdeem kommen se normalerweis a Gruppen. Server Liewenszyklus Gestioun erfuerdert konstant Selbstverbesserung fir am Kontext vun der séierer Erhéijung vun der Zuel vun de Serveren richteg ze funktionéieren. Software Methoden fir d'Gestioun vun Servergruppen an Datenzenteren ginn séier onwuel. D'Detektioun, d'Problembehandlung an d'Vermeidung vu Feeler beim Treffen vun de QoS-Standarden gëtt eng Saach fir extrem variéiert Arrays vun Hardware ze jongléieren, variéierend Aarbechtsbelaaschtungen, Upgradezäiten an aner flott Saachen, iwwer déi kee sech Suerge wëll maachen.

Master Är Domains

Fir vill vun dëse Problemer ze léisen, hu mir de Server Liewenszyklus am Outbrain an seng Haaptkomponenten ofgebrach an se Domainen genannt. Zum Beispill, een Domain deckt Ausrüstungsbedéngungen, en anert deckt Logistik am Zesummenhang mam Inventar Liewenszyklus, an en Drëttel deckt Kommunikatioun mat Feldpersonal. Et gëtt eng aner betreffend Hardware Observabilitéit, awer mir wäerten net all Punkte beschreiwen. Eist Zil war Domainen ze studéieren an ze definéieren sou datt se mat Code abstrakt kënne ginn. Wann eng Aarbecht Abstraktioun entwéckelt ass, gëtt se op e manuelle Prozess transferéiert deen ofgebaut, getest a raffinéiert gëtt. Schlussendlech ass d'Domain konfiguréiert fir mat aneren Domainen iwwer APIen z'integréieren, en holisteschen, dynameschen an ëmmer evoluéierende Hardware Liewenszyklus System ze bilden deen deployéierbar, testbar an observéierbar ass. Just wéi all eis aner Produktiounssystemer.

Dës Approche unzehuelen erlaabt eis vill Probleemer korrekt ze léisen - andeems Dir Tools an Automatisatioun erstallt.

Braucht Domain

Och wann E-Mail a Spreadsheets e liewensfäeg Wee waren fir d'Nofro an de fréie Deeg z'erreechen, war et keng erfollegräich Léisung, besonnesch wann d'Zuel vun de Serveren an de Volume vun erakommen Ufroen e gewëssen Niveau erreecht hunn. Fir déi erakommen Ufroe besser z'organiséieren an ze prioritären vis-à-vis vun der rapider Expansioun, hu mir missen en Ticketsystem benotzen deen ubitt:

  • Fäegkeet fir d'Vue vun nëmmen relevante Felder ze personaliséieren (einfach)
  • Open APIen (erweiterbar)
  • Bekannt un eisem Team (verstan)
  • Integratioun mat eise existente Workflows (vereenegt)

Well mir Jira benotze fir eis Sprints an intern Aufgaben ze managen, hu mir beschloss en anere Projet ze kreéieren deen eise Clienten hëllefe Ticketen ofzeginn an hir Resultater verfollegen. D'Benotzung vun Jira fir erakommen Ufroen a fir intern Aufgaben ze managen huet eis erlaabt en eenzege Kanban Board ze kreéieren deen eis erlaabt huet all Prozesser als Ganzt ze kucken. Eis intern "Clienten" hunn nëmmen Ufroe fir Ausrüstung gesinn, ouni an déi manner bedeitend Detailer vun zousätzlech Aufgaben ze verdéiwen (wéi Tools ze verbesseren, Bugs ze fixéieren).

4 Ingenieuren, 7000 Serveren an eng global Pandemie
Kanban Verwaltungsrot zu Jira

Als Bonus huet d'Tatsaach, datt Schlaangen a Prioritéite elo fir jiddereen sichtbar waren, et méiglech gemaach ze verstoen "wou an der Schlaang" eng bestëmmte Demande war a wat virdru war. Dëst erlaabt d'Besëtzer hir eege Ufroe nei ze prioritéieren ouni eis ze kontaktéieren. Drag et an dat ass et. Et huet eis och erlaabt eis SLAs ze iwwerwaachen an ze evaluéieren no Ufrotypen baséiert op de Metriken, déi am Jira generéiert ginn.

Equipement Liewenszyklus Domain

Probéiert Iech d'Komplexitéit vun der Gestioun vun der Hardware an all Server Rack virzestellen. Wat nach méi schlëmm ass, ass datt vill Stécker vun Hardware (RAM, ROM) aus dem Lager an de Serverraum an zréck geplënnert kënne ginn. Si feelen och oder ginn ofgeschriwwe an ersat an zréck an de Fournisseur fir Ersatz / Reparatur. All dëst muss un d'Mataarbechter vum Colocation Service kommunizéiert ginn, déi am kierperlechen Ënnerhalt vun der Ausrüstung involvéiert sinn. Fir dës Problemer ze léisen, hu mir en internt Tool mam Numm Floppy erstallt. Seng Aufgab ass:

  • Gestioun vu Kommunikatiounen mat Feldpersonal, Aggregatioun vun all Informatioun;
  • D'Aktualiséierung vun den "Lagerhaus" Daten no all ofgeschlossenen a verifizéierten Ausrüstungsunterhaltsjob.

D'Lager, am Tour, gëtt visualiséiert mat Grafana, déi mir benotze fir all eis Metriken ze plotten. Also benotze mir datselwecht Tool fir Lagervisualiséierung a fir aner Produktiounsbedierfnesser.

4 Ingenieuren, 7000 Serveren an eng global PandemieWarehouse Equipement Kontroll Panel zu Grafana

Fir Servergeräter déi ënner Garantie sinn, benotze mir en anert Tool dat mir Dispatcher nennen. Hien:

  • Sammelt System Logbicher;
  • Generéiert Berichter am Format erfuerderlech vum Verkeefer;
  • Erstellt eng Ufro vum Verkeefer iwwer API;
  • Kritt a späichert den Applikatiounsidentifizéierer fir weider Verfollegung vu sengem Fortschrëtt.

Wann eis Fuerderung akzeptéiert ass (normalerweis bannent Aarbechtszäiten), gëtt den Ersatzdeel an de passenden Rechenzentrum geschéckt an vum Personal ugeholl.

4 Ingenieuren, 7000 Serveren an eng global Pandemie
Jenkins Konsol Ausgang

Kommunikatioun Domain

Fir de schnelle Wuesstum vun eisem Geschäft ze halen, deen ëmmer méi Kapazitéit erfuerdert, hu mir d'Art a Weis wéi mir mat technesche Spezialisten an de lokale Rechenzentren schaffen, unzepassen. Wann d'éischt Skaléierung bedeit nei Serveren ze kafen, dann ass et no engem Konsolidéierungsprojet (baséiert op den Iwwergank op Kubernetes) eppes ganz anescht. Eis Evolutioun vu "Racken derbäisetzen" op "Serveren ëmsetzen."

D'Benotzung vun enger neier Approche erfuerdert och nei Tools, déi et méiglech gemaach hunn méi bequem mat Datenzenterpersonal ze interagéieren. Dës Tools waren erfuerderlech fir:

  • Einfachheet;
  • Autonomie;
  • Effizienz;
  • Zouverlässegkeet.

Mir hu misse vun der Kette ausschléissen an d'Aarbecht strukturéieren sou datt d'Techniker direkt mat Serverausrüstung kënne schaffen. Ouni eis Interventioun an ouni reegelméisseg all dës Froe betreffend Aarbechtsbelaaschtung, Aarbechtszäiten, Disponibilitéit vun Ausrüstung, etc.

Fir dëst z'erreechen, hu mir iPads an all Datenzenter installéiert. Nom Uschloss un de Server geschitt déi folgend:

  • Den Apparat bestätegt datt dëse Server jo e bëssen Aarbecht brauch;
  • Uwendungen déi um Server lafen sinn zou (wann néideg);
  • Eng Rei vun Aarbechtsinstruktiounen gëtt op engem Slack Kanal gepost an erkläert d'Schrëtt erfuerderlech;
  • Nom Ofschloss vun der Aarbecht iwwerpréift den Apparat d'Korrektheet vum definitiven Zoustand vum Server;
  • Restarts Uwendungen wann néideg.

Zousätzlech hu mir och e Slack Bot virbereet fir den Techniker ze hëllefen. Dank enger breet Palette vu Fäegkeeten (mir hunn d'Funktionalitéit stänneg ausgebaut), huet de Bot hir Aarbecht méi einfach gemaach an eist Liewen vill méi einfach gemaach. Op dës Manéier hu mir de gréissten Deel vum Prozess fir Serveren z'erhalen an z'erhalen optimiséiert, eis selwer aus dem Workflow eliminéiert.

4 Ingenieuren, 7000 Serveren an eng global Pandemie
iPad an engem vun eisen Datenzenteren

Hardware Domain

Zouverlässeg Skala vun eiser Datezentruminfrastruktur erfuerdert gutt Visibilitéit an all Komponent, zum Beispill:

  • Detektioun vun Hardware Echec
  • Server Staaten (aktiv, gehost, Zombie, etc.)
  • Energieverbrauch
  • Firmware Versioun
  • Analytics fir dëst ganzt Geschäft

Eis Léisungen erlaben eis Entscheedungen ze treffen iwwer wéi, wou a wéini Ausrüstung kaaft ginn, heiansdo souguer ier et tatsächlech gebraucht gëtt. Och duerch Bestëmmung vum Niveau vun der Belaaschtung op verschidden Ausrüstung konnte mir eng verbessert Ressourceallokatioun erreechen. Besonnesch Energieverbrauch. Mir kënnen elo informéiert Entscheedungen iwwer d'Plazéierung vun engem Server maachen, ier en am Rack installéiert ass a mat enger Stroumquell verbonnen ass, während hirem Liewenszyklus a bis seng eventuell Pensioun.

4 Ingenieuren, 7000 Serveren an eng global Pandemie
Energie Dashboard zu Grafana

An dunn ass COVID-19 opgetaucht ...

Eist Team erstellt Technologien déi Medienfirmen a Verëffentlecher online erméiglechen fir Besucher ze hëllefen relevant Inhalter, Produkter a Servicer ze fannen déi hinnen interesséieren kënnen. Eis Infrastruktur ass entwéckelt fir den Traffic ze déngen, deen generéiert gëtt wann e puer spannend Neiegkeeten verëffentlecht ginn.

Déi intensiv Medienofdeckung ronderëm COVID-19, gekoppelt mat der Erhéijung vum Traffic, huet bedeit datt mir dréngend musse léieren wéi mir mat dësen Drock eens ginn. Desweideren huet dat alles misse während enger globaler Kris gemaach ginn, wou Versuergungsketten gestéiert goufen an de gréissten Deel vum Personal doheem war.

Awer, wéi mir gesot hunn, gëtt eise Modell scho ugeholl datt:

  • D'Ausrüstung an eisen Datenzenteren ass zum gréissten Deel fir eis kierperlech onzougänglech;
  •  Mir maachen bal all kierperlech Aarbecht op afstand;
  • D'Aarbecht gëtt asynchron, autonom a grousser Skala gemaach;
  • Mir treffen d'Nofro fir Ausrüstung mat der Method "Build from Parts" anstatt nei Ausrüstung ze kafen;
  • Mir hunn e Lager, dat eis erlaabt eppes Neies ze kreéieren, an net nëmmen Routine-Reparaturen auszeféieren.

Esou hunn déi global Restriktiounen, déi verhënnert hunn, datt vill Firmen e physeschen Zougang zu hiren Datenzenteren kréien, wéineg Impakt op eis.A wat Ersatzdeeler a Server ugeet, jo, mir hu probéiert de stabile Fonctionnement vun der Ausrüstung ze garantéieren. Mä dat gouf gemaach mam Zil méiglech Tëschefäll ze verhënneren, wann et op eemol erausstellt, datt e Stéck Hardware net verfügbar ass. Mir hunn dofir gesuergt datt eis Reserven gefëllt goufen ouni d'Zil ze erreechen déi aktuell Nofro gerecht ze ginn.

Zesummegefaasst wëll ech soen datt eis Approche fir an der Rechenzentrumindustrie ze schaffen beweist datt et méiglech ass d'Prinzipien vum gudde Code Design op d'physesch Gestioun vun engem Rechenzentrum anzesetzen. A vläicht fannt Dir et interessant.

Original: Flitter

Source: will.com

Setzt e Commentaire