4 inženjera, 7000 servera i jedna globalna pandemija

Hej Habr! Predstavljam Vašoj pažnji prevod članka "4 inženjera, 7000 servera i jedna globalna pandemija" od Adib Daw.

Ako vam taj naslov ne izaziva lagani drhtaj niz kičmu, trebali biste preskočiti na sljedeći pasus ili posjetiti našu stranicu posvećenu karijera u kompaniji - Hteli bismo da razgovaramo.

Ko smo mi

Mi smo tim od 4 pingvina koji vole pisati kod i raditi sa hardverom. U slobodno vrijeme odgovorni smo za implementaciju, održavanje i rad s flotom od preko 7000 fizičkih servera koji koriste Linux, raspoređenih u 3 različita podatkovna centra širom Sjedinjenih Država.

Imali smo priliku i to učiniti 10 km udaljenih od lokacija, iz udobnosti vlastite kancelarije, koja se nalazi na kratkoj vožnji od plaže na Sredozemnom moru.

Problemi obima

Iako je logično da startup započne hostovanjem svoje infrastrukture u oblaku zbog relativno niskih početnih ulaganja, mi u Outbrainu smo odlučili da koristimo sopstvene servere. To smo učinili jer troškovi infrastrukture oblaka daleko premašuju troškove rada naše vlastite opreme smještene u podatkovnim centrima nakon razvoja do određenog nivoa. Osim toga, vaš server pruža najviši stepen kontrole i mogućnosti rješavanja problema.

Kako se razvijamo, problemi su uvijek u blizini. Štaviše, obično dolaze u grupama. Upravljanje životnim ciklusom servera zahtijeva stalno samousavršavanje kako bi mogao pravilno funkcionirati u kontekstu brzog povećanja broja servera. Softverske metode za upravljanje grupama servera u centrima podataka brzo postaju glomazne. Otkrivanje, rješavanje problema i ublažavanje kvarova uz ispunjavanje QoS standarda postaje pitanje žongliranja izuzetno raznolikih nizova hardvera, različitih radnih opterećenja, rokova za nadogradnju i drugih lijepih stvari o kojima niko ne želi da brine.

Ovladajte svojim domenima

Da bismo riješili mnoge od ovih problema, razbili smo životni ciklus servera u Outbrainu na njegove glavne komponente i nazvali ih domene. Na primjer, jedna domena pokriva zahtjeve za opremom, druga pokriva logistiku koja se odnosi na životni ciklus zaliha, a treća pokriva komunikaciju s terenskim osobljem. Postoji još jedan koji se tiče hardverske opservabilnosti, ali nećemo opisivati ​​sve tačke. Naš cilj je bio da proučimo i definiramo domene kako bi se mogli apstrahovati pomoću koda. Jednom kada se razvije radna apstrakcija, ona se prenosi na ručni proces koji se postavlja, testira i usavršava. Konačno, domen je konfigurisan da se integriše sa drugim domenima putem API-ja, formirajući holistički, dinamičan i stalno evoluirajući sistem životnog ciklusa hardvera koji se može primeniti, testirati i posmatrati. Kao i svi ostali naši proizvodni sistemi.

Usvajanje ovog pristupa omogućilo nam je da mnoge probleme riješimo ispravno – kreiranjem alata i automatizacijom.

Potrebna je domena

Iako su e-pošta i proračunske tabele bili održiv način da se zadovolji potražnja u ranim danima, to nije bilo uspješno rješenje, posebno kada su broj servera i obim dolaznih zahtjeva dostigli određeni nivo. Kako bismo bolje organizirali i odredili prioritete pristiglih zahtjeva u suočenju sa brzim širenjem, morali smo koristiti sistem za prodaju karata koji je mogao ponuditi:

  • Mogućnost prilagođavanja prikaza samo relevantnih polja (jednostavno)
  • Otvoreni API-ji (proširivi)
  • Poznato našem timu (razume se)
  • Integracija sa našim postojećim tokovima rada (objedinjena)

Budući da Jira koristimo za upravljanje našim sprintovima i internim zadacima, odlučili smo kreirati još jedan projekt koji će pomoći našim klijentima da predaju karte i prate svoje rezultate. Korištenje Jira za dolazne zahtjeve i za upravljanje internim zadacima omogućilo nam je da kreiramo jednu Kanban ploču koja nam je omogućila da sagledamo sve procese u cjelini. Naši interni „klijenti“ su vidjeli samo zahtjeve za opremom, ne ulazeći u manje značajne detalje dodatnih zadataka (kao što su poboljšanje alata, popravljanje grešaka).

4 inženjera, 7000 servera i jedna globalna pandemija
Kanban tabla u Jira

Kao bonus, činjenica da su redovi i prioriteti sada bili vidljivi svima omogućila je razumijevanje „gdje u redu“ se nalazi određeni zahtjev i šta mu je prethodilo. Ovo je omogućilo vlasnicima da promijene prioritete svojih zahtjeva bez potrebe da nas kontaktiraju. Prevucite i to je to. To nam je također omogućilo da pratimo i procjenjujemo naše SLA-ove prema tipovima zahtjeva na osnovu metrike generirane u Jira.

Domena životnog ciklusa opreme

Pokušajte zamisliti složenost upravljanja hardverom koji se koristi u svakom serverskom stalku. Što je još gore, mnogi dijelovi hardvera (RAM, ROM) mogu biti premješteni iz skladišta u serversku sobu i nazad. Oni također pokvare ili se otpisuju i zamjenjuju i vraćaju dobavljaču na zamjenu/popravku. Sve ovo se mora prenijeti zaposlenicima kolokacijske službe koji su uključeni u fizičko održavanje opreme. Da bismo riješili ove probleme, kreirali smo interni alat pod nazivom Floppy. Njegov zadatak je:

  • Upravljanje komunikacijama s terenskim osobljem, agregiranje svih informacija;
  • Ažuriranje podataka „skladišta“ nakon svakog završenog i verifikovanog posla održavanja opreme.

Skladište se, zauzvrat, vizualizira pomoću Grafane, koju koristimo za iscrtavanje svih naših metrika. Dakle, koristimo isti alat za vizualizaciju skladišta i za druge proizvodne potrebe.

4 inženjera, 7000 servera i jedna globalna pandemijaCentrala za upravljanje magacinskom opremom u Grafani

Za serverske uređaje koji su pod garancijom koristimo drugi alat koji zovemo Dispečer. on:

  • Prikuplja sistemske zapise;
  • Generiše izveštaje u formatu koji zahteva dobavljač;
  • Kreira zahtjev od dobavljača preko API-ja;
  • Prima i pohranjuje identifikator aplikacije za dalje praćenje njenog napretka.

Nakon što je naša reklamacija prihvaćena (obično unutar radnog vremena), rezervni dio se šalje u odgovarajući data centar i prihvaća ga osoblje.

4 inženjera, 7000 servera i jedna globalna pandemija
Jenkins konzolni izlaz

Komunikacijski domen

Kako bismo održali korak sa brzim rastom našeg poslovanja, koji zahtijeva sve veće kapacitete, morali smo prilagoditi način rada sa tehničkim stručnjacima u lokalnim podatkovnim centrima. Ako je u početku skaliranje značilo kupovinu novih servera, onda je nakon projekta konsolidacije (baziranog na prelasku na Kubernetes) postalo nešto sasvim drugo. Naša evolucija od "dodavanja regala" do "prenamjene servera".

Korištenje novog pristupa zahtijevalo je i nove alate koji su omogućili udobniju interakciju sa osobljem data centra. Ovi alati su bili potrebni za:

  • Jednostavnost;
  • autonomija;
  • Efikasnost;
  • Pouzdanost.

Morali smo da se isključimo iz lanca i strukturiramo posao tako da tehničari mogu direktno da rade sa serverskom opremom. Bez naše intervencije i bez redovnog pokretanja svih ovih pitanja vezanih za opterećenje, radno vrijeme, dostupnost opreme itd.

Da bismo to postigli, instalirali smo iPad u svaki data centar. Nakon povezivanja na server, dogodit će se sljedeće:

  • Uređaj potvrđuje da ovaj server zaista zahtijeva određeni posao;
  • Aplikacije koje rade na serveru se zatvaraju (ako je potrebno);
  • Skup radnih uputstava je objavljen na Slack kanalu u kojem se objašnjavaju potrebni koraci;
  • Po završetku rada, uređaj provjerava ispravnost konačnog stanja servera;
  • Ponovo pokreće aplikacije ako je potrebno.

Osim toga, pripremili smo i Slack bota da pomognemo tehničaru. Zahvaljujući širokom spektru mogućnosti (konstantno smo proširivali funkcionalnost), bot im je olakšao rad i uvelike nam olakšao život. Na ovaj način smo optimizirali većinu procesa prenamjene i održavanja servera, eliminirajući se iz toka posla.

4 inženjera, 7000 servera i jedna globalna pandemija
iPad u jednom od naših data centara

Hardverska domena

Pouzdano skaliranje infrastrukture našeg podatkovnog centra zahtijeva dobru vidljivost svake komponente, na primjer:

  • Detekcija kvara hardvera
  • Stanja servera (aktivan, hostovan, zombi, itd.)
  • Potrošnja energije
  • Verzija firmvera
  • Analitika za cijeli ovaj posao

Naša rješenja nam omogućavaju da donesemo odluke o tome kako, gdje i kada kupiti opremu, ponekad čak i prije nego što je zaista potrebna. Takođe, određivanjem nivoa opterećenja različite opreme, uspjeli smo postići bolju alokaciju resursa. Konkretno, potrošnja energije. Sada možemo donositi informirane odluke o postavljanju servera prije nego što se instalira u stalak i poveže na izvor napajanja, tokom njegovog životnog ciklusa i do njegovog konačnog penzionisanja.

4 inženjera, 7000 servera i jedna globalna pandemija
Energy Dashboard u Grafani

A onda se pojavio COVID-19...

Naš tim stvara tehnologije koje osnažuju medijske kompanije i izdavače na mreži da pomognu posjetiteljima da pronađu relevantne sadržaje, proizvode i usluge koji bi im mogli biti od interesa. Naša infrastruktura je dizajnirana da opslužuje promet koji se stvara kada se objave neke uzbudljive vijesti.

Intenzivna medijska pokrivenost oko COVID-19, zajedno s povećanjem prometa, značila je da hitno moramo naučiti kako se nositi s ovim pritiscima. Štaviše, sve je to moralo da se uradi tokom globalne krize, kada su lanci snabdevanja bili poremećeni, a većina osoblja bila je kod kuće.

Ali, kao što smo rekli, naš model već pretpostavlja da:

  • Oprema u našim data centrima nam je, uglavnom, fizički nedostupna;
  •  Gotovo sve fizičke poslove obavljamo na daljinu;
  • Rad se obavlja asinhrono, autonomno i u velikom obimu;
  • Potražnju za opremom zadovoljavamo metodom „izgradi iz dijelova“ umjesto kupovinom nove opreme;
  • Imamo skladište koje nam omogućava da kreiramo nešto novo, a ne samo da obavljamo rutinske popravke.

Dakle, globalna ograničenja koja su mnogim kompanijama onemogućila fizički pristup svojim data centrima su malo uticala na nas, a što se tiče rezervnih delova i servera, da, trudili smo se da obezbedimo stabilan rad opreme. Ali to je učinjeno s ciljem sprječavanja mogućih incidenata kada se iznenada pokaže da neki komad hardvera nije dostupan. Osigurali smo da naše rezerve budu popunjene bez namjere da zadovoljimo trenutnu potražnju.

Ukratko, želio bih reći da naš pristup radu u industriji podatkovnih centara dokazuje da je moguće primijeniti principe dobrog dizajna koda na fizičko upravljanje podatkovnim centrom. I možda će vam biti zanimljivo.

Izvornik: tyts

izvor: www.habr.com

Dodajte komentar