Системада көбөйгөн жүктөргө кантип туруштук берүү керек: биз Кара Жумага масштабдуу даярдыктар жөнүндө сүйлөшөбүз

Эй Хабр!

2017-жылы Black Friday учурунда жүк дээрлик бир жарым эсеге көбөйүп, серверлерибиз чегинде болчу. Жыл ичинде, кардарлардын саны кыйла өстү, жана кылдат алдын ала даярдоо жок, платформа жөн эле 2018-жылдын жүк туруштук бере албайт экени айкын болду.

Биз алдыбызга мүмкүн болушунча чоң максат койдук: биз ар кандай, алтургай эң күчтүү активдүүлүккө толук даяр болууну каалап, жыл бою жаңы кубаттуулуктарды алдын ала ишке киргизе баштадык.

Биздин техникалык директор Андрей Чиж (chizh_andrey) Кара Жума 2018ге кантип даярданганыбызды, жыгылып калбоо үчүн кандай чараларды көргөнүбүздү жана, албетте, мындай кылдат даярдыктын жыйынтыгын айтат.

Системада көбөйгөн жүктөргө кантип туруштук берүү керек: биз Кара Жумага масштабдуу даярдыктар жөнүндө сүйлөшөбүз

Бүгүн мен Black Friday 2018-ге даярдыктар жөнүндө айткым келет. Эмне үчүн азыр, негизги сатуулардын көбү артта калганда? Биз масштабдуу иш-чараларга бир жылдай калганда даярдана баштадык жана сыноо жана ката аркылуу оптималдуу чечимди таптык. Сизге ысык мезгилдерге алдын ала кам көрүүнү жана эң ылайыксыз учурда пайда боло турган шылуундардын алдын алууну сунуштайбыз.
материалдык, анткени, мындай запастарды максималдуу пайда сыгып каалаган ар бир адам үчүн пайдалуу болот Бул жерде маселенин техникалык жагы маркетинг жагынан кем калышпайт.

Чоң сатуулардагы трафиктин өзгөчөлүктөрү

Кеңири таралган ишенимге каршы, Black Friday жылына бир эле күн эмес, дээрлик бүтүндөй жума: биринчи арзандатуу сунуштары сатуудан 7-8 күн мурун келет. Вебсайт трафиги жума бою жай өсө баштайт, жума күнү туу чокусуна жетет жана ишембиде дүкөндүн кадимки деңгээлине чейин кескин төмөндөйт.

Системада көбөйгөн жүктөргө кантип туруштук берүү керек: биз Кара Жумага масштабдуу даярдыктар жөнүндө сүйлөшөбүз

Муну эске алуу маанилүү: онлайн дүкөндөр тутумдагы ар кандай "басаңдатууларга" өзгөчө сезгич болуп калышат. Мындан тышкары, биздин электрондук каттын линиясы да тапшыруулардын санынын олуттуу өсүшүнө дуушар болду.

Кара жуманы кыйроолорсуз өткөрүү биз үчүн стратегиялык жактан маанилүү, анткени... Вебсайттардын жана дүкөндөрдүн маалымат бюллетендеринин эң маанилүү функционалдуулугу платформанын иштешинен көз каранды, атап айтканда:

  • Продукт сунуштарын көзөмөлдөө жана берүү,
  • Тиешелүү материалдарды чыгаруу (мисалы, жебелер, логотиптер, иконалар жана башка визуалдык элементтер сыяктуу сунуш блоктордун дизайнынын сүрөттөрү),
  • Керектүү өлчөмдөгү продукттун сүрөттөрүн берүү (бул максаттар үчүн бизде "ImageResizer" бар - дүкөндүн серверинен сүрөттү жүктөөчү, аны керектүү өлчөмдө кысуу жана кэш серверлери аркылуу ар бир продукт үчүн керектүү өлчөмдөгү сүрөттөрдү чыгаруучу подсистема. ар бир сунуш блогу).

Чынында, Кара Жума 2019 учурунда кызматтын жүктөмү 40% га өскөн, б.а. Retail Rocket системасы онлайн дүкөн сайттарында көзөмөлдөгөн жана иштеткен окуялардын саны секундасына 5 миңден 8 миңге чейин көбөйдү. Биз олуттуураак жүктөөгө даярданып жаткандыктан, мындай толкундан оңой эле аман калдык.

Системада көбөйгөн жүктөргө кантип туруштук берүү керек: биз Кара Жумага масштабдуу даярдыктар жөнүндө сүйлөшөбүз

Жалпы машыгуу

Кара жума - бардык чекене соода жана электрондук коммерция үчүн бош убакыт. Учурда колдонуучулардын саны жана алардын активдүүлүгү кыйла өсүп жатат, ошондуктан биз, адаттагыдай эле, бул бош убакытка кылдат даярдандык. Бул жерге Россияда гана эмес, толкундануу бир топ жогору Европада да көптөгөн интернет-дүкөндөрүбүз бар экенин жана бразилиялык сериалдан да начар кумарлануу деңгээлине ээ экенибизди кошумчалайлы. Көбөйгөн жүктөргө толук даяр болуу үчүн эмне кылуу керек?

Серверлер менен иштөө

Биринчиден, сервердин күчүн көбөйтүү үчүн бизге эмне керек экенин билүү керек болчу. Август айында биз атайын Black Friday үчүн жаңы серверлерге заказ бере баштадык - бардыгы болуп 10 кошумча машина коштук. Ноябрга чейин алар толугу менен салгылашууда.

Ошол эле учурда, кээ бир куруу машиналары Колдонмо серверлери катары колдонуу үчүн кайра орнотулган. Биз аларды дароо эле ар кандай функцияларды колдонууга даярдадык: сунуштарды берүү үчүн дагы, ImageResizer кызматы үчүн дагы, жүктүн түрүнө жараша алардын ар бири ушул ролдордун бири үчүн колдонулушу мүмкүн. Кадимки режимде Тиркеме жана ImageResizer серверлери так аныкталган функцияларга ээ: мурунку чыгарылыш боюнча сунуштар, экинчиси каттар үчүн сүрөттөрдү жана онлайн соода веб-сайттарында сунуш блокторун берет. Кара жумага даярдануу учурунда, жүктөөнүн түрүнө жараша алардын ортосундагы трафикти тең салмактоо үчүн бардык кош максаттуу серверлерди жасоо чечими кабыл алынды.

Андан кийин биз Кафка (Apache Kafka) үчүн эки чоң серверди кошуп, 5 күчтүү машинанын кластерин алдык. Тилекке каршы, баары биз каалагандай жылмакай болгон жок: маалыматтарды синхрондоштуруу процессинде эки жаңы машина тармак каналынын бардык туурасын ээледи, жана биз тез арада кошуу процессин кантип тез жана коопсуз жүргүзүү керектигин аныкташыбыз керек болчу. бүткүл инфраструктура. Бул маселени чечүү үчүн биздин администраторлор дем алыш күндөрүн курмандыкка чалууга туура келди.

Берилиштер менен иштөө

Серверлерден тышкары, жүктү жеңилдетүү үчүн файлдарды оптималдаштырууну чечтик жана биз үчүн статикалык файлдарды которуу чоң кадам болду. Мурда серверлерде жайгаштырылган бардык статикалык файлдар S3 + Cloudfrontга жылдырылды. Биз муну көптөн бери каалап жүргөнбүз, анткени сервердеги жүк чектүү маанилерге жакын болгондуктан, азыр чоң мүмкүнчүлүк пайда болду.

Кара жумага бир жума калганда биз сүрөттү кэштөө убактысын 3 күнгө чейин көбөйттүк, андыктан ImageResizer бузулуп калса, мурда кэштелген сүрөттөр cdn'ден чыгарылат. Бул ошондой эле серверлерибиздин жүгүн азайтты, анткени сүрөт канчалык узак сакталса, көлөмүн өзгөртүүгө ресурстарды ошончолук аз сарпташы керек.

Акыркысы, бирок эң аз эмес: Кара Жумага 5 күн калганда, ар кандай жаңы функцияларды жайылтууга, ошондой эле инфраструктура менен иштөөгө мораторий жарыяланган - бардык көңүл көбөйгөн жүктөрдү жеңүүгө багытталган.

Оор кырдаалдарга жооп берүү пландары

Канчалык сапаттуу даярдалбасын, факаптар дайыма болот. Жана биз мүмкүн болгон оор кырдаалдар үчүн 3 жооп планын иштеп чыктык:

  • жүктү азайтуу,
  • кээ бир кызматтарды өчүрүү,
  • кызматтын толук өчүрүлүшү.

План А: жүктү азайтуу. Эгер жүктөмдүн көбөйүшүнө байланыштуу серверлерибиз алгылыктуу жооп берүү мөөнөттөрүнөн ашып кетсе, иштетилиши керек болчу. Бул учурда, биз трафиктин бир бөлүгүн Amazon серверлерине которуу аркылуу жүктү акырындык менен азайтуу механизмдерин даярдап койдук, алар жөн гана бардык суроо-талаптарга "200 OK" менен жооп берип, бош жооп берет. Биз бул кызматтын сапатынын начарлашы экенин түшүндүк, бирок кызмат такыр иштебей турганы же трафиктин болжол менен 10% үчүн сунуштарды көрсөтпөгөнүнүн ортосундагы тандоо ачык эле көрүнүп турат.

План B: Кызматтарды өчүрүү. Кызматтын жарым-жартылай начарлашы. Мисалы, кээ бир маалымат базаларын жана байланыш каналдарын түшүрүү үчүн жеке сунуштарды эсептөө ылдамдыгын азайтуу. Кадимки режимде сунуштар реалдуу убакыт режиминде эсептелип, ар бир келүүчү үчүн онлайн дүкөндүн башка версиясын түзүшөт, бирок жүктөмдүн жогорулашынын шарттарында ылдамдыкты азайтуу башка негизги кызматтардын ишин улантууга мүмкүндүк берет.

План С: Армагедондо. Эгер тутум толук иштебей калса, биз кардарларыбыздан коопсуз түрдө ажыратууга мүмкүндүк берүүчү планды даярдадык. Дүкөн сатып алуучулар жөн гана сунуштарды көрүүнү токтотот, онлайн дүкөндүн иштеши эч кандай зыян тартпайт. Бул үчүн, жаңы колдонуучулар кызмат менен иштешүүнү токтотушу үчүн интеграциялоо файлыбызды баштапкы абалга келтиришибиз керек. Башкача айтканда, биз негизги көз салуу кодубузду өчүрүп, кызмат маалыматтарды чогултууну жана сунуштарды эсептөөнү токтотуп, колдонуучу жөн гана сунуш блоктору жок баракты көрөт. Мурда интеграция файлын алгандардын бардыгы үчүн биз DNS жазуусун Amazon жана 200 OK stubка которуу мүмкүнчүлүгүн бердик.

натыйжалары

Кошумча куруучу машиналарды колдонбостон да бүт жүктү көтөрдүк. Ал эми алдын ала даярдыктын аркасында бизге иштелип чыккан жооп берүү пландарынын бирине да муктаж болгон жок. Бирок аткарылган иштердин баары - бул бизге эң күтүлбөгөн жана чоң трафик агымы менен күрөшүүгө жардам бере турган баа жеткис тажрыйба.
2017-жылдагыдай эле, кызматтын жүктөмү 40%, ал эми интернет-дүкөндөрдөгү колдонуучулардын саны Black Friday күнү 60% өскөн. Бардык кыйынчылыктар жана каталар даярдык мезгилинде болду, бул бизди жана биздин кардарларды күтүүсүз кырдаалдардан сактап калды.

Black Friday менен кантип күрөшүп жатасыз? Критикалык жүктөргө кантип даярданасыз?

Source: www.habr.com

Комментарий кошуу