Kiel elteni pliigitajn ŝarĝojn en la sistemo: ni parolas pri grandskalaj preparoj por Nigra Vendredo

Hej Habr!

En 2017, dum Nigra Vendredo, la ŝarĝo pliiĝis preskaŭ unufoje kaj duono, kaj niaj serviloj estis ĉe sia limo. Dum la jaro, la nombro da klientoj signife kreskis, kaj evidentiĝis, ke sen zorgema prepara preparado, la platformo simple ne eltenas la ŝarĝojn de 2018.

Ni fiksis la plej ambician celon ebla: ni volis esti plene preparitaj por ajnaj, eĉ la plej potencaj, ekfluoj de agado kaj komencis lanĉi novajn kapablojn anticipe dum la tuta jaro.

Nia CTO Andrey Chizh (chizh_andrey) rakontas kiel ni prepariĝis por Nigra Vendredo 2018, kiajn mezurojn ni prenis por eviti falojn, kaj, kompreneble, la rezultojn de tia zorgema preparado.

Kiel elteni pliigitajn ŝarĝojn en la sistemo: ni parolas pri grandskalaj preparoj por Nigra Vendredo

Hodiaŭ mi volas paroli pri preparoj por Nigra Vendredo 2018. Kial nun, kiam la plej multaj el la ĉefaj vendoj estas malantaŭ ni? Ni komencis prepari ĉirkaŭ unu jaron antaŭ grandskalaj eventoj, kaj per provo kaj eraro ni trovis la optimuman solvon. Ni rekomendas, ke vi zorgu pri la varmaj sezonoj anticipe kaj malhelpi fraŭdojn, kiuj eble aperos en la plej maloportuna momento.
La materialo estos utila al ĉiuj, kiuj volas elpremi la maksimuman profiton de tiaj akcioj, ĉar La teknika flanko de la afero ne malsuperas la merkatan flankon ĉi tie.

Trajtoj de trafiko ĉe grandaj vendoj

Kontraŭe al populara kredo, Nigra Vendredo ne estas nur unu tago jare, sed preskaŭ tuta semajno: la unuaj rabataj ofertoj alvenas 7-8 tagojn antaŭ la vendo. Reteja trafiko komencas kreski glate dum la semajno, atingas sian pinton vendrede kaj falas sufiĉe akre sabate al la regulaj niveloj de la vendejo.

Kiel elteni pliigitajn ŝarĝojn en la sistemo: ni parolas pri grandskalaj preparoj por Nigra Vendredo

Ĉi tio gravas konsideri: interretaj butikoj fariĝas speciale sentemaj al iuj "malrapidiĝoj" en la sistemo. Krome, nia retpoŝta informlinio ankaŭ spertis signifan pliiĝon en la nombro da sendadoj.

Estas strategie grave por ni trairi Nigran Vendredon sen kraŝoj, ĉar... La plej grava funkcieco de retejoj kaj butikaj bultenoj dependas de la funkciado de la platformo, nome:

  • Spurado kaj elsendo de produktaj rekomendoj,
  • Eldono de rilataj materialoj (ekzemple bildoj de la dezajno de rekomendaj blokoj, kiel sagoj, emblemoj, ikonoj kaj aliaj vidaj elementoj),
  • Provizante produktajn bildojn de la bezonata grandeco (por ĉi tiuj celoj ni havas "ImageResizer" - subsistemo, kiu elŝutas bildon de la vendeja servilo, kunpremas ĝin al la bezonata grandeco kaj, per kaŝmemorserviloj, produktas bildojn de la bezonata grandeco por ĉiu produkto en ĉiu rekomendbloko).

Fakte, dum Nigra Vendredo 2019, la ŝarĝo sur la servo pliiĝis je 40%, t.e. la nombro da eventoj, kiujn la Retail Rocket-sistemo spuras kaj procesas en interretaj vendejejoj, pliiĝis de 5 ĝis 8 mil petoj sekundo. Pro la fakto, ke ni prepariĝis por pli seriozaj ŝarĝoj, ni facile travivis tian pliiĝon.

Kiel elteni pliigitajn ŝarĝojn en la sistemo: ni parolas pri grandskalaj preparoj por Nigra Vendredo

Ĝenerala trejnado

Nigra Vendredo estas okupata tempo por ĉiuj podetala komerco kaj elektronika komerco precipe. La nombro de uzantoj kaj ilia aktiveco en ĉi tiu momento signife kreskas, do ni, kiel ĉiam, plene prepariĝis por ĉi tiu okupata tempo. Ni aldonu ĉi tie la fakton, ke ni havas multajn retajn butikojn konektitajn ne nur en Rusio, sed ankaŭ en Eŭropo, kie la ekscito estas multe pli alta, kaj ni ricevas nivelon de pasio pli malbona ol la brazila serio. Kion oni devas fari por esti plene preta por pliigitaj ŝarĝoj?

Laborante kun serviloj

Unue, necesis ekscii, kion precize ni bezonis por pliigi servilan potencon. Jam en aŭgusto, ni komencis mendi novajn servilojn specife por Nigra Vendredo - entute ni aldonis 10 pliajn maŝinojn. Antaŭ novembro ili estis plene en batalo.

En la sama tempo, kelkaj el la konstrumaŝinoj estis reinstalitaj por uzo kiel Aplikserviloj. Ni tuj preparis ilin por uzi malsamajn funkciojn: kaj por eldoni rekomendojn kaj por la servo ImageResizer, tiel ke, laŭ la tipo de ŝarĝo, ĉiu el ili povus esti uzata por unu el ĉi tiuj roloj. En normala reĝimo, la Serviloj de Apliko kaj ImageResizer havas klare difinitajn funkciojn: la unuaj eldonas rekomendojn, la lastaj provizas bildojn por leteroj kaj rekomendblokoj en interretaj butikumadaj retejoj. En preparo por Nigra Vendredo, estis decidite fari ĉiujn duoblajn servilojn por ekvilibrigi trafikon inter ili depende de la tipo de elŝuto.

Poste ni aldonis du grandajn servilojn por Kafka (Apache Kafka) kaj ricevis aron de 5 potencaj maŝinoj. Bedaŭrinde, ĉio ne iris tiel glate kiel ni dezirus: dum la datumsinkroniga procezo, du novaj maŝinoj okupis la tutan larĝon de la retkanalo, kaj ni devis urĝe eltrovi kiel efektivigi la aldonan procezon rapide kaj sekure por la tuta infrastrukturo. Por solvi ĉi tiun problemon, niaj administrantoj devis kuraĝe oferi siajn semajnfinojn.

Laborante kun datumoj

Krom serviloj, ni decidis optimumigi dosierojn por malpezigi la ŝarĝon kaj granda paŝo por ni estis la tradukado de statikaj dosieroj. Ĉiuj senmovaj dosieroj, kiuj antaŭe estis gastigitaj sur serviloj, estis translokigitaj al S3 + Cloudfront. Ni delonge volas fari tion, ĉar la ŝarĝo sur la servilo estis proksima al la limvaloroj, kaj nun granda ŝanco aperis.

Semajnon antaŭ Nigra Vendredo, ni pliigis la bildan kaŝmemortempon al 3 tagoj, tiel ke se ImageResizer kraŝis, antaŭe konservitaj bildoj estus prenitaj de la cdn. Ĝi ankaŭ reduktis la ŝarĝon sur niaj serviloj, ĉar ju pli longe la bildo estas stokita, des malpli ofte ni bezonas elspezi rimedojn por regrandigi.

Kaj laste sed ne malplej: 5 tagojn antaŭ Nigra Vendredo, moratorio estis anoncita pri la disfaldiĝo de iu ajn nova funkcieco, kaj ankaŭ pri ajna laboro kun la infrastrukturo - ĉiu atento celas alfronti pliigitajn ŝarĝojn.

Planoj por respondi al malfacilaj situacioj

Kiom ajn altkvalita estas la preparado, fakapoj ĉiam eblas. Kaj ni ellaboris 3 respondajn planojn por eblaj kritikaj situacioj:

  • redukto de ŝarĝo,
  • malŝaltante iujn servojn,
  • kompleta ĉesigo de la servo.

Plano A: Redukti ŝarĝon. Devintus esti aktivigitaj se, pro pliiĝo de ŝarĝo, niaj serviloj preterpasis akcepteblajn respondtempojn. En ĉi tiu kazo, ni preparis mekanismojn por iom post iom redukti la ŝarĝon ŝanĝante parton de la trafiko al Amazon-serviloj, kiuj simple respondus al ĉiuj petoj per "200 OK" kaj donus malplenan respondon. Ni komprenis, ke tio estas malboniĝo de la kvalito de la servo, sed la elekto inter la fakto, ke la servo tute ne funkcias aŭ ne montras rekomendojn por proksimume 10% de trafiko, estas evidenta.

Plano B: Malebligu servojn. Implica parta degenero de la servo. Ekzemple, reduktante la rapidecon de kalkulado de personaj rekomendoj por malŝarĝi iujn datumbazojn kaj komunikajn kanalojn. En normala reĝimo, rekomendoj estas kalkulitaj en reala tempo, kreante malsaman version de la reta butiko por ĉiu vizitanto, sed en kondiĉoj de pliigita ŝarĝo, reduktado de la rapideco permesas al aliaj kernaj servoj daŭre funkcii.

Plano C: en kazo de Armagedono. Se kompleta fiasko de la sistemo okazas, ni preparis planon, kiu permesos al ni esti sekure malkonektitaj de niaj klientoj. Butikaĉetantoj simple ĉesos vidi rekomendojn; la agado de la reta butiko neniel suferos. Por fari tion, ni devus restarigi nian integrigan dosieron por ke novaj uzantoj ĉesu interagi kun la servo. Tio estas, ni malŝaltus nian ĉefan spurkodon, la servo ĉesus kolekti datumojn kaj kalkuli rekomendojn, kaj la uzanto simple vidus paĝon sen rekomendblokoj. Por ĉiuj, kiuj antaŭe ricevis integrigan dosieron, ni disponigis la eblon ŝanĝi la DNS-rekordon al Amazon kaj la 200 OK-stupon.

Rezultoj

Ni traktis la tutan ŝarĝon eĉ sen la bezono uzi pliajn konstruajn maŝinojn. Kaj dank' al antaŭpreparo, ni ne bezonis iun el la evoluintaj respondplanoj. Sed la tuta laboro farita estas valorega sperto, kiu helpos nin trakti la plej neatenditajn kaj grandegajn alfluojn de trafiko.
Kiel en 2017, la ŝarĝo de la servo pliiĝis je 40%, kaj la nombro da uzantoj en interretaj vendejoj pliiĝis je 60% en Nigra Vendredo. Ĉiuj malfacilaĵoj kaj eraroj okazis dum la prepara periodo, kio savis nin kaj niajn klientojn de neantaŭviditaj situacioj.

Kiel vi traktas Nigran Vendredon? Kiel vi prepariĝas por kritikaj ŝarĝoj?

fonto: www.habr.com

Aldoni komenton