Hogyan lehet ellenállni a rendszer megnövekedett terhelésének: a Black Friday nagyszabású előkészületeiről beszélünk

Szia Habr!

2017-ben, a Black Friday idején közel másfélszeresére nőtt a terhelés, szervereink a korláton voltak. Az év során az ügyfelek száma jelentősen nőtt, és nyilvánvalóvá vált, hogy gondos előzetes előkészítés nélkül a platform egyszerűen nem bírja el a 2018-as terhelést.

A lehető legambiciózusabb célt tűztük ki: teljes mértékben fel akartunk készülni minden, még a legerőteljesebb aktivitási hullámra is, és az év során előre elkezdtük új kapacitások beindítását.

CTO-nk Andrey Chizh (chizh_andrey) elmondja, hogyan készültünk a 2018-as Black Friday-re, milyen intézkedéseket tettünk az esések elkerülése érdekében, és természetesen az ilyen gondos felkészülés eredményeit.

Hogyan lehet ellenállni a rendszer megnövekedett terhelésének: a Black Friday nagyszabású előkészületeiről beszélünk

Ma a 2018-as Black Friday előkészületeiről szeretnék beszélni. Miért most, amikor a nagy eladások nagy része mögöttünk van? Körülbelül egy évvel a nagyszabású rendezvények előtt kezdtük el a felkészülést, és próbálgatással megtaláltuk az optimális megoldást. Javasoljuk, hogy előre gondoskodjon a forró évszakokról, és akadályozza meg a csalásokat, amelyek a leginkább alkalmatlan pillanatban bukkanhatnak fel.
Az anyag hasznos lesz mindenkinek, aki a maximális profitot akarja kihozni az ilyen részvényekből, mert A probléma technikai oldala itt nem rosszabb, mint a marketing oldala.

A forgalom jellemzői a nagy értékesítéseknél

A Black Friday a közhiedelemmel ellentétben nem csak egy nap egy évben, hanem szinte egy egész hét: az első akciós ajánlatok 7-8 nappal az akció előtt érkeznek. A weboldal látogatottsága a hét folyamán zökkenőmentesen növekedni kezd, pénteken éri el a csúcspontját, szombaton pedig meglehetősen meredeken csökken az üzlet szokásos szintjére.

Hogyan lehet ellenállni a rendszer megnövekedett terhelésének: a Black Friday nagyszabású előkészületeiről beszélünk

Ezt fontos figyelembe venni: az online áruházak különösen érzékenyek a rendszer esetleges „lassulásaira”. Emellett az e-mailes hírlevélsorunkon is jelentősen megnőtt a beküldések száma.

Stratégiailag fontos számunkra, hogy a Black Fridayt ütközések nélkül vészeljük át, mert... A weboldalak és bolti hírlevelek legfontosabb funkciói a platform működésétől függenek, nevezetesen:

  • termékajánlások nyomon követése és kiadása,
  • Kapcsolódó anyagok kiadása (például ajánlási blokkok tervezésének képei, például nyilak, logók, ikonok és egyéb vizuális elemek),
  • Megfelelő méretű termékképek biztosítása (erre a célra az „ImageResizer” alrendszerünk van, amely letölt egy képet az áruház szerveréről, tömöríti a kívánt méretre, és gyorsítótárazó szervereken keresztül minden termékhez megfelelő méretű képeket készít. minden ajánlási blokk).

Valójában 2019 Black Friday idején a szolgáltatás terhelése 40%-kal nőtt, azaz. másodpercenként 5-ről 8 ezerre emelkedett azoknak az eseményeknek a száma, amelyeket a Retail Rocket rendszer követ és feldolgoz az online áruházak oldalain. Tekintettel arra, hogy komolyabb terhelésekre készültünk, könnyen túléltünk egy ilyen hullámot.

Hogyan lehet ellenállni a rendszer megnövekedett terhelésének: a Black Friday nagyszabású előkészületeiről beszélünk

Általános edzés

A Fekete Péntek mozgalmas időszak a kiskereskedelemben és különösen az e-kereskedelemben. Jelen pillanatban a felhasználók száma és aktivitása jelentősen nő, ezért, mint mindig, alaposan felkészültünk erre a mozgalmas időszakra. Tegyük hozzá, hogy nemcsak Oroszországban, hanem Európában is számos webáruházunk csatlakozik, ahol sokkal nagyobb az izgalom, és a brazil sorozatnál is rosszabb szenvedélyt kapunk. Mit kell tenni, hogy teljesen felkészüljünk a megnövekedett terhelésekre?

Szerverekkel való munka

Először azt kellett kideríteni, hogy pontosan mire van szükségünk a szerver teljesítményének növeléséhez. Már augusztusban elkezdtünk új szervereket rendelni kifejezetten a Black Friday alkalmából – összesen 10 további gépet adtunk hozzá. Novemberre már teljes harcban voltak.

Ezzel egyidejűleg néhány összeállítású gépet újratelepítettek alkalmazáskiszolgálóként való használatra. Azonnal felkészítettük őket a különböző funkciók használatára: mind az ajánlások kiadására, mind az ImageResizer szolgáltatásra, hogy a terhelés típusától függően mindegyik ilyen szerepkörre használható legyen. Normál módban az Application és ImageResizer szerverek jól meghatározott funkciókkal rendelkeznek: előbbiek ajánlásokat, utóbbiak képeket és ajánlási blokkokat szolgáltatnak az online vásárlási webhelyeken. A Black Friday előkészítése során úgy döntöttek, hogy az összes szervert kétcélúvá teszik, hogy a letöltés típusától függően kiegyensúlyozzák a köztük lévő forgalmat.

Aztán hozzáadtunk két nagy szervert a Kafkához (Apache Kafka), és kaptunk egy 5 nagy teljesítményű gépből álló klasztert. Sajnos nem ment minden olyan gördülékenyen, ahogy szerettük volna: az adatszinkronizálás során két új gép foglalta el a hálózati csatorna teljes szélességét, és sürgősen ki kellett találnunk, hogyan lehet gyorsan és biztonságosan lebonyolítani a hozzáadás folyamatát. teljes infrastruktúra. A probléma megoldása érdekében rendszergazdáinknak bátran fel kellett áldozniuk hétvégéiket.

Adatokkal való munka

A szerverek mellett úgy döntöttünk, hogy optimalizáljuk a fájlokat, hogy csökkentsük a terhelést, és nagy lépés volt számunkra a statikus fájlok fordítása. Az összes statikus fájl, amelyet korábban a szervereken tároltak, átkerült az S3 + Cloudfront szolgáltatásba. Régóta szerettük volna ezt megtenni, hiszen a szerver terhelése a határértékek közelében volt, és most egy remek lehetőség adódott.

Egy héttel a Black Friday előtt 3 napra növeltük a képek gyorsítótárazási idejét, így ha az ImageResizer összeomlik, akkor a korábban gyorsítótárban tárolt képeket lekérjük a cdn-ről. A szervereink terhelését is csökkentette, hiszen minél hosszabb ideig tároljuk a képet, annál ritkábban kell erőforrásokat fordítanunk az átméretezésre.

És végül, de nem utolsósorban: 5 nappal a Black Friday előtt moratóriumot hirdettek minden új funkció bevezetésére, valamint az infrastruktúrával kapcsolatos munkákra – minden figyelem a megnövekedett terhelések kezelésére irányul.

Tervek a nehéz helyzetekre való reagálásra

Bármilyen minőségi is legyen az előkészítés, fakap mindig lehetséges. A lehetséges kritikus helyzetekre 3 reagálási tervet dolgoztunk ki:

  • terhelés csökkentése,
  • egyes szolgáltatások letiltása,
  • a szolgáltatás teljes leállítása.

A terv: Csökkentse a terhelést. Akkor kellett volna aktiválni, ha a megnövekedett terhelés miatt szervereink túllépik az elfogadható válaszidőt. Ebben az esetben olyan mechanizmusokat dolgoztunk ki, amelyek segítségével fokozatosan csökkenthetjük a terhelést azáltal, hogy a forgalom egy részét Amazon-szerverekre kapcsoljuk, amelyek egyszerűen „200 OK”-val válaszolnának minden kérésre, és üres választ adnának. Megértettük, hogy ez a szolgáltatás minőségének romlása, de nyilvánvaló a választás aközött, hogy a szolgáltatás egyáltalán nem működik, vagy nem ad ajánlásokat a forgalom körülbelül 10%-ára.

B terv: A szolgáltatások letiltása. A szolgáltatás vélelmezett részleges leromlása. Például a személyes ajánlások kiszámításának sebességének csökkentése egyes adatbázisok és kommunikációs csatornák kiürítése érdekében. Normál módban az ajánlásokat valós időben számítják ki, minden látogató számára létrehozva az online áruház különböző verzióját, de megnövekedett terhelés esetén a sebesség csökkentése lehetővé teszi a többi alapvető szolgáltatás működésének folytatását.

C terv: Armageddon esetén. Ha teljes rendszerhiba lép fel, elkészítettünk egy tervet, amely lehetővé teszi számunkra, hogy biztonságosan lekapcsolódjunk ügyfeleinkről. Az áruház vásárlói egyszerűen nem látják az ajánlásokat, az online áruház teljesítménye semmilyen módon nem fog csorbulni. Ehhez vissza kell állítani az integrációs fájlunkat, hogy az új felhasználók ne lépjenek kapcsolatba a szolgáltatással. Ez azt jelenti, hogy letiltjuk a fő követőkódunkat, a szolgáltatás leállítja az adatgyűjtést és az ajánlások kiszámítását, és a felhasználó egyszerűen egy ajánlási blokkok nélküli oldalt lát. Mindazok számára, akik korábban kaptak integrációs fájlt, lehetőséget biztosítottunk a DNS-rekord átállítására az Amazonra és a 200 OK csonkra.

Eredményei

A teljes terhelést anélkül is kezeltük, hogy további építőgépeket kellett volna használni. Az előzetes felkészülésnek köszönhetően pedig nem volt szükségünk a kidolgozott reagálási tervekre. Az elvégzett munka azonban felbecsülhetetlen értékű tapasztalat, amely segít megbirkózni a legváratlanabb és leghatalmasabb forgalommal.
A szolgáltatás terhelése 2017-hez hasonlóan 40%-kal, a webáruházak felhasználóinak száma pedig 60%-kal nőtt a Black Friday napján. Minden nehézség és hiba az előkészítő időszak alatt előfordult, ami megmentett minket és ügyfeleinket az előre nem látható helyzetektől.

Ti hogy viselitek a fekete pénteket? Hogyan készülsz fel a kritikus terhelésekre?

Forrás: will.com

Hozzászólás