Ako odolať zvýšenej záťaži systému: hovoríme o rozsiahlych prípravách na Black Friday

Čau Habr!

V roku 2017, počas Black Friday, sa zaťaženie zvýšilo takmer jeden a pol krát a naše servery boli na hranici svojich možností. V priebehu roka sa počet klientov výrazne zvýšil a ukázalo sa, že bez dôkladnej predbežnej prípravy platforma jednoducho nevydrží záťaž z roku 2018.

Stanovili sme si ten najambicióznejší cieľ: chceli sme byť plne pripravení na každý, aj ten najsilnejší nárast aktivít a začali sme s predstihom spúšťať nové kapacity počas celého roka.

Náš CTO Andrey Chizh (chizh_andrey) hovorí, ako sme sa pripravovali na Black Friday 2018, aké opatrenia sme prijali, aby sme sa vyhli pádom, a samozrejme výsledky takejto starostlivej prípravy.

Ako odolať zvýšenej záťaži systému: hovoríme o rozsiahlych prípravách na Black Friday

Dnes chcem hovoriť o prípravách na Black Friday 2018. Prečo teraz, keď je väčšina veľkých predajov za nami? Začali sme sa pripravovať asi rok pred veľkými akciami a metódou pokus-omyl sme našli optimálne riešenie. Odporúčame vám postarať sa o horúce obdobia vopred a zabrániť podvodom, ktoré sa môžu objaviť v najnevhodnejšom momente.
Materiál bude užitočný pre každého, kto chce z takýchto akcií vyžmýkať maximálny zisk, pretože Technická stránka problému tu nie je nižšia ako marketingová.

Vlastnosti návštevnosti pri veľkých výpredajoch

Na rozdiel od všeobecného presvedčenia, Black Friday nie je len jeden deň v roku, ale takmer celý týždeň: prvé zľavy prichádzajú 7-8 dní pred predajom. Návštevnosť webových stránok začína plynulo rásť počas celého týždňa, vrchol dosahuje v piatok a v sobotu prudko klesá na bežnú úroveň obchodu.

Ako odolať zvýšenej záťaži systému: hovoríme o rozsiahlych prípravách na Black Friday

Toto je dôležité zvážiť: internetové obchody sú obzvlášť citlivé na akékoľvek „spomalenia“ systému. Okrem toho výrazne vzrástol aj počet odoslaných e-mailových noviniek.

Je pre nás strategicky dôležité, aby sme Black Friday prešli bez nehôd, pretože... Najdôležitejšia funkcionalita webových stránok a newsletterov obchodu závisí od fungovania platformy, a to:

  • sledovanie a vydávanie odporúčaní produktov,
  • Vydávanie súvisiacich materiálov (napríklad obrázky dizajnu blokov odporúčaní, ako sú šípky, logá, ikony a iné vizuálne prvky),
  • Poskytovanie obrázkov produktov požadovanej veľkosti (na tieto účely máme „ImageResizer“ - podsystém, ktorý stiahne obrázok zo servera obchodu, skomprimuje ho na požadovanú veľkosť a prostredníctvom serverov ukladania do vyrovnávacej pamäte vytvára obrázky požadovanej veľkosti pre každý produkt v každý blok odporúčaní).

Počas Black Friday 2019 totiž stúplo zaťaženie služby o 40 %, t.j. počet udalostí, ktoré systém Retail Rocket sleduje a spracováva na stránkach internetového obchodu, sa zvýšil z 5 na 8 tisíc požiadaviek za sekundu. Vzhľadom na to, že sme sa pripravovali na vážnejšie záťaže, takýto nápor sme prežili ľahko.

Ako odolať zvýšenej záťaži systému: hovoríme o rozsiahlych prípravách na Black Friday

Všeobecné školenie

Čierny piatok je rušným obdobím pre celý maloobchod a najmä elektronický obchod. Počet užívateľov a ich aktivita v tomto období výrazne rastie, preto sme sa ako vždy na túto uponáhľanú dobu dôkladne pripravili. Pridajme tu fakt, že máme veľa online obchodov prepojených nielen v Rusku, ale aj v Európe, kde je vzrušenie oveľa vyššie a úroveň vášne je horšia ako brazílska séria. Čo je potrebné urobiť, aby ste boli plne pripravení na zvýšenú záťaž?

Práca so servermi

Najprv bolo potrebné zistiť, čo presne potrebujeme na zvýšenie výkonu servera. Už v auguste sme začali objednávať nové servery špeciálne pre Black Friday – celkovo sme pridali 10 ďalších strojov. V novembri boli plne v boji.

Zároveň boli niektoré zostavovacie stroje preinštalované na použitie ako aplikačné servery. Okamžite sme ich pripravili na používanie rôznych funkcií: ako na vydávanie odporúčaní, tak aj na službu ImageResizer, takže v závislosti od typu záťaže je možné každú z nich použiť pre jednu z týchto rolí. V normálnom režime majú aplikačné servery a servery ImageResizer jasne definované funkcie: prvé vydávajú odporúčania, druhé poskytujú obrázky pre písmená a bloky odporúčaní na webových stránkach online nakupovania. V rámci prípravy na Black Friday bolo rozhodnuté vytvoriť všetky dvojúčelové servery, aby sa medzi nimi vyrovnala prevádzka v závislosti od typu sťahovania.

Potom sme pridali dva veľké servery pre Kafku (Apache Kafka) a získali sme klaster 5 výkonných strojov. Bohužiaľ, všetko neprebehlo tak hladko, ako by sme chceli: počas procesu synchronizácie údajov obsadili dva nové stroje celú šírku sieťového kanála a my sme museli urýchlene zistiť, ako rýchlo a bezpečne vykonať proces pridávania. celej infraštruktúry. Na vyriešenie tohto problému museli naši správcovia statočne obetovať svoje víkendy.

Práca s údajmi

Okrem serverov sme sa rozhodli optimalizovať aj súbory, aby sme odľahčili záťaž a veľkým krokom pre nás bol preklad statických súborov. Všetky statické súbory, ktoré boli predtým hosťované na serveroch, boli presunuté do S3 + Cloudfront. Chceli sme to urobiť už dlho, keďže zaťaženie servera sa blížilo k limitným hodnotám a teraz sa naskytla skvelá príležitosť.

Týždeň pred Čiernym piatkom sme zvýšili čas ukladania obrázkov do vyrovnávacej pamäte na 3 dni, takže ak ImageResizer zlyhá, predtým uložené obrázky sa načítajú z cdn. Znížilo to aj zaťaženie našich serverov, pretože čím dlhšie je obrázok uložený, tým menej často musíme míňať prostriedky na zmenu veľkosti.

A v neposlednom rade: 5 dní pred Black Friday bolo vyhlásené moratórium na nasadenie akejkoľvek novej funkcionality, ako aj na akúkoľvek prácu s infraštruktúrou – všetka pozornosť je zameraná na zvládanie zvýšenej záťaže.

Plány ako reagovať na zložité situácie

Bez ohľadu na to, aká kvalitná je príprava, fakaps je vždy možný. A vyvinuli sme 3 plány reakcie na možné kritické situácie:

  • zníženie záťaže,
  • vypnutie niektorých služieb,
  • úplné vypnutie služby.

Plán A: Znížte zaťaženie. Mali by byť aktivované, ak v dôsledku nárastu zaťaženia naše servery prekročili prijateľné načasovanie odozvy. V tomto prípade máme pripravené mechanizmy na postupné znižovanie záťaže prepnutím časti prevádzky na servery Amazon, ktoré by na všetky požiadavky jednoducho odpovedali „200 OK“ a dali by prázdnu odpoveď. Pochopili sme, že ide o degradáciu kvality služby, no voľba medzi tým, že služba nefunguje vôbec alebo nezobrazuje odporúčania pre približne 10 % návštevnosti, je zrejmá.

Plán B: Zakázať služby. Implikované čiastočné zhoršenie služby. Napríklad zníženie rýchlosti výpočtu osobných odporúčaní s cieľom uvoľniť niektoré databázy a komunikačné kanály. V normálnom režime sa odporúčania počítajú v reálnom čase, čím sa pre každého návštevníka vytvorí iná verzia internetového obchodu, no v podmienkach zvýšenej záťaže umožňuje zníženie rýchlosti pokračovať v práci ostatných základných služieb.

Plán C: v prípade Armagedonu. Ak dôjde k úplnému zlyhaniu systému, máme pripravený plán, ktorý nám umožní bezpečne sa odpojiť od našich zákazníkov. Kupujúcim v obchodoch sa jednoducho prestanú zobrazovať odporúčania, výkonnosť internetového obchodu tým nijako neutrpí. Aby sme to dosiahli, museli by sme resetovať náš integračný súbor, aby noví používatelia prestali so službou interagovať. To znamená, že by sme zakázali náš hlavný sledovací kód, služba by prestala zbierať údaje a počítať odporúčania a používateľovi by sa jednoducho zobrazila stránka bez blokov odporúčaní. Pre všetkých, ktorí už predtým dostali integračný súbor, sme poskytli možnosť prepnúť DNS záznam na Amazon a 200 OK stub.

Výsledky

Celý náklad sme zvládli aj bez nutnosti použitia ďalších stavebných strojov. A vďaka predbežnej príprave sme nepotrebovali žiadny z vypracovaných plánov reakcie. Všetka vykonaná práca je však neoceniteľnou skúsenosťou, ktorá nám pomôže vyrovnať sa s najneočakávanejšími a obrovskými nápormi návštevnosti.
Rovnako ako v roku 2017 sa zaťaženie služby zvýšilo o 40 % a počet používateľov v internetových obchodoch sa na Black Friday zvýšil o 60 %. Všetky ťažkosti a chyby nastali v prípravnom období, čo nás a našich klientov zachránilo pred nepredvídanými situáciami.

Ako zvládate Black Friday? Ako sa pripravujete na kritické zaťaženie?

Zdroj: hab.com

Pridať komentár