Si të përballoni ngarkesat e shtuara në sistem: flasim për përgatitjet në shkallë të gjerë për të Premten e Zezë

Hej Habr!

Në vitin 2017, gjatë të Premtes së Zezë, ngarkesa u rrit pothuajse një herë e gjysmë dhe serverët tanë ishin në kufirin e tyre. Gjatë vitit, numri i klientëve është rritur ndjeshëm, dhe u bë e qartë se pa përgatitje të kujdesshme paraprake, platforma thjesht nuk mund t'i rezistojë ngarkesave të vitit 2018.

Ne vendosëm qëllimin më ambicioz të mundshëm: donim të ishim plotësisht të përgatitur për çdo rritje, madje edhe më të fuqishme, të aktivitetit dhe filluam të lançojmë kapacitete të reja paraprakisht gjatë gjithë vitit.

CTO ynë Andrey Chizh (chizh_andrey) tregon se si u përgatitëm për të Premten e Zezë 2018, çfarë masash morëm për të shmangur rëniet dhe, natyrisht, rezultatet e një përgatitjeje kaq të kujdesshme.

Si të përballoni ngarkesat e shtuara në sistem: flasim për përgatitjet në shkallë të gjerë për të Premten e Zezë

Sot dua të flas për përgatitjet për të Premten e Zezë 2018. Pse tani, kur shumica e shitjeve të mëdha janë prapa nesh? Filluam të përgatiteshim rreth një vit përpara ngjarjeve në shkallë të gjerë dhe përmes provave dhe gabimeve gjetëm zgjidhjen optimale. Ne ju rekomandojmë që të kujdeseni paraprakisht për stinët e nxehta dhe të parandaloni mashtrimet që mund të shfaqen në momentin më të papërshtatshëm.
Materiali do të jetë i dobishëm për të gjithë ata që duan të shtrydhin fitimin maksimal nga stoqe të tilla, sepse Ana teknike e çështjes nuk është inferiore ndaj anës së marketingut këtu.

Karakteristikat e trafikut në shitje të mëdha

Në kundërshtim me besimin popullor, e Premtja e Zezë nuk është vetëm një ditë në vit, por pothuajse një javë e tërë: ofertat e para të zbritjeve mbërrijnë 7-8 ditë përpara shitjes. Trafiku i faqes në internet fillon të rritet pa probleme gjatë gjithë javës, arrin kulmin e tij të premten dhe bie mjaft ndjeshëm të shtunën në nivelet e rregullta të dyqanit.

Si të përballoni ngarkesat e shtuara në sistem: flasim për përgatitjet në shkallë të gjerë për të Premten e Zezë

Kjo është e rëndësishme të merret parasysh: dyqanet online bëhen veçanërisht të ndjeshme ndaj çdo "ngadalësimi" në sistem. Përveç kësaj, linja jonë e buletinit të postës elektronike pësoi gjithashtu një rritje të konsiderueshme në numrin e dërgesave.

Është strategjikisht e rëndësishme për ne që të kalojmë të Premten e Zezë pa përplasje, sepse... Funksionaliteti më i rëndësishëm i faqeve të internetit dhe buletineve të dyqaneve varet nga funksionimi i platformës, përkatësisht:

  • Ndjekja dhe lëshimi i rekomandimeve të produktit,
  • Lëshimi i materialeve të lidhura (për shembull, imazhe të dizajnit të blloqeve të rekomandimit, të tilla si shigjeta, logot, ikona dhe elementë të tjerë vizualë),
  • Sigurimi i imazheve të produktit të madhësisë së kërkuar (për këto qëllime ne kemi "ImageResizer" - një nënsistem që shkarkon një imazh nga serveri i dyqanit, e ngjesh atë në madhësinë e kërkuar dhe, përmes serverëve të memorizimit, prodhon imazhe të madhësisë së kërkuar për çdo produkt në çdo bllok rekomandimi).

Në fakt, gjatë të Premtes së Zezë 2019, ngarkesa në shërbim u rrit me 40%, d.m.th. numri i ngjarjeve që sistemi Retail Rocket gjurmon dhe përpunon në faqet e dyqaneve online është rritur nga 5 në 8 mijë kërkesa në sekondë. Për faktin se po përgatiteshim për ngarkesa më serioze, i mbijetuam lehtësisht një rritjeje të tillë.

Si të përballoni ngarkesat e shtuara në sistem: flasim për përgatitjet në shkallë të gjerë për të Premten e Zezë

Përgatitja e përgjithshme

E Premtja e Zezë është një kohë e ngarkuar për të gjithë shitjet me pakicë dhe tregtinë elektronike në veçanti. Numri i përdoruesve dhe aktiviteti i tyre në këtë kohë po rritet ndjeshëm, ndaj ne, si gjithmonë, jemi përgatitur plotësisht për këtë kohë të ngarkuar. Le të shtojmë këtu faktin se ne kemi shumë dyqane online të lidhura jo vetëm në Rusi, por edhe në Evropë, ku eksitimi është shumë më i lartë dhe kemi një nivel pasioni më të keq se seriali brazilian. Çfarë duhet bërë për t'u përgatitur plotësisht për ngarkesa të shtuara?

Puna me serverë

Së pari, ishte e nevojshme të zbulonim se çfarë saktësisht na duhej për të rritur fuqinë e serverit. Tashmë në gusht, ne filluam të porosisim serverë të rinj posaçërisht për të Premten e Zezë - në total shtuam 10 makina shtesë. Deri në nëntor ata ishin plotësisht në luftime.

Në të njëjtën kohë, disa nga makinat e ndërtimit u riinstaluan për t'u përdorur si serverë aplikacioni. Ne i përgatitëm menjëherë për të përdorur funksione të ndryshme: si për lëshimin e rekomandimeve ashtu edhe për shërbimin ImageResizer, në mënyrë që, në varësi të llojit të ngarkesës, secili prej tyre të mund të përdoret për një nga këto role. Në modalitetin normal, serverët Application dhe ImageResizer kanë funksione të përcaktuara qartë: të parët lëshojnë rekomandime, të dytat ofrojnë imazhe për letra dhe blloqe rekomandimesh në faqet e internetit të blerjeve në internet. Në përgatitje për të Premten e Zezë, u vendos që të krijoheshin të gjithë serverët me qëllime të dyfishta për të balancuar trafikun midis tyre në varësi të llojit të shkarkimit.

Pastaj shtuam dy serverë të mëdhenj për Kafka (Apache Kafka) dhe morëm një grup prej 5 makinash të fuqishme. Fatkeqësisht, gjithçka nuk shkoi aq mirë sa do të donim: gjatë procesit të sinkronizimit të të dhënave, dy makina të reja zunë të gjithë gjerësinë e kanalit të rrjetit dhe ne duhej të kuptonim urgjentisht se si ta kryenim procesin e shtimit shpejt dhe në mënyrë të sigurt për gjithë infrastrukturën. Për të zgjidhur këtë çështje, administratorët tanë duhej të sakrifikonin me guxim fundjavat e tyre.

Puna me të dhëna

Përveç serverëve, vendosëm të optimizonim skedarët për të lehtësuar ngarkesën dhe një hap i madh për ne ishte përkthimi i skedarëve statikë. Të gjithë skedarët statikë që ishin pritur më parë në serverë u zhvendosën në S3 + Cloudfront. Ne kemi dashur ta bëjmë këtë për një kohë të gjatë, pasi ngarkesa në server ishte afër vlerave kufi, dhe tani ka lindur një mundësi e shkëlqyer.

Një javë përpara të Premtes së Zezë, ne e rritëm kohën e ruajtjes së imazhit në 3 ditë, në mënyrë që nëse ImageResizer prishet, imazhet e ruajtura më parë do të merren nga cdn. Ai gjithashtu zvogëloi ngarkesën në serverët tanë, pasi sa më gjatë të ruhet imazhi, aq më rrallë duhet të shpenzojmë burime për ndryshimin e madhësisë.

Dhe e fundit, por jo më pak e rëndësishme: 5 ditë përpara të Premtes së Zezë, u shpall një moratorium për vendosjen e çdo funksionaliteti të ri, si dhe për çdo punë me infrastrukturën - e gjithë vëmendja ka për qëllim përballimin e ngarkesave të shtuara.

Plane për t'iu përgjigjur situatave të vështira

Pavarësisht se sa cilësore është përgatitja, fakapat janë gjithmonë të mundshme. Dhe ne kemi zhvilluar 3 plane reagimi për situata të mundshme kritike:

  • ulje e ngarkesës,
  • çaktivizimi i disa shërbimeve,
  • mbyllja e plotë e shërbimit.

Plani A: Zvogëloni ngarkesën. Duhet të aktivizohej nëse, për shkak të rritjes së ngarkesës, serverët tanë shkuan përtej afateve të pranueshme të përgjigjes. Në këtë rast, ne kemi përgatitur mekanizma për uljen graduale të ngarkesës duke kaluar një pjesë të trafikut në serverët e Amazon, të cilët thjesht do t'u përgjigjen të gjitha kërkesave me "200 OK" dhe do të jepnin një përgjigje boshe. Kuptuam që ky ishte një degradim i cilësisë së shërbimit, por zgjedhja mes faktit që shërbimi nuk funksionon fare ose nuk jep rekomandime për afërsisht 10% të trafikut është e dukshme.

Plani B: Çaktivizoni shërbimet. Degradim i nënkuptuar i pjesshëm i shërbimit. Për shembull, zvogëlimi i shpejtësisë së llogaritjes së rekomandimeve personale për të shkarkuar disa baza të dhënash dhe kanale komunikimi. Në modalitetin normal, rekomandimet llogariten në kohë reale, duke krijuar një version të ndryshëm të dyqanit online për çdo vizitor, por në kushte të ngarkesës së shtuar, ulja e shpejtësisë lejon që shërbimet e tjera kryesore të vazhdojnë të punojnë.

Plani C: në rastin e Harmagedonit. Nëse ndodh një dështim i plotë i sistemit, ne kemi përgatitur një plan që do të na lejojë të shkëputemi në mënyrë të sigurt nga klientët tanë. Blerësit e dyqaneve thjesht nuk do të shohin rekomandime; performanca e dyqanit në internet nuk do të vuajë në asnjë mënyrë. Për ta bërë këtë, do të duhet të rivendosim skedarin tonë të integrimit në mënyrë që përdoruesit e rinj të ndalojnë së bashkëveprimin me shërbimin. Kjo do të thotë, ne do të çaktivizonim kodin tonë kryesor të gjurmimit, shërbimi do të ndalonte mbledhjen e të dhënave dhe llogaritjen e rekomandimeve dhe përdoruesi thjesht do të shihte një faqe pa blloqe rekomandimi. Për të gjithë ata që kanë marrë më parë një skedar integrimi, ne kemi ofruar mundësinë e kalimit të regjistrimit DNS në Amazon dhe cung 200 OK.

Rezultatet e

Ne trajtuam të gjithë ngarkesën edhe pa pasur nevojë të përdorim makineri shtesë ndërtimi. Dhe falë përgatitjes paraprake, nuk kishim nevojë për asnjë nga planet e zhvilluara të reagimit. Por e gjithë puna e bërë është një përvojë e paçmuar që do të na ndihmojë të përballojmë flukset më të papritura dhe të mëdha të trafikut.
Ashtu si në vitin 2017, ngarkesa në shërbim u rrit me 40%, dhe numri i përdoruesve në dyqanet online u rrit me 60% të Premten e Zezë. Të gjitha vështirësitë dhe gabimet ndodhën gjatë periudhës përgatitore, gjë që na shpëtoi ne dhe klientët tanë nga situata të paparashikuara.

Si po e përballoni Black Friday? Si përgatiteni për ngarkesa kritike?

Burimi: www.habr.com

Shto një koment