4 ingenjörer, 7000 servrar och en global pandemi

Hej, Habr! Jag presenterar för din uppmÀrksamhet en översÀttning av artikeln "4 ingenjörer, 7000 servrar och en global pandemi" av Adib Daw.

Om den rubriken inte fĂ„r en liten rysning lĂ€ngs ryggraden bör du hoppa till nĂ€sta stycke eller besöka vĂ„r sida tillĂ€gnad karriĂ€r i företaget – vi skulle vilja prata.

Vem vi Àr

Vi Àr ett team pÄ fyra pingviner som Àlskar att koda och arbeta med hÄrdvara. PÄ fritiden ansvarar vi för att driftsÀtta, underhÄlla och driva en flotta pÄ över 4 7000 fysiska servrar. Linux, fördelade över 3 olika datacenter över hela USA.

Vi hade ocksÄ möjlighet att göra detta 10 000 km frÄn platser, frÄn bekvÀmligheten av vÄrt eget kontor, som ligger en kort bilresa frÄn stranden vid Medelhavet.

Skala problem

Även om det Ă€r vettigt för en startup att börja med att hosta sin infrastruktur i molnet pĂ„ grund av den relativt lĂ„ga initiala investeringen, beslutade vi pĂ„ Outbrain att anvĂ€nda vĂ„ra egna servrar. Vi gjorde detta eftersom kostnaderna för molninfrastruktur vida överstiger kostnaderna för att driva vĂ„r egen utrustning placerad i datacenter efter utveckling till en viss nivĂ„. Dessutom ger din server högsta grad av kontroll och felsökningsmöjligheter.

NÀr vi utvecklas finns alltid problem i nÀrheten. Dessutom kommer de vanligtvis i grupp. Serverlivscykelhantering krÀver stÀndig sjÀlvförbÀttring för att kunna fungera korrekt i samband med den snabba ökningen av antalet servrar. Mjukvarumetoder för att hantera servergrupper i datacenter blir snabbt svÄrhanterliga. Att upptÀcka, felsöka och mildra misslyckanden samtidigt som man möter QoS-standarder blir en frÄga om att jonglera med extremt olika uppsÀttningar av hÄrdvara, varierande arbetsbelastningar, uppgraderingsdeadlines och andra trevliga saker som ingen vill oroa sig för.

BemÀstra dina domÀner

För att lösa mÄnga av dessa problem delade vi ner serverlivscykeln i Outbrain i dess huvudkomponenter och kallade dem domÀner. Till exempel tÀcker en domÀn utrustningskrav, en annan tÀcker logistik relaterad till lagerlivscykeln och en tredje tÀcker kommunikation med fÀltpersonal. Det finns en annan som gÀller observerbarhet av hÄrdvara, men vi kommer inte att beskriva alla punkter. VÄrt mÄl var att studera och definiera domÀner sÄ att de kunde abstraheras med hjÀlp av kod. NÀr en fungerande abstraktion vÀl har utvecklats överförs den till en manuell process som distribueras, testas och förfinas. Slutligen Àr domÀnen konfigurerad för att integreras med andra domÀner via API:er, vilket bildar ett holistiskt, dynamiskt och stÀndigt utvecklande hÄrdvarulivscykelsystem som Àr utplacerbart, testbart och observerbart. Precis som alla vÄra andra produktionssystem.

Genom att anvÀnda detta tillvÀgagÄngssÀtt kunde vi lösa mÄnga problem korrekt - genom att skapa verktyg och automatisering.

Behöver domÀn

Även om e-post och kalkylblad var ett gĂ„ngbart sĂ€tt att möta efterfrĂ„gan i början, var det inte en framgĂ„ngsrik lösning, sĂ€rskilt nĂ€r antalet servrar och volymen av inkommande förfrĂ„gningar nĂ„dde en viss nivĂ„. För att bĂ€ttre organisera och prioritera inkommande förfrĂ„gningar inför snabb expansion var vi tvungna att anvĂ€nda ett biljettsystem som kunde erbjuda:

  • Möjlighet att anpassa vyn av endast relevanta fĂ€lt (enkelt)
  • Öppna API:er (utbyggbara)
  • KĂ€nd för vĂ„rt team (förstĂ„tt)
  • Integration med vĂ„ra befintliga arbetsflöden (unified)

Eftersom vi anvÀnder Jira för att hantera vÄra sprints och interna uppgifter, bestÀmde vi oss för att skapa ett annat projekt som skulle hjÀlpa vÄra kunder att skicka in biljetter och spÄra deras resultat. Genom att anvÀnda Jira för inkommande förfrÄgningar och för att hantera interna uppgifter kunde vi skapa en enda Kanban-tavla som gjorde det möjligt för oss att titta pÄ alla processer som en helhet. VÄra interna "klienter" sÄg bara förfrÄgningar om utrustning, utan att fördjupa sig i de mindre viktiga detaljerna för ytterligare uppgifter (som att förbÀttra verktyg, fixa buggar).

4 ingenjörer, 7000 servrar och en global pandemi
Kanban styrelse i Jira

Som en bonus gjorde det faktum att köer och prioriteringar nu var synliga för alla det möjligt att förstÄ "var i kön" en viss förfrÄgan fanns och vad som föregick den. Detta gjorde det möjligt för Àgare att omprioritera sina egna förfrÄgningar utan att behöva kontakta oss. Dra det och det Àr det. Det gjorde det ocksÄ möjligt för oss att övervaka och utvÀrdera vÄra SLA:er enligt förfrÄgningstyper baserat pÄ mÀtvÀrdena genererade i Jira.

Equipment Lifecycle Domain

Försök att förestÀlla dig komplexiteten i att hantera hÄrdvaran som anvÀnds i varje serverrack. Vad som Àr Ànnu vÀrre Àr att mÄnga delar av hÄrdvara (RAM, ROM) kan flyttas frÄn lagret till serverrummet och tillbaka. De misslyckas ocksÄ eller skrivs av och ersÀtts och returneras till leverantören för utbyte/reparation. Allt detta mÄste meddelas samlokaliseringstjÀnstens anstÀllda som Àr involverade i det fysiska underhÄllet av utrustningen. För att lösa dessa problem skapade vi ett internt verktyg som heter Floppy. Hans uppgift Àr:

  • Hantering av kommunikation med fĂ€ltpersonal, sammanstĂ€llning av all information;
  • Uppdatering av "lager"-data efter varje avslutat och verifierat utrustningsunderhĂ„llsjobb.

Lagret i sin tur visualiseras med Grafana, som vi anvÀnder för att plotta alla vÄra mÀtvÀrden. DÀrför anvÀnder vi samma verktyg för lagervisualisering och för andra produktionsbehov.

4 ingenjörer, 7000 servrar och en global pandemiKontrollpanel för lagerutrustning i Grafana

För serverenheter som Àr under garanti anvÀnder vi ett annat verktyg som vi kallar Dispatcher. Han:

  • Samlar systemloggar;
  • Genererar rapporter i det format som krĂ€vs av leverantören;
  • Skapar en begĂ€ran frĂ„n leverantören via API;
  • Tar emot och lagrar applikationsidentifieraren för ytterligare spĂ„rning av dess framsteg.

NÀr vÄrt krav har godkÀnts (vanligtvis inom kontorstid), skickas reservdelen till lÀmpligt datacenter och accepteras av personalen.

4 ingenjörer, 7000 servrar och en global pandemi
Jenkins konsolutgÄng

KommunikationsdomÀn

För att hÀnga med i den snabba tillvÀxten av vÄr verksamhet, som krÀver stÀndigt ökad kapacitet, var vi tvungna att anpassa vÄrt sÀtt att arbeta med tekniska specialister i lokala datacenter. Om uppskalningen till en början innebar att köpa nya servrar, sÄ blev det efter ett konsolideringsprojekt (baserat pÄ övergÄngen till Kubernetes) nÄgot helt annat. VÄr utveckling frÄn att "lÀgga till rack" till "att ÄteranvÀnda servrar."

Att anvÀnda ett nytt tillvÀgagÄngssÀtt krÀvde ocksÄ nya verktyg som gjorde det möjligt att interagera mer bekvÀmt med datacenterpersonal. Dessa verktyg krÀvdes för att:

  • Enkelhet;
  • Autonomi;
  • Effektivitet;
  • PĂ„litlighet.

Vi fick utesluta oss frÄn kedjan och strukturera arbetet sÄ att tekniker direkt kunde arbeta med serverutrustning. Utan vÄrt ingripande och utan att regelbundet ta upp alla dessa frÄgor gÀllande arbetsbelastning, arbetstider, utrustningstillgÀnglighet osv.

För att uppnÄ detta installerade vi iPads i varje datacenter. Efter anslutning till servern kommer följande att hÀnda:

  • Enheten bekrĂ€ftar att den hĂ€r servern verkligen krĂ€ver en del arbete;
  • Applikationer som körs pĂ„ servern stĂ€ngs (vid behov);
  • En uppsĂ€ttning arbetsinstruktioner publiceras pĂ„ en Slack-kanal som förklarar de steg som krĂ€vs;
  • Efter avslutat arbete kontrollerar enheten riktigheten av serverns slutliga tillstĂ„nd;
  • Startar om applikationer vid behov.

Dessutom förberedde vi Àven en Slack-bot för att hjÀlpa teknikern. Tack vare ett brett utbud av funktioner (vi utökade stÀndigt funktionaliteten) gjorde boten deras arbete enklare och gjorde vÄrt liv mycket enklare. PÄ sÄ sÀtt optimerade vi det mesta av processen med att ÄteranvÀnda och underhÄlla servrar, vilket eliminerade oss sjÀlva frÄn arbetsflödet.

4 ingenjörer, 7000 servrar och en global pandemi
iPad i ett av vÄra datacenter

HÄrdvarudomÀn

En tillförlitlig skalning av vÄr datacenterinfrastruktur krÀver god insyn i varje komponent, till exempel:

  • Detektering av hĂ„rdvarufel
  • Serverstatus (aktiv, vĂ€rd, zombie, etc.)
  • Strömförbrukning
  • Firmware version
  • Analytics för hela den hĂ€r verksamheten

VÄra lösningar tillÄter oss att fatta beslut om hur, var och nÀr vi ska köpa utrustning, ibland till och med innan den faktiskt behövs. Genom att bestÀmma belastningsnivÄn pÄ olika utrustningar kunde vi ocksÄ uppnÄ en förbÀttrad resursallokering. I synnerhet energiförbrukning. Vi kan nu fatta vÀlgrundade beslut om placeringen av en server innan den installeras i racket och ansluts till en strömkÀlla, under hela dess livscykel och fram till dess att den slutligen gÄr i pension.

4 ingenjörer, 7000 servrar och en global pandemi
Energi Dashboard i Grafana

Och sÄ dök COVID-19 upp...

VÄrt team skapar teknologier som ger medieföretag och publicister online möjlighet att hjÀlpa besökare att hitta relevant innehÄll, produkter och tjÀnster som kan vara av intresse för dem. VÄr infrastruktur Àr utformad för att tjÀna trafik som genereras nÀr nÄgra spÀnnande nyheter slÀpps.

Den intensiva mediebevakningen kring COVID-19, tillsammans med den ökade trafiken, innebar att vi brÄdskande behövde lÀra oss hur vi hanterar dessa pÄfrestningar. Dessutom mÄste allt detta göras under en global kris, nÀr leveranskedjorna stördes och de flesta av personalen var hemma.

Men som vi sa, vÄr modell antar redan att:

  • Utrustningen i vĂ„ra datacenter Ă€r för det mesta fysiskt otillgĂ€nglig för oss;
  •  Vi utför nĂ€stan allt fysiskt arbete pĂ„ distans;
  • Arbetet utförs asynkront, autonomt och i stor skala;
  • Vi möter efterfrĂ„gan pĂ„ utrustning genom att anvĂ€nda metoden "bygga frĂ„n delar" istĂ€llet för att köpa ny utrustning;
  • Vi har ett lager som gör att vi kan skapa nĂ„got nytt, och inte bara utföra rutinmĂ€ssiga reparationer.

De globala begrÀnsningarna som hindrade mÄnga företag frÄn att fÄ fysisk tillgÄng till sina datacenter hade alltsÄ liten inverkan pÄ oss. Och nÀr det gÀller reservdelar och servrar, ja, vi försökte sÀkerstÀlla en stabil drift av utrustningen. Men detta gjordes i syfte att förhindra eventuella incidenter nÀr det plötsligt visar sig att nÄgon hÄrdvara inte Àr tillgÀnglig. Vi sÄg till att vÄra reserver fylldes utan att strÀva efter att möta nuvarande efterfrÄgan.

Sammanfattningsvis skulle jag vilja sÀga att vÄrt förhÄllningssÀtt till att arbeta i datacenterbranschen bevisar att det Àr möjligt att tillÀmpa principerna för god koddesign pÄ den fysiska hanteringen av ett datacenter. Och kanske kommer du att tycka att det Àr intressant.

original: Tyts

KĂ€lla: will.com

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster