Sistemdə artan yüklərə necə dözmək olar: Qara Cümə üçün genişmiqyaslı hazırlıqlardan danışırıq

Hey Habr!

2017-ci ildə, Qara Cümə zamanı yük demək olar ki, bir yarım dəfə artdı və serverlərimiz həddi aşdı. İl ərzində müştərilərin sayı əhəmiyyətli dərəcədə artdı və aydın oldu ki, diqqətli ilkin hazırlıq olmadan platforma sadəcə 2018-ci ilin yüklərinə tab gətirə bilməz.

Mümkün olan ən iddialı hədəfi qoyduq: biz istənilən, hətta ən güclü fəaliyyət artımına tam hazır olmaq istəyirdik və il ərzində əvvəlcədən yeni imkanları işə salmağa başladıq.

Texniki direktorumuz Andrey Çij (chizh_andrey) Qara Cümə 2018-ə necə hazırlaşdığımızdan, yıxılmamaq üçün hansı tədbirləri gördüyümüzdən və təbii ki, bu qədər diqqətli hazırlığın nəticələrindən bəhs edir.

Sistemdə artan yüklərə necə dözmək olar: Qara Cümə üçün genişmiqyaslı hazırlıqlardan danışırıq

Bu gün mən Qara Cümə 2018-ə hazırlıqlar haqqında danışmaq istəyirəm. Böyük satışların əksəriyyəti arxada qaldığı halda niyə indi? Biz irimiqyaslı tədbirlərdən təxminən bir il əvvəl hazırlaşmağa başladıq və sınaq və səhv vasitəsilə optimal həll yolunu tapdıq. İsti mövsümlərə əvvəlcədən diqqət yetirməyi və ən uyğun olmayan anda ortaya çıxa biləcək fırıldaqların qarşısını almağı tövsiyə edirik.
Material bu cür ehtiyatlardan maksimum mənfəəti sıxmaq istəyən hər kəs üçün faydalı olacaq, çünki Məsələnin texniki tərəfi burada marketinq tərəfindən geri qalmır.

Böyük satışlarda trafikin xüsusiyyətləri

Məşhur inancın əksinə olaraq, Qara Cümə ildə bir gün deyil, demək olar ki, bütün həftədir: ilk endirim təklifləri satışdan 7-8 gün əvvəl gəlir. Veb sayt trafiki həftə ərzində rəvan böyüməyə başlayır, cümə günü pik nöqtəsinə çatır və şənbə günü mağazanın adi səviyyələrinə olduqca kəskin şəkildə enir.

Sistemdə artan yüklərə necə dözmək olar: Qara Cümə üçün genişmiqyaslı hazırlıqlardan danışırıq

Bunu nəzərə almaq vacibdir: onlayn mağazalar sistemdəki istənilən "yavaşlamalara" xüsusilə həssas olurlar. Bundan əlavə, e-poçt bülleteni xəttimiz də təqdimatların sayında əhəmiyyətli artım yaşadı.

Qara Cümə gününü qəzasız keçmək bizim üçün strateji baxımdan vacibdir, çünki... Veb saytların və mağaza xəbər bülletenlərinin ən vacib funksionallığı platformanın işindən asılıdır, yəni:

  • Məhsulu izləmək və tövsiyələr vermək,
  • Əlaqədar materialların buraxılması (məsələn, oxlar, loqolar, nişanlar və digər vizual elementlər kimi tövsiyə bloklarının dizaynının şəkilləri),
  • Tələb olunan ölçüdə məhsul şəkillərinin təqdim edilməsi (bu məqsədlər üçün bizdə “ImageResizer” var - mağaza serverindən şəkli yükləyən, onu lazımi ölçüyə qədər sıxan və serverləri keşləmə vasitəsilə hər bir məhsul üçün lazımi ölçüdə şəkillər istehsal edən alt sistem. hər tövsiyə bloku).

Əslində, 2019-cu ilin Qara Cümə günü ərzində xidmətin yükü 40% artdı, yəni. Retail Rocket sisteminin onlayn mağaza saytlarında izlədiyi və emal etdiyi hadisələrin sayı saniyədə 5-dən 8 min sorğuya yüksəldi. Daha ciddi yüklərə hazırlaşdığımız üçün belə bir dalğalanmadan asanlıqla xilas olduq.

Sistemdə artan yüklərə necə dözmək olar: Qara Cümə üçün genişmiqyaslı hazırlıqlardan danışırıq

Ümumi hazırlıq

Qara Cümə bütün pərakəndə satış və xüsusilə elektron ticarət üçün məşğul vaxtdır. Hazırda istifadəçilərin sayı və onların fəaliyyəti əhəmiyyətli dərəcədə artır, ona görə də biz həmişə olduğu kimi bu gərgin vaxta hərtərəfli hazırlaşırıq. Gəlin bura əlavə edək ki, təkcə Rusiyada deyil, həyəcanın daha yüksək olduğu Avropada da bağlı bir çox onlayn mağazamız var və biz Braziliya seriallarından daha pis ehtiras səviyyəsinə çatırıq. Artan yüklərə tam hazır olmaq üçün nə etmək lazımdır?

Serverlərlə işləmək

Əvvəlcə server gücünü artırmaq üçün dəqiq nəyə ehtiyacımız olduğunu tapmaq lazım idi. Artıq avqust ayında biz Qara Cümə üçün xüsusi olaraq yeni serverlər sifariş etməyə başladıq - ümumilikdə 10 əlavə maşın əlavə etdik. Noyabr ayına qədər onlar tam döyüşdə idilər.

Eyni zamanda, bəzi qurma maşınları Tətbiq serverləri kimi istifadə üçün yenidən quraşdırılmışdır. Biz dərhal onları müxtəlif funksiyalardan istifadə etməyə hazırladıq: həm tövsiyələr vermək, həm də ImageResizer xidməti üçün, belə ki, yükün növündən asılı olaraq, onların hər biri bu rollardan biri üçün istifadə olunsun. Normal rejimdə Tətbiq və ImageResizer serverləri aydın şəkildə müəyyən edilmiş funksiyalara malikdir: birinci buraxılış tövsiyələri, ikincisi onlayn alış-veriş saytlarında məktublar üçün şəkillər və tövsiyə blokları təqdim edir. Qara Cümə gününə hazırlıq zamanı yükləmə növündən asılı olaraq aralarındakı trafiki tarazlaşdırmaq üçün bütün ikili təyinatlı serverlərin yaradılması qərara alındı.

Sonra Kafka (Apache Kafka) üçün iki böyük server əlavə etdik və 5 güclü maşından ibarət klaster əldə etdik. Təəssüf ki, hər şey istədiyimiz qədər rəvan getmədi: məlumatların sinxronizasiyası zamanı iki yeni maşın şəbəkə kanalının bütün genişliyini tutdu və biz təcili olaraq əlavə etmə prosesini tez və təhlükəsiz şəkildə necə həyata keçirəcəyimizi anlamalı olduq. bütün infrastruktur. Bu problemi həll etmək üçün idarəçilərimiz həftə sonlarını mərdliklə qurban verməli oldular.

Məlumatlarla işləmək

Serverlərə əlavə olaraq, yükü yüngülləşdirmək üçün faylları optimallaşdırmaq qərarına gəldik və bizim üçün böyük bir addım statik faylların tərcüməsi oldu. Əvvəllər serverlərdə yerləşdirilən bütün statik fayllar S3 + Cloudfront-a köçürüldü. Biz bunu çoxdan etmək istəyirdik, çünki serverdəki yük limit dəyərlərə yaxın idi və indi əla fürsət yaranıb.

Qara Cümə günündən bir həftə əvvəl biz təsvirin keşləmə müddətini 3 günə qədər artırdıq ki, ImageResizer qəzaya uğrasa, əvvəllər keşlənmiş şəkillər cdn-dən alınsın. Bu, həm də serverlərimizin yükünü azaldıb, çünki şəkil nə qədər uzun müddət saxlanılırsa, ölçüsünü dəyişməyə bir o qədər az resurslar sərf etməliyik.

Və sonuncu, lakin ən azı: Qara Cümə günündən 5 gün əvvəl hər hansı yeni funksionallığın tətbiqinə, eləcə də infrastrukturla hər hansı bir işə moratorium elan edildi - bütün diqqət artan yüklərin öhdəsindən gəlməyə yönəldilib.

Çətin vəziyyətlərə cavab vermək üçün planlar

Hazırlıq nə qədər keyfiyyətli olsa da, fakaplar həmişə mümkündür. Və biz mümkün kritik vəziyyətlər üçün 3 cavab planı hazırlamışıq:

  • yükün azaldılması,
  • bəzi xidmətləri söndürmək,
  • xidmətin tam dayandırılması.

Plan A: Yükü azaldın. Yükün artması səbəbindən serverlərimiz məqbul cavab vaxtlarından kənara çıxarsa, aktivləşdirilməli idi. Bu halda, biz trafikin bir hissəsini Amazon serverlərinə keçirməklə yükü tədricən azaltmaq üçün mexanizmlər hazırlamışıq ki, bu da sadəcə olaraq bütün sorğulara “200 OK” ilə cavab verəcək və boş cavab verəcəkdir. Bunun xidmətin keyfiyyətinin aşağı düşməsi olduğunu başa düşdük, lakin xidmətin ümumiyyətlə işləməməsi və ya trafikin təxminən 10% -i üçün tövsiyələr göstərməməsi arasında seçim göz qabağındadır.

Plan B: Xidmətləri söndürün. Xidmətin nəzərdə tutulan qismən deqradasiyası. Məsələn, bəzi verilənlər bazalarını və rabitə kanallarını boşaltmaq üçün şəxsi tövsiyələrin hesablanması sürətinin azaldılması. Normal rejimdə tövsiyələr real vaxt rejimində hesablanır, hər bir ziyarətçi üçün onlayn mağazanın fərqli versiyası yaradılır, lakin artan yük şəraitində sürətin azaldılması digər əsas xidmətlərin işini davam etdirməsinə imkan verir.

Plan C: Armageddon vəziyyətində. Tam sistem nasazlığı baş verərsə, müştərilərimizdən təhlükəsiz şəkildə ayrılmağımıza imkan verəcək bir plan hazırlamışıq. Mağaza alıcıları sadəcə tövsiyələri görməyəcək, onlayn mağazanın performansı heç bir şəkildə zərər görməyəcək. Bunu etmək üçün inteqrasiya faylımızı sıfırlamalıyıq ki, yeni istifadəçilər xidmətlə əlaqəni dayandırsınlar. Yəni, biz əsas izləmə kodumuzu söndürərdik, xidmət məlumat toplamağı və tövsiyələri hesablamağı dayandırardı və istifadəçi sadəcə tövsiyə blokları olmayan səhifəni görərdi. Əvvəllər inteqrasiya faylı almış olanların hamısı üçün DNS qeydini Amazon və 200 OK stub-a dəyişdirmək seçimini təqdim etdik.

Nəticələri

Əlavə tikinti maşınlarından istifadə etmədən belə bütün yükü idarə etdik. Və əvvəlcədən hazırlıq sayəsində hazırlanmış cavab planlarının heç birinə ehtiyacımız olmadı. Ancaq görülən bütün işlər ən gözlənilməz və böyük trafik axınının öhdəsindən gəlməyə kömək edəcək əvəzsiz təcrübədir.
2017-ci ildə olduğu kimi, xidmətin yükü 40%, Qara Cümə günü isə onlayn mağazalarda istifadəçilərin sayı 60% artıb. Bütün çətinliklər və səhvlər hazırlıq dövründə baş verdi ki, bu da bizi və müştərilərimizi gözlənilməz vəziyyətlərdən xilas etdi.

Qara Cümə ilə necə mübarizə aparırsınız? Kritik yüklərə necə hazırlaşırsınız?

Mənbə: www.habr.com

Добавить комментарий