4 inženieri, 7000 serveru un viena globāla pandēmija

Čau Habr! Piedāvāju jūsu uzmanībai raksta tulkojumu "4 inženieri, 7000 serveru un viena globāla pandēmija" autors Adibs Daw.

Ja Å”is virsraksts neizraisa vieglus drebuļus, jums vajadzētu pāriet uz nākamo rindkopu vai apmeklēt mÅ«su lapu, kas veltÄ«ta karjera uzņēmumā - mēs gribētu parunāt.

Kas mēs esam

Mēs esam 4 pingvÄ«nu komanda, kam patÄ«k rakstÄ«t kodu un strādāt ar aparatÅ«ru. Savā brÄ«vajā laikā mēs esam atbildÄ«gi par vairāk nekā 7000 fizisko serveru, kuros darbojas Linux, izvietoÅ”anu, uzturÄ“Å”anu un darbÄ«bu, kas ir sadalÄ«ti 3 dažādos datu centros visā ASV.

Mums bija arÄ« iespēja to izdarÄ«t 10 000 km attālumā no objektiem, no mÅ«su paÅ”u biroja ērtÄ«bām, kas atrodas neliela brauciena attālumā no VidusjÅ«ras pludmales.

Mēroga problēmas

Lai gan jaunuzņēmumam ir jēga sākt ar tās infrastruktÅ«ras mitināŔanu mākonÄ« salÄ«dzinoÅ”i zemo sākotnējo ieguldÄ«jumu dēļ, mēs uzņēmumā Outbrain nolēmām izmantot savus serverus. Mēs to darÄ«jām, jo ā€‹ā€‹mākoņa infrastruktÅ«ras izmaksas ievērojami pārsniedz mÅ«su paÅ”u iekārtu ekspluatācijas izmaksas, kas atrodas datu centros pēc izstrādes lÄ«dz noteiktam lÄ«menim. Turklāt jÅ«su serveris nodroÅ”ina visaugstākās kontroles un problēmu novērÅ”anas iespējas.

Mums attÄ«stoties, problēmas vienmēr ir blakus. Turklāt viņi parasti nāk grupās. Servera dzÄ«ves cikla pārvaldÄ«ba prasa pastāvÄ«gu sevis pilnveidoÅ”anu, lai varētu pareizi darboties serveru skaita straujā pieauguma apstākļos. ProgrammatÅ«ras metodes serveru grupu pārvaldÄ«bai datu centros ātri kļūst smagnējas. Kļūmju noteikÅ”ana, traucējummeklÄ“Å”ana un mazināŔana, izpildot QoS standartus, kļūst par ļoti dažādu aparatÅ«ras masÄ«vu, dažādu darba slodžu, jaunināŔanas termiņu un citu jauku lietu žonglÄ“Å”anu, par ko neviens nevēlas uztraukties.

Pārvaldiet savus domēnus

Lai atrisinātu daudzas no Ŕīm problēmām, Outbrain servera dzÄ«ves ciklu sadalÄ«jām tā galvenajos komponentos un nosaucām tos par domēniem. Piemēram, viens domēns aptver aprÄ«kojuma prasÄ«bas, otrs attiecas uz loÄ£istiku, kas saistÄ«ta ar krājumu dzÄ«ves ciklu, un treŔā attiecas uz saziņu ar lauka personālu. Ir vēl viens, kas attiecas uz aparatÅ«ras novērojamÄ«bu, taču mēs neaprakstÄ«sim visus punktus. MÅ«su mērÄ·is bija izpētÄ«t un definēt domēnus, lai tos varētu abstrahēt, izmantojot kodu. Kad darba abstrakcija ir izstrādāta, tā tiek pārnesta uz manuālu procesu, kas tiek izvietots, pārbaudÄ«ts un pilnveidots. Visbeidzot, domēns ir konfigurēts, lai integrētos ar citiem domēniem, izmantojot API, veidojot holistisku, dinamisku un pastāvÄ«gi attÄ«stoÅ”u aparatÅ«ras dzÄ«ves cikla sistēmu, kas ir izvietojama, pārbaudāma un novērojama. Tāpat kā visas pārējās mÅ«su ražoÅ”anas sistēmas.

Å Ä«s pieejas pieņemÅ”ana ļāva mums pareizi atrisināt daudzas problēmas ā€“ izveidojot rÄ«kus un automatizāciju.

NepiecieÅ”ams domēns

Lai gan pirmajās dienās e-pasts un izklājlapas bija dzÄ«votspējÄ«gs veids, kā apmierināt pieprasÄ«jumu, tas nebija veiksmÄ«gs risinājums, it Ä«paÅ”i, ja serveru skaits un ienākoÅ”o pieprasÄ«jumu apjoms sasniedza noteiktu lÄ«meni. Lai labāk organizētu ienākoÅ”os pieprasÄ«jumus un noteiktu prioritātes tiem, ņemot vērā straujo paplaÅ”ināŔanos, mums bija jāizmanto biļeÅ”u pārdoÅ”anas sistēma, kas varēja piedāvāt:

  • Iespēja pielāgot tikai atbilstoÅ”o lauku skatu (vienkārÅ”i)
  • Atvērtās API (paplaÅ”ināmas)
  • MÅ«su komandai zināms (saprotams)
  • Integrācija ar mÅ«su esoÅ”ajām darbplÅ«smām (vienota)

Tā kā mēs izmantojam Jira, lai pārvaldÄ«tu savus sprintus un iekŔējos uzdevumus, mēs nolēmām izveidot citu projektu, kas palÄ«dzētu mÅ«su klientiem iesniegt biļetes un izsekot to rezultātiem. Jira izmantoÅ”ana ienākoÅ”ajiem pieprasÄ«jumiem un iekŔējo uzdevumu pārvaldÄ«bai ļāva mums izveidot vienu Kanban paneli, kas ļāva mums aplÅ«kot visus procesus kopumā. MÅ«su iekŔējie ā€œklientiā€ redzēja tikai aprÄ«kojuma pieprasÄ«jumus, neiedziļinoties mazāk nozÄ«mÄ«gās papildu uzdevumu detaļās (piemēram, rÄ«ku uzlaboÅ”ana, kļūdu laboÅ”ana).

4 inženieri, 7000 serveru un viena globāla pandēmija
Kanban dēlis Jirā

Kā bonuss bija tas, ka rindas un prioritātes tagad bija redzamas ikvienam, ļāva saprast, ā€œkur rindāā€ atrodas konkrētais pieprasÄ«jums un kas bija pirms tā. Tas ļāva Ä«paÅ”niekiem mainÄ«t savu pieprasÄ«jumu prioritātes, nesazinoties ar mums. Velciet to un viss. Tas arÄ« ļāva mums pārraudzÄ«t un novērtēt mÅ«su SLA saskaņā ar pieprasÄ«jumu veidiem, pamatojoties uz Jira Ä£enerētajiem rādÄ«tājiem.

Iekārtas dzīves cikla domēns

Mēģiniet iedomāties katrā servera plauktā izmantotās aparatÅ«ras pārvaldÄ«bas sarežģītÄ«bu. Vēl ļaunāk ir tas, ka daudzas aparatÅ«ras daļas (RAM, ROM) var pārvietot no noliktavas uz servera telpu un atpakaļ. Tie arÄ« neizdodas vai tiek norakstÄ«ti un nomainÄ«ti un atdoti piegādātājam nomaiņai/remontam. Tas viss ir jāpaziņo izvietoÅ”anas dienesta darbiniekiem, kas iesaistÄ«ti iekārtas fiziskajā apkopē. Lai atrisinātu Ŕīs problēmas, mēs izveidojām iekŔējo rÄ«ku ar nosaukumu Floppy. Viņa uzdevums ir:

  • Sakaru vadÄ«Å”ana ar lauka personālu, visas informācijas apkopoÅ”ana;
  • ā€œNoliktavasā€ datu atjaunināŔana pēc katra pabeigta un pārbaudÄ«ta iekārtu apkopes darba.

Savukārt noliktava tiek vizualizēta, izmantojot Grafana, ko mēs izmantojam visu mÅ«su rādÄ«tāju uzzÄ«mÄ“Å”anai. Tādējādi mēs izmantojam vienu un to paÅ”u rÄ«ku noliktavas vizualizācijai un citām ražoÅ”anas vajadzÄ«bām.

4 inženieri, 7000 serveru un viena globāla pandēmijaNoliktavas aprīkojuma vadības panelis Grafānā

Serveru ierÄ«cēm, kurām ir garantija, mēs izmantojam citu rÄ«ku, ko saucam par Dispečeru. ViņŔ:

  • Apkopo sistēmas žurnālus;
  • Ä£enerē pārskatus pārdevēja pieprasÄ«tajā formātā;
  • Izveido pieprasÄ«jumu no pārdevēja, izmantojot API;
  • Saņem un saglabā lietojumprogrammas identifikatoru, lai turpinātu izsekot tās norisei.

Kad mÅ«su prasÄ«ba ir pieņemta (parasti darba laikā), rezerves daļa tiek nosÅ«tÄ«ta uz atbilstoÅ”o datu centru un darbinieki to pieņem.

4 inženieri, 7000 serveru un viena globāla pandēmija
Jenkins konsoles izvade

Komunikācijas domēns

Lai neatpaliktu no mÅ«su biznesa straujās izaugsmes, kas prasa arvien lielāku kapacitāti, mums bija jāpielāgo veids, kā strādājam ar tehniskajiem speciālistiem vietējos datu centros. Ja sākumā palielināŔana nozÄ«mēja jaunu serveru iegādi, tad pēc konsolidācijas projekta (pamatojoties uz pāreju uz Kubernetes) kļuva pavisam kas cits. MÅ«su evolÅ«cija no ā€œstatÄ«vu pievienoÅ”anasā€ lÄ«dz ā€œserveru atkārtotai izmantoÅ”anaiā€.

Izmantojot jaunu pieeju, bija nepiecieÅ”ami arÄ« jauni rÄ«ki, kas ļāva ērtāk sazināties ar datu centra personālu. Å ie rÄ«ki bija nepiecieÅ”ami, lai:

  • VienkārŔība;
  • Autonomija;
  • Efektivitāte;
  • UzticamÄ«ba.

Mums bija jāizslēdz sevi no ķēdes un jāstrukturē darbs tā, lai tehniÄ·i varētu tieÅ”i strādāt ar serveru aprÄ«kojumu. Bez mÅ«su iejaukÅ”anās un regulāri neizvirzot visus Å”os jautājumus par darba slodzi, darba laiku, aprÄ«kojuma pieejamÄ«bu utt.

Lai to panāktu, mēs uzstādÄ«jām iPad katrā datu centrā. Pēc savienojuma izveides ar serveri notiks sekojoÅ”ais:

  • IerÄ«ce apstiprina, ka Å”im serverim patieŔām ir nepiecieÅ”ams zināms darbs;
  • Lietojumprogrammas, kas darbojas serverÄ«, ir aizvērtas (ja nepiecieÅ”ams);
  • Slack kanālā ir ievietots darba instrukciju komplekts, kurā izskaidrotas nepiecieÅ”amās darbÄ«bas;
  • Pēc darba pabeigÅ”anas ierÄ«ce pārbauda servera gala stāvokļa pareizÄ«bu;
  • Ja nepiecieÅ”ams, restartējiet lietojumprogrammas.

Turklāt, lai palÄ«dzētu tehniÄ·im, mēs sagatavojām arÄ« robotu Slack. Pateicoties plaÅ”ajam iespēju klāstam (mēs pastāvÄ«gi paplaÅ”inājām funkcionalitāti), robots atviegloja viņu darbu un ievērojami atviegloja mÅ«su dzÄ«vi. Tādā veidā mēs optimizējām lielāko daļu serveru pārvietoÅ”anas un uzturÄ“Å”anas procesa, izslēdzot sevi no darbplÅ«smas.

4 inženieri, 7000 serveru un viena globāla pandēmija
iPad vienā no mūsu datu centriem

Aparatūras domēns

Lai droÅ”i mērogotu mÅ«su datu centra infrastruktÅ«ru, ir nepiecieÅ”ama laba katra komponenta redzamÄ«ba, piemēram:

  • AparatÅ«ras kļūmes noteikÅ”ana
  • Servera stāvokļi (aktÄ«vs, mitināts, zombiju utt.)
  • EnerÄ£ijas patēriņŔ
  • ProgrammaparatÅ«ras versija
  • Visa Ŕī uzņēmuma analÄ«ze

MÅ«su risinājumi ļauj mums pieņemt lēmumus par to, kā, kur un kad iegādāties aprÄ«kojumu, dažreiz pat pirms tas faktiski ir nepiecieÅ”ams. Tāpat, nosakot dažādu iekārtu slodzes lÄ«meni, varējām panākt uzlabotu resursu sadali. Jo Ä«paÅ”i enerÄ£ijas patēriņŔ. Tagad mēs varam pieņemt apzinātus lēmumus par servera izvietojumu, pirms tas ir uzstādÄ«ts plauktā un pievienots strāvas avotam, visā tā dzÄ«ves ciklā un lÄ«dz tā iespējamai izbeigÅ”anai.

4 inženieri, 7000 serveru un viena globāla pandēmija
Enerģijas informācijas panelis Grafānā

Un tad parādījās Covid-19...

MÅ«su komanda rada tehnoloÄ£ijas, kas sniedz iespēju mediju uzņēmumiem un izdevējiem tieÅ”saistē palÄ«dzēt apmeklētājiem atrast atbilstoÅ”u saturu, produktus un pakalpojumus, kas viņus varētu interesēt. MÅ«su infrastruktÅ«ra ir izstrādāta, lai apkalpotu trafiku, kas rodas, kad tiek izlaistas dažas aizraujoÅ”as ziņas.

IntensÄ«vais plaÅ”saziņas lÄ«dzekļu atspoguļojums saistÄ«bā ar Covid-19, kā arÄ« satiksmes pieaugums nozÄ«mēja, ka mums steidzami jāiemācās tikt galā ar Å”o spiedienu. Turklāt tas viss bija jādara globālās krÄ«zes laikā, kad tika traucētas piegādes ķēdes un lielākā daļa darbinieku atradās mājās.

Bet, kā jau teicām, mūsu modelī jau ir pieņemts, ka:

  • MÅ«su datu centru aprÄ«kojums mums lielākoties ir fiziski nepieejams;
  •  GandrÄ«z visus fiziskos darbus veicam attālināti;
  • Darbs tiek veikts asinhroni, autonomi un plaŔā mērogā;
  • Iekārtu pieprasÄ«jumu apmierinām, izmantojot "bÅ«vēt no detaļām" metodi, nevis iegādājoties jaunas iekārtas;
  • Mums ir noliktava, kas ļauj radÄ«t kaut ko jaunu, nevis tikai veikt kārtējos remontdarbus.

LÄ«dz ar to globālie ierobežojumi, kas daudziem uzņēmumiem liedza fiziski piekļūt saviem datu centriem, mÅ«s maz ietekmēja, savukārt attiecÄ«bā uz rezerves daļām un serveriem, jā, mēs centāmies nodroÅ”ināt stabilu iekārtu darbÄ«bu. Bet tas tika darÄ«ts ar mērÄ·i novērst iespējamos incidentus, kad pēkŔņi atklājas, ka kāda aparatÅ«ra nav pieejama. Mēs nodroÅ”inājām, ka mÅ«su rezerves tiek aizpildÄ«tas, necenÅ”oties apmierināt paÅ”reizējo pieprasÄ«jumu.

Rezumējot, vēlos teikt, ka mūsu pieeja darbam datu centru nozarē pierāda, ka ir iespējams piemērot laba koda dizaina principus datu centra fiziskajā pārvaldībā. Un, iespējams, jums tas liksies interesanti.

Oriģināls: tyts

Avots: www.habr.com

Pievieno komentāru