Hoe kinne jo ferneare tanommen loads op it systeem: wy prate oer grutskalige tariedings foar Black Friday

Hoi Habr!

Yn 2017, tidens Black Friday, ferhege de lading mei hast oardel kear, en ús servers wiene op har limyt. Yn 'e rin fan' e jier is it oantal kliïnten signifikant groeid, en it waard dúdlik dat sûnder soarchfâldige foarriedige tarieding it platfoarm gewoan net de lesten fan 2018 kin wjerstean.

Wy stelle it meast ambisjeuze doel mooglik: wy woenen folslein taret wêze op elke, sels de machtichste, surges fan aktiviteit en begon it heule jier foarôf nije kapasiteiten te lansearjen.

Us CTO Andrey Chizh (chizh_andrey) fertelt hoe't wy ús tariede op Black Friday 2018, hokker maatregels wy namen om falt te foarkommen, en, fansels, de resultaten fan sokke soarchfâldige tarieding.

Hoe kinne jo ferneare tanommen loads op it systeem: wy prate oer grutskalige tariedings foar Black Friday

Hjoed wol ik prate oer tariedings foar Black Friday 2018. Wêrom no, as de measte grutte ferkeapen efter ús binne? Wy binne begûn mei it tarieden fan sa'n jier foar grutskalige eveneminten, en troch trial and error fûnen wy de optimale oplossing. Wy riede oan dat jo fan tefoaren soargje foar de waarme seizoenen en oplichting foarkomme dy't op it meast ûngelegen momint opkomme kinne.
It materiaal sil nuttich wêze foar elkenien dy't de maksimale winst fan sokke oandielen wol squeeze, om't De technyske kant fan it probleem is hjir net minder as de marketingkant.

Funksjes fan ferkear by grutte ferkeap

Yn tsjinstelling ta populêr leauwe is Black Friday net allinich ien dei yn 't jier, mar hast in heule wike: de earste koartingsoanbiedingen komme 7-8 dagen foar de ferkeap. Websideferkear begjint de hiele wike soepel te groeien, berikt freed syn hichtepunt en sakket op sneon frij skerp nei it reguliere nivo fan 'e winkel.

Hoe kinne jo ferneare tanommen loads op it systeem: wy prate oer grutskalige tariedings foar Black Friday

Dit is wichtich om te beskôgjen: online winkels wurde benammen gefoelich foar alle "fertragingen" yn it systeem. Derneist belibbe ús e-postnijsbriefline ek in signifikante taname fan it oantal ynstjoerings.

It is strategysk wichtich foar ús om Black Friday sûnder crashes troch te gean, om't ... De wichtichste funksjonaliteit fan websiden en winkelnijsbrieven hinget ôf fan 'e wurking fan it platfoarm, nammentlik:

  • Produktoanbefellings folgje en útjaan,
  • Utjefte fan besibbe materialen (bygelyks ôfbyldings fan it ûntwerp fan oanbefellingsblokken, lykas pylken, logo's, ikoanen en oare fisuele eleminten),
  • It leverjen fan produktôfbyldings fan 'e fereaske grutte (foar dizze doelen hawwe wy "ImageResizer" - in subsysteem dat in ôfbylding downloade fan 'e winkeltsjinner, komprimearret it nei de fereaske grutte en, fia caching-tsjinners, ôfbyldings fan' e fereaske grutte foar elk produkt produseart yn elk oanbefellingsblok).

Yn feite, tidens Black Friday 2019, gie de lading op 'e tsjinst mei 40% ta, d.w.s. it oantal eveneminten dat de Retail Rocket systeem tracks en ferwurket op online winkel sites is tanommen fan 5 nei 8 tûzen fersiken per sekonde. Troch it feit dat wy ús tariede op mear serieuze loads, oerlibben wy sa'n surge maklik.

Hoe kinne jo ferneare tanommen loads op it systeem: wy prate oer grutskalige tariedings foar Black Friday

Algemiene training

Black Friday is in drokke tiid foar alle detailhannel en e-commerce yn it bysûnder. It oantal brûkers en har aktiviteit op dit stuit groeit flink, dus wy, lykas altyd, deeglik taret op dizze drokke tiid. Lit ús tafoegje hjir it feit dat wy hawwe in protte online winkels ferbûn net allinnich yn Ruslân, mar ek yn Europa, dêr't de opwining is folle heger, en wy krije in nivo fan passy slimmer as de Braziliaanske rige. Wat moat dien wurde om folslein taret te wurden op ferhege loads?

Wurkje mei tsjinners

Earst wie it nedich om út te finen wat wy krekt nedich wiene om serverkrêft te fergrutsjen. Al yn augustus begûnen wy nije servers spesifyk foar Black Friday te bestellen - yn totaal hawwe wy 10 ekstra masines tafoege. Tsjin novimber wiene se folslein yn 'e striid.

Tagelyk waarden guon fan 'e bouwmasines opnij ynstalleare foar gebrûk as applikaasjeservers. Wy hawwe se fuortendaliks taret om ferskate funksjes te brûken: sawol foar it útjaan fan oanbefellings as foar de ImageResizer-tsjinst, sadat, ôfhinklik fan it type lading, elk fan har koe wurde brûkt foar ien fan dizze rollen. Yn normale modus hawwe de Applikaasje- en ImageResizer-tsjinners dúdlik definieare funksjes: de eardere jouwe oanbefellings út, de lêste leverje ôfbyldings foar brieven en oanbefellingsblokken op online winkelwebsides. As tarieding op Black Friday waard besletten om alle dual-purpose tsjinners te meitsjen om ferkear tusken har te balansearjen ôfhinklik fan it type download.

Dan hawwe wy tafoege twa grutte tsjinners foar Kafka (Apache Kafka) en krige in kluster fan 5 krêftige masines. Spitigernôch gie alles net sa flot as wy wolle: tidens it datasyngronisaasjeproses namen twa nije masines de hiele breedte fan it netwurkkanaal yn beslach, en wy moasten driuwend útfine hoe't it tafoegingsproses fluch en feilich foar de hiele ynfrastruktuer. Om dit probleem op te lossen, moasten ús behearders har wykeinen dapper opofferje.

Wurkje mei gegevens

Neist servers hawwe wy besletten om bestannen te optimalisearjen om de lading te ferljochtsjen en in grutte stap foar ús wie de oersetting fan statyske bestannen. Alle statyske triemmen dy't earder waarden hosted op servers waarden ferpleatst nei S3 + Cloudfront. Wy wolle dit al in lange tiid dwaan, om't de lading op 'e server tichtby de limytwearden wie, en no is in geweldige kâns ûntstien.

In wike foar Black Friday fergrutte wy de cachingtiid fan ôfbyldings nei 3 dagen, sadat as ImageResizer ferûngelokke, earder bewarre ôfbyldings fan 'e cdn wurde ophelle. It fermindere ek de lading op ús servers, om't hoe langer de ôfbylding wurdt opslein, hoe minder faak wy boarnen moatte besteegje oan it feroarjen fan grutte.

En last but not least: 5 dagen foar Black Friday waard in moratorium oankundige op it ynsetten fan elke nije funksjonaliteit, lykas op elk wurk mei de ynfrastruktuer - alle oandacht is rjochte op it omgean mei ferhege loads.

Plannen om te reagearjen op drege situaasjes

Hoe heech kwaliteit de tarieding ek is, fakaps binne altyd mooglik. En wy hawwe 3 antwurdplannen ûntwikkele foar mooglike krityske situaasjes:

  • load reduksje,
  • guon tsjinsten útskeakelje,
  • folsleine shutdown fan 'e tsjinst.

Plan A: Ferminderje load. Moatte aktivearre wêze as, fanwege in tanimming fan lading, ús servers fierder gean as akseptabele responstimingen. Yn dit gefal hawwe wy meganismen taret foar it stadichoan ferminderjen fan de lading troch in diel fan it ferkear te wikseljen nei Amazon-tsjinners, dy't gewoan op alle oanfragen reagearje mei "200 OK" en in lege antwurd jaan. Wy begrepen dat dit in degradaasje wie fan 'e kwaliteit fan' e tsjinst, mar de kar tusken it feit dat de tsjinst hielendal net wurket of gjin oanbefellings foar likernôch 10% fan it ferkear is dúdlik.

Plan B: Tsjinsten útskeakelje. Impliisde parsjele degradaasje fan 'e tsjinst. Bygelyks, it ferminderjen fan de snelheid fan it berekkenjen fan persoanlike oanbefellings om guon databases en kommunikaasjekanalen te lossen. Yn 'e normale modus wurde oanbefellings yn real-time berekkene, wêrtroch in oare ferzje fan' e online winkel foar elke besiker wurdt makke, mar ûnder betingsten fan ferhege load kin it ferminderjen fan 'e snelheid oare kearntsjinsten trochgean mei wurkjen.

Plan C: yn gefal fan Armageddon. As in folsleine systeemflater optreedt, hawwe wy in plan taret wêrmei't wy feilich kinne wurde loskeppele fan ús klanten. Winkelkeapers sille gewoan ophâlde mei it sjen fan oanbefellings; de prestaasjes fan 'e online winkel sille op gjin inkelde manier lije. Om dit te dwaan, soene wy ​​ús yntegraasjebestân moatte weromsette, sadat nije brûkers stopje mei ynteraksje mei de tsjinst. Dat is, wy soene ús haad trackingkoade útskeakelje, de tsjinst soe ophâlde mei it sammeljen fan gegevens en it berekkenjen fan oanbefellings, en de brûker soe gewoan in side sjen sûnder oanbefellingsblokken. Foar al dyjingen dy't earder in yntegraasjebestân krigen hawwe, hawwe wy de opsje levere om it DNS-record te wikseljen nei Amazon en de 200 OK-stub.

Resultaten

Wy behannele de hiele lading sels sûnder de needsaak om ekstra bouwmasines te brûken. En tanksij foarôfgeande tarieding hiene wy ​​gjin fan 'e ûntwikkele antwurdplannen nedich. Mar al it dien wurk is ûnskatbere wearde ûnderfining dy't ús sil helpe om te gean mei de meast ûnferwachte en enoarme ynstream fan ferkear.
Lykas yn 2017, de lading op de tsjinst tanommen mei 40%, en it oantal brûkers yn online winkels tanommen mei 60% op Black Friday. Alle swierrichheden en flaters barde yn 'e tariedingsperioade, dy't ús en ús kliïnten rêden fan ûnfoarsjoene situaasjes.

Hoe geane jo om mei Black Friday? Hoe meitsje jo jo tariede op krityske loads?

Boarne: www.habr.com

Add a comment