Sådan modstår du øgede belastninger på systemet: vi taler om store forberedelser til Black Friday

Hej Habr!

I 2017, under Black Friday, steg belastningen med næsten halvanden gang, og vores servere var på deres grænse. I løbet af året er antallet af kunder vokset markant, og det blev klart, at uden omhyggelig foreløbig forberedelse, kan platformen simpelthen ikke modstå belastningerne fra 2018.

Vi satte det mest ambitiøse mål som muligt: ​​Vi ønskede at være fuldt forberedt på enhver, selv de mest kraftfulde, aktivitetsstigninger og begyndte at lancere ny kapacitet på forhånd i løbet af året.

Vores CTO Andrey Chizh (chizh_andrey) fortæller, hvordan vi forberedte os til Black Friday 2018, hvilke foranstaltninger vi tog for at undgå fald, og selvfølgelig resultaterne af en sådan omhyggelig forberedelse.

Sådan modstår du øgede belastninger på systemet: vi taler om store forberedelser til Black Friday

I dag vil jeg tale om forberedelserne til Black Friday 2018. Hvorfor nu, hvor de fleste af de store salg ligger bag os? Vi begyndte at forberede os omkring et år før store arrangementer, og gennem forsøg og fejl fandt vi den optimale løsning. Vi anbefaler, at du tager dig af de varme årstider på forhånd og forhindrer svindel, der kan dukke op på det mest uhensigtsmæssige tidspunkt.
Materialet vil være nyttigt for alle, der ønsker at presse den maksimale profit fra sådanne aktier, fordi Den tekniske side af problemet er ikke ringere end marketingsiden her.

Funktioner af trafik ved store salg

I modsætning til hvad mange tror, ​​er Black Friday ikke kun én dag om året, men næsten en hel uge: De første rabattilbud kommer 7-8 dage før udsalget. Websitetrafikken begynder at vokse jævnt i løbet af ugen, når sit højdepunkt fredag ​​og falder ret kraftigt lørdag til butikkens normale niveauer.

Sådan modstår du øgede belastninger på systemet: vi taler om store forberedelser til Black Friday

Dette er vigtigt at overveje: onlinebutikker bliver særligt følsomme over for eventuelle "nedgange" i systemet. Derudover oplevede vores e-mail nyhedsbrevslinje også en markant stigning i antallet af indsendelser.

Det er strategisk vigtigt for os at komme igennem Black Friday uden nedbrud, fordi... Den vigtigste funktionalitet af hjemmesider og butiksnyhedsbreve afhænger af platformens drift, nemlig:

  • Sporing og udstedelse af produktanbefalinger,
  • Udstedelse af relaterede materialer (for eksempel billeder af designet af anbefalingsblokke, såsom pile, logoer, ikoner og andre visuelle elementer),
  • Tilvejebringelse af produktbilleder i den krævede størrelse (til disse formål har vi "ImageResizer" - et undersystem, der downloader et billede fra butiksserveren, komprimerer det til den krævede størrelse og via caching-servere producerer billeder i den krævede størrelse for hvert produkt i hver anbefalingsblok).

Faktisk steg belastningen på tjenesten under Black Friday 2019 med 40 %, dvs. antallet af hændelser, som Retail Rocket-systemet sporer og behandler på netbutikkers websteder, er steget fra 5 til 8 tusinde anmodninger i sekundet. På grund af det faktum, at vi forberedte os på mere alvorlige belastninger, overlevede vi let sådan en stigning.

Sådan modstår du øgede belastninger på systemet: vi taler om store forberedelser til Black Friday

Generel træning

Black Friday er en travl tid for al detailhandel og e-handel i særdeleshed. Antallet af brugere og deres aktivitet på nuværende tidspunkt vokser markant, så vi har som altid forberedt os grundigt på denne travle tid. Lad os tilføje her, at vi har mange onlinebutikker forbundet ikke kun i Rusland, men også i Europa, hvor spændingen er meget højere, og vi får et niveau af lidenskab, der er værre end den brasilianske serie. Hvad skal der gøres for at være fuldt forberedt på øgede belastninger?

Arbejde med servere

Først var det nødvendigt at finde ud af, hvad vi præcist skulle bruge for at øge serverkraften. Allerede i august begyndte vi at bestille nye servere specifikt til Black Friday - i alt tilføjede vi 10 ekstra maskiner. I november var de fuldt ud i kamp.

Samtidig blev nogle af byggemaskinerne geninstalleret til brug som applikationsservere. Vi forberedte dem straks til at bruge forskellige funktioner: både til at udstede anbefalinger og til ImageResizer-tjenesten, så afhængigt af typen af ​​belastning, hver af dem kunne bruges til en af ​​disse roller. I normal tilstand har Application- og ImageResizer-serverne klart definerede funktioner: førstnævnte udsteder anbefalinger, sidstnævnte leverer billeder til breve og anbefalingsblokke på online shopping-websteder. Som forberedelse til Black Friday blev det besluttet at lave alle dual-purpose servere for at balancere trafikken mellem dem afhængigt af typen af ​​download.

Så tilføjede vi to store servere til Kafka (Apache Kafka) og fik en klynge med 5 kraftfulde maskiner. Desværre gik alt ikke så glat, som vi gerne ville: under datasynkroniseringsprocessen optog to nye maskiner hele netværkskanalens bredde, og vi måtte hurtigt finde ud af, hvordan vi kunne udføre tilføjelsesprocessen hurtigt og sikkert for hele infrastrukturen. For at løse dette problem måtte vores administratorer tappert ofre deres weekender.

Arbejde med data

Ud over servere besluttede vi at optimere filer for at lette belastningen, og et stort skridt for os var oversættelsen af ​​statiske filer. Alle statiske filer, der tidligere var hostet på servere, blev flyttet til S3 + Cloudfront. Det har vi længe ønsket at gøre, da belastningen på serveren var tæt på grænseværdierne, og nu er der opstået en stor mulighed.

En uge før Black Friday øgede vi billedcachetiden til 3 dage, så hvis ImageResizer gik ned, ville tidligere cachede billeder blive hentet fra cdn'en. Det reducerede også belastningen på vores servere, da jo længere billedet er gemt, jo mindre ofte skal vi bruge ressourcer på at ændre størrelse.

Og sidst, men ikke mindst: 5 dage før Black Friday blev der annonceret et moratorium for udrulning af enhver ny funktionalitet, samt på ethvert arbejde med infrastrukturen - al opmærksomhed er rettet mod at klare øgede belastninger.

Planer for at reagere på vanskelige situationer

Uanset hvor høj kvalitet præparatet er, er fakaps altid muligt. Og vi har udviklet 3 reaktionsplaner for mulige kritiske situationer:

  • belastningsreduktion,
  • deaktivering af nogle tjenester,
  • fuldstændig nedlukning af tjenesten.

Plan A: Reducer belastningen. Skulle have været aktiveret, hvis vores servere på grund af en stigning i belastningen gik ud over acceptable responstider. I dette tilfælde har vi forberedt mekanismer til gradvist at reducere belastningen ved at skifte en del af trafikken til Amazon-servere, som blot ville svare på alle anmodninger med "200 OK" og give et tomt svar. Vi forstod, at dette var en forringelse af kvaliteten af ​​tjenesten, men valget mellem, at tjenesten slet ikke virker eller ikke viser anbefalinger for cirka 10 % af trafikken, er indlysende.

Plan B: Deaktiver tjenester. Underforstået delvis forringelse af tjenesten. For eksempel at reducere hastigheden for beregning af personlige anbefalinger for at fjerne nogle databaser og kommunikationskanaler. I normal tilstand beregnes anbefalingerne i realtid, hvilket skaber en anden version af onlinebutikken for hver besøgende, men under forhold med øget belastning tillader reduktion af hastigheden andre kernetjenester at fortsætte med at arbejde.

Plan C: i tilfælde af Armageddon. Hvis der er en komplet systemfejl, har vi udarbejdet en plan, der gør det muligt for os at blive sikkert afbrudt fra vores kunder. Butikskøbere vil simpelthen holde op med at se anbefalinger; onlinebutikkens ydeevne vil ikke lide på nogen måde. For at gøre dette skal vi nulstille vores integrationsfil, så nye brugere stopper med at interagere med tjenesten. Det vil sige, at vi ville deaktivere vores hovedsporingskode, tjenesten ville stoppe med at indsamle data og beregne anbefalinger, og brugeren ville blot se en side uden anbefalingsblokke. For alle dem, der tidligere har modtaget en integrationsfil, har vi givet mulighed for at skifte DNS-posten til Amazon og 200 OK-stubben.

Resultaterne af

Vi klarede hele lasten selv uden behov for at bruge yderligere byggemaskiner. Og takket være forhåndsforberedelse havde vi ikke brug for nogen af ​​de udviklede beredskabsplaner. Men alt det udførte arbejde er uvurderlig erfaring, som vil hjælpe os med at klare de mest uventede og enorme tilstrømninger af trafik.
Som i 2017 steg belastningen på tjenesten med 40 %, og antallet af brugere i netbutikker steg med 60 % på Black Friday. Alle vanskeligheder og fejl opstod i den forberedende periode, hvilket reddede os og vores kunder fra uforudsete situationer.

Hvordan har du det med Black Friday? Hvordan forbereder du dig på kritiske belastninger?

Kilde: www.habr.com

Tilføj en kommentar