Како издржати повећана оптерећења система: говоримо о великим припремама за Црни петак

Хеј Хабр!

У 2017, током Црног петка, оптерећење се повећало за скоро један и по пута, а наши сервери су били на свом лимиту. Током године, број клијената је значајно порастао и постало је јасно да без пажљиве прелиминарне припреме платформа једноставно неће издржати оптерећења 2018.

Поставили смо најамбициознији могући циљ: желели смо да будемо потпуно спремни за сваки, па и најснажнији налет активности и почели да покрећемо нове капацитете унапред током целе године.

Наш технички директор Андреј Чиж (цхизх_андреи) говори како смо се припремали за Црни петак 2018, које смо мере предузели да избегнемо падове и, наравно, резултате тако пажљиве припреме.

Како издржати повећана оптерећења система: говоримо о великим припремама за Црни петак

Данас желим да причам о припремама за Црни петак 2018. Зашто сада, када је већина великих распродаја иза нас? Почели смо да се припремамо око годину дана пре великих догађаја и путем покушаја и грешака пронашли смо оптимално решење. Препоручујемо вам да унапред водите рачуна о врућим сезонама и спречите преваре које се могу појавити у најнеповољнијем тренутку.
Материјал ће бити користан свима који желе да исцеде максималан профит из таквих акција, јер Техничка страна питања овде није инфериорна од маркетиншке стране.

Карактеристике саобраћаја на великим распродајама

Супротно популарном веровању, Црни петак није само један дан у години, већ скоро цела недеља: прве понуде с попустом стижу 7-8 дана пре распродаје. Промет на веб-сајту почиње несметано да расте током целе недеље, достиже врхунац у петак и нагло пада у суботу на уобичајене нивое продавнице.

Како издржати повећана оптерећења система: говоримо о великим припремама за Црни петак

Ово је важно узети у обзир: онлајн продавнице постају посебно осетљиве на било каква „успоравања“ у систему. Поред тога, наша линија за билтен путем е-поште такође је доживела значајан пораст у броју поднесака.

Стратешки нам је важно да Црни петак прођемо без налета, јер... Најважнија функционалност веб страница и билтена продавница зависи од рада платформе, а то су:

  • Праћење и издавање препорука за производе,
  • Издавање повезаних материјала (на пример, слике дизајна блокова препорука, као што су стрелице, логотипи, иконе и други визуелни елементи),
  • Обезбеђивање слика производа потребне величине (за ове сврхе имамо „ИмагеРесизер“ - подсистем који преузима слику са сервера продавнице, компресује је на потребну величину и, преко сервера за кеширање, производи слике потребне величине за сваки производ у сваки блок препорука).

У ствари, током Црног петка 2019. оптерећење сервиса је порасло за 40%, тј. број догађаја које Ретаил Роцкет систем прати и обрађује на сајтовима онлајн продавница порастао је са 5 на 8 хиљада захтева у секунди. Због тога што смо се спремали за озбиљнија оптерећења, лако смо преживели такав налет.

Како издржати повећана оптерећења система: говоримо о великим припремама за Црни петак

Општа обука

Црни петак је радно време за сву малопродају и посебно е-трговину. Број корисника и њихова активност у овом тренутку значајно расте, па смо се, као и увек, темељно припремили за ово радно време. Додајмо овде чињеницу да имамо много онлајн продавница повезаних не само у Русији, већ и у Европи, где је узбуђење много веће, а ми добијамо ниво страсти гори од бразилске серије. Шта је потребно учинити да бисте били потпуно спремни за повећана оптерећења?

Рад са серверима

Прво је било неопходно сазнати шта нам је тачно потребно да повећамо снагу сервера. Већ у августу смо почели да наручујемо нове сервере посебно за Црни петак - укупно смо додали 10 додатних машина. До новембра су били у потпуности у борби.

У исто време, неке машине за прављење су поново инсталиране да би се користиле као сервери апликација. Одмах смо их припремили да користе различите функције: и за издавање препорука и за услугу ИмагеРесизер, тако да, у зависности од врсте оптерећења, свака од њих може да се користи за једну од ових улога. У нормалном режиму, сервери Апплицатион и ИмагеРесизер имају јасно дефинисане функције: први издају препоруке, други дају слике за писма и блокове препорука на веб локацијама за куповину на мрежи. У припремама за Црни петак, одлучено је да се направе сви сервери двоструке намене како би се промет између њих балансирао у зависности од врсте преузимања.

Затим смо додали два велика сервера за Кафку (Апацхе Кафка) и добили кластер од 5 моћних машина. Нажалост, није све ишло онако глатко како бисмо желели: током процеса синхронизације података, две нове машине су заузеле читаву ширину мрежног канала и морали смо хитно да смислимо како да брзо и безбедно извршимо процес додавања за целокупна инфраструктура. Да би решили овај проблем, наши администратори су морали храбро жртвовати своје викенде.

Рад са подацима

Поред сервера, одлучили смо да оптимизујемо фајлове како бисмо олакшали оптерећење и велики корак за нас је био превод статичких фајлова. Све статичке датотеке које су претходно биле хостоване на серверима премештене су на С3 + Цлоудфронт. Одавно смо желели да то урадимо, пошто је оптерећење на серверу било близу граничних вредности, а сада се указала одлична прилика.

Недељу дана пре Црног петка, повећали смо време кеширања слика на 3 дана, тако да ако се ИмагеРесизер сруши, претходно кеширане слике би биле преузете са цдн-а. Такође је смањио оптерећење на нашим серверима, јер што се слика дуже чува, то ређе треба да трошимо ресурсе на промену величине.

И на крају, али не и најмање важно: 5 дана пре Црног петка, најављен је мораторијум на увођење било које нове функционалности, као и на било какав рад са инфраструктуром – сва пажња је усмерена на суочавање са повећаним оптерећењима.

Планови за реаговање у тешким ситуацијама

Колико год припрема била квалитетна, факапи су увек могући. И развили смо 3 плана одговора за могуће критичне ситуације:

  • смањење оптерећења,
  • онемогућавање неких услуга,
  • потпуно гашење услуге.

План А: Смањите оптерећење. Требало је да се активира ако су наши сервери, услед пораста оптерећења, превазишли прихватљиво време одговора. У овом случају, припремили смо механизме за постепено смањење оптерећења пребацивањем дела саобраћаја на Амазон сервере, који би на све захтеве једноставно одговарали са „200 ОК“ и давали празан одговор. Схватили смо да се ради о деградацији квалитета услуге, али је очигледан избор између чињенице да услуга уопште не ради или не показује препоруке за отприлике 10% саобраћаја.

План Б: Онемогућите услуге. Подразумевана делимична деградација услуге. На пример, смањење брзине израчунавања личних препорука како би се растеретиле неке базе података и комуникациони канали. У нормалном режиму, препоруке се израчунавају у реалном времену, стварајући различиту верзију онлајн продавнице за сваког посетиоца, али у условима повећаног оптерећења, смањење брзине омогућава другим основним услугама да наставе да раде.

План Ц: у случају Армагедона. Уколико дође до потпуног квара система, припремили смо план који ће нам омогућити да будемо безбедно искључени са наших корисника. Купци у продавницама ће једноставно престати да виде препоруке; Да бисмо то урадили, морали бисмо да ресетујемо нашу интеграцијску датотеку како би нови корисници престали да комуницирају са услугом. Односно, онемогућили бисмо наш главни код за праћење, сервис би престао да прикупља податке и израчунава препоруке, а корисник би једноставно видео страницу без блокова препорука. За све оне који су претходно добили интеграциони фајл, обезбедили смо опцију пребацивања ДНС записа на Амазон и 200 ОК стуб.

Резултати

Извршили смо цело оптерећење чак и без потребе за додатним машинама за изградњу. А захваљујући претходној припреми, није нам био потребан ниједан од развијених планова одговора. Али сав обављен посао је непроцењиво искуство које ће нам помоћи да се носимо са најнеочекиванијим и огромним приливом саобраћаја.
Као и 2017. године, оптерећење сервиса је порасло за 40%, а број корисника у онлајн продавницама је на Црни петак повећан за 60%. Све потешкоће и грешке настале су у припремном периоду, што је нас и наше клијенте спасило од непредвиђених ситуација.

Како се носите са Црним петком? Како се припремате за критична оптерећења?

Извор: ввв.хабр.цом

Додај коментар