Jinsi ya kuhimili mizigo iliyoongezeka kwenye mfumo: tunazungumza juu ya maandalizi makubwa ya Ijumaa Nyeusi

Habari Habr!

Mnamo 2017, wakati wa Ijumaa Nyeusi, mzigo uliongezeka kwa karibu mara moja na nusu, na seva zetu zilikuwa kikomo. Kwa mwaka, idadi ya wateja imeongezeka kwa kiasi kikubwa, na ikawa wazi kuwa bila maandalizi ya awali ya awali, jukwaa linaweza tu kuhimili mizigo ya 2018.

Tuliweka lengo kubwa zaidi iwezekanavyo: tulitaka kuwa tayari kikamilifu kwa shughuli zozote, hata zenye nguvu zaidi, na tukaanza kuzindua uwezo mpya mapema mwaka mzima.

CTO wetu Andrey Chizh (chizh_andrey) inaelezea jinsi tulivyojitayarisha kwa Black Friday 2018, ni hatua gani tulizochukua ili kuepuka kuanguka, na, bila shaka, matokeo ya maandalizi hayo makini.

Jinsi ya kuhimili mizigo iliyoongezeka kwenye mfumo: tunazungumza juu ya maandalizi makubwa ya Ijumaa Nyeusi

Leo nataka kuzungumza juu ya maandalizi ya Black Friday 2018. Kwa nini sasa, wakati wengi wa mauzo makubwa ni nyuma yetu? Tulianza kujiandaa mwaka mmoja kabla ya matukio makubwa, na kupitia majaribio na makosa tulipata suluhisho mojawapo. Tunapendekeza utunze misimu ya joto mapema na uzuie ulaghai ambao unaweza kujitokeza kwa wakati usiofaa zaidi.
Nyenzo zitakuwa na manufaa kwa kila mtu ambaye anataka kufinya faida kubwa kutoka kwa hifadhi hizo, kwa sababu Upande wa kiufundi wa suala sio duni kwa upande wa uuzaji hapa.

Vipengele vya trafiki katika mauzo makubwa

Kinyume na imani maarufu, Ijumaa Nyeusi sio siku moja tu kwa mwaka, lakini karibu wiki nzima: matoleo ya kwanza ya punguzo hufika siku 7-8 kabla ya mauzo. Trafiki kwenye tovuti huanza kukua vizuri wiki nzima, hufikia kilele chake siku ya Ijumaa na hupungua kwa kasi Jumamosi hadi viwango vya kawaida vya duka.

Jinsi ya kuhimili mizigo iliyoongezeka kwenye mfumo: tunazungumza juu ya maandalizi makubwa ya Ijumaa Nyeusi

Hii ni muhimu kuzingatia: maduka ya mtandaoni huwa nyeti hasa kwa "kupunguza kasi" yoyote katika mfumo. Aidha, barua pepe yetu ya barua pepe pia ilipata ongezeko kubwa la idadi ya mawasilisho.

Ni muhimu kimkakati kwetu kupitia Ijumaa Nyeusi bila ajali, kwa sababu... Utendaji muhimu zaidi wa tovuti na majarida ya duka hutegemea utendakazi wa jukwaa, yaani:

  • Kufuatilia na kutoa mapendekezo ya bidhaa,
  • Utoaji wa nyenzo zinazohusiana (kwa mfano, picha za muundo wa vizuizi vya pendekezo, kama vile mishale, nembo, ikoni na vitu vingine vya kuona);
  • Kutoa picha za bidhaa za saizi inayohitajika (kwa madhumuni haya tunayo "ImageResizer" - mfumo mdogo ambao unapakua picha kutoka kwa seva ya duka, kuibana kwa saizi inayohitajika na, kupitia seva za kache, hutoa picha za saizi inayohitajika kwa kila bidhaa. kila kizuizi cha pendekezo).

Kwa kweli, wakati wa Ijumaa Nyeusi 2019, mzigo kwenye huduma uliongezeka kwa 40%, i.e. idadi ya matukio ambayo mfumo wa Retail Rocket unafuatilia na michakato kwenye tovuti za duka za mtandaoni imeongezeka kutoka maombi elfu 5 hadi 8 kwa sekunde. Kwa sababu ya ukweli kwamba tulikuwa tukijiandaa kwa mizigo mikubwa zaidi, tulinusurika kwa urahisi kama huo.

Jinsi ya kuhimili mizigo iliyoongezeka kwenye mfumo: tunazungumza juu ya maandalizi makubwa ya Ijumaa Nyeusi

Mafunzo ya jumla

Ijumaa Nyeusi ni wakati wa shughuli nyingi kwa biashara zote za rejareja na za kielektroniki haswa. Idadi ya watumiaji na shughuli zao kwa wakati huu inakua kwa kiasi kikubwa, kwa hivyo sisi, kama kawaida, tumejitayarisha kikamilifu kwa wakati huu wa shughuli nyingi. Hebu tuongeze hapa ukweli kwamba tuna maduka mengi ya mtandaoni yaliyounganishwa sio tu nchini Urusi, bali pia katika Ulaya, ambapo msisimko ni wa juu zaidi, na tunapata kiwango cha shauku mbaya zaidi kuliko mfululizo wa Brazili. Ni nini kinachohitajika kufanywa ili kujiandaa kikamilifu kwa mizigo iliyoongezeka?

Kufanya kazi na seva

Kwanza, ilikuwa ni lazima kujua ni nini hasa tunachohitaji ili kuongeza nguvu ya seva. Tayari mnamo Agosti, tulianza kuagiza seva mpya haswa kwa Ijumaa Nyeusi - kwa jumla tuliongeza mashine 10 za ziada. Kufikia Novemba walikuwa katika vita kamili.

Wakati huo huo, baadhi ya mashine za ujenzi ziliwekwa upya kwa matumizi kama seva za Programu. Tuliwatayarisha mara moja kutumia kazi tofauti: wote kwa kutoa mapendekezo na kwa huduma ya ImageResizer, ili, kulingana na aina ya mzigo, kila mmoja wao angeweza kutumika kwa mojawapo ya majukumu haya. Katika hali ya kawaida, seva za Maombi na ImageResizer zina kazi zilizofafanuliwa kwa uwazi: mapendekezo ya toleo la awali, picha za mwisho za ugavi wa barua na vizuizi vya mapendekezo kwenye tovuti za ununuzi mtandaoni. Katika maandalizi ya Ijumaa Nyeusi, iliamuliwa kutengeneza seva zote zenye madhumuni mawili ili kusawazisha trafiki kati yao kulingana na aina ya upakuaji.

Kisha tukaongeza seva mbili kubwa za Kafka (Apache Kafka) na tukapata nguzo ya mashine 5 zenye nguvu. Kwa bahati mbaya, kila kitu hakikuenda sawa kama tungependa: wakati wa mchakato wa maingiliano ya data, mashine mbili mpya zilichukua upana mzima wa chaneli ya mtandao, na ilibidi tufikirie haraka jinsi ya kutekeleza mchakato wa kuongeza haraka na kwa usalama. miundombinu yote. Ili kutatua suala hili, wasimamizi wetu walilazimika kujitolea kwa ujasiri wikendi zao.

Kufanya kazi na data

Mbali na seva, tuliamua kuboresha faili ili kupunguza mzigo na hatua kubwa kwetu ilikuwa tafsiri ya faili tuli. Faili zote tuli ambazo hapo awali zilipangishwa kwenye seva zilihamishwa hadi S3 + Cloudfront. Tumekuwa tukitaka kufanya hivyo kwa muda mrefu, kwani mzigo kwenye seva ulikuwa karibu na maadili ya kikomo, na sasa fursa kubwa imetokea.

Wiki moja kabla ya Ijumaa Nyeusi, tuliongeza muda wa kuhifadhi picha hadi siku 3, ili ImageResizer ikianguka, picha zilizoakibishwa hapo awali zingeweza kupatikana kutoka kwa cdn. Pia ilipunguza mzigo kwenye seva zetu, kwa kuwa picha inahifadhiwa kwa muda mrefu, mara chache tunahitaji kutumia rasilimali kurekebisha ukubwa.

Na mwisho lakini sio uchache: siku 5 kabla ya Ijumaa Nyeusi, kusitishwa kulitangazwa juu ya kupelekwa kwa utendaji wowote mpya, na pia juu ya kazi yoyote na miundombinu - umakini wote unalenga kukabiliana na mizigo iliyoongezeka.

Mipango ya kukabiliana na hali ngumu

Haijalishi jinsi maandalizi ni ya hali ya juu, fakaps zinawezekana kila wakati. Na tumetengeneza mipango 3 ya majibu kwa hali zinazowezekana:

  • kupunguza mzigo,
  • kuzima huduma fulani,
  • kuzima kabisa kwa huduma.

Mpango A: Punguza mzigo. Ingewashwa ikiwa, kwa sababu ya kuongezeka kwa upakiaji, seva zetu zilizidi muda unaokubalika wa majibu. Katika kesi hii, tumeandaa njia za kupunguza polepole mzigo kwa kubadili sehemu ya trafiki kwa seva za Amazon, ambazo zinaweza kujibu maombi yote na "200 OK" na kutoa jibu tupu. Tulielewa kuwa hii ilikuwa uharibifu wa ubora wa huduma, lakini chaguo kati ya ukweli kwamba huduma haifanyi kazi kabisa au haionyeshi mapendekezo kwa takriban 10% ya trafiki ni dhahiri.

Mpango B: Zima huduma. Ilimaanisha uharibifu wa sehemu ya huduma. Kwa mfano, kupunguza kasi ya kuhesabu mapendekezo ya kibinafsi ili kupakua baadhi ya hifadhidata na njia za mawasiliano. Katika hali ya kawaida, mapendekezo yanahesabiwa kwa wakati halisi, na kuunda toleo tofauti la duka la mtandaoni kwa kila mgeni, lakini chini ya hali ya kuongezeka kwa mzigo, kupunguza kasi inaruhusu huduma nyingine za msingi kuendelea kufanya kazi.

Mpango C: katika kesi ya Armageddon. Iwapo hitilafu kamili ya mfumo itatokea, tumeandaa mpango ambao utaturuhusu kukatwa kwa usalama kutoka kwa wateja wetu. Wanunuzi wa duka wataacha tu kuona mapendekezo; utendaji wa duka la mtandaoni hautateseka kwa njia yoyote. Ili kufanya hivyo, tutalazimika kuweka upya faili yetu ya ujumuishaji ili watumiaji wapya waache kuingiliana na huduma. Hiyo ni, tutazima nambari yetu kuu ya ufuatiliaji, huduma itaacha kukusanya data na kukokotoa mapendekezo, na mtumiaji angeona tu ukurasa bila vizuizi vya mapendekezo. Kwa wale wote ambao hapo awali wamepokea faili ya ujumuishaji, tumetoa chaguo la kubadilisha rekodi ya DNS hadi Amazon na 200 OK stub.

Matokeo ya

Tulishughulikia mzigo mzima hata bila hitaji la kutumia mashine za ziada za ujenzi. Na kutokana na maandalizi ya mapema, hatukuhitaji mipango yoyote ya majibu iliyoandaliwa. Lakini kazi yote iliyofanywa ni uzoefu muhimu sana ambao utatusaidia kukabiliana na msongamano mkubwa wa trafiki usiotarajiwa na mkubwa.
Kama mwaka wa 2017, mzigo kwenye huduma uliongezeka kwa 40%, na idadi ya watumiaji katika maduka ya mtandaoni iliongezeka kwa 60% kwenye Ijumaa Nyeusi. Shida na makosa yote yalitokea wakati wa maandalizi, ambayo yalituokoa sisi na wateja wetu kutokana na hali zisizotarajiwa.

Je, unakabiliana vipi na Black Friday? Je, unajiandaaje kwa mizigo muhimu?

Chanzo: mapenzi.com

Kuongeza maoni