Sistemdeki artan yüklere nasıl dayanılır: Kara Cuma için geniş çaplı hazırlıklardan bahsediyoruz

Ey Habr!

2017 yılında Kara Cuma sırasında yük neredeyse bir buçuk kat arttı ve sunucularımız limitlerine ulaştı. Yıl boyunca müşteri sayısı önemli ölçüde arttı ve dikkatli bir ön hazırlık yapılmazsa platformun 2018'in yüklerine dayanamayacağı ortaya çıktı.

Mümkün olan en iddialı hedefi belirledik: En güçlü faaliyet dalgalanmalarına bile tamamen hazırlıklı olmak istedik ve yıl boyunca yeni kapasiteleri önceden başlatmaya başladık.

CTO'muz Andrey Chizh (chizh_andrey) Kara Cuma 2018'e nasıl hazırlandığımızı, düşmeleri önlemek için ne gibi önlemler aldığımızı ve elbette bu kadar dikkatli hazırlığın sonuçlarını anlatıyor.

Sistemdeki artan yüklere nasıl dayanılır: Kara Cuma için geniş çaplı hazırlıklardan bahsediyoruz

Bugün Black Friday 2018 hazırlıklarından bahsetmek istiyorum. Büyük satışların çoğu arkamızdayken neden şimdi? Büyük ölçekli etkinliklerden yaklaşık bir yıl önce hazırlanmaya başladık ve deneme yanılma yoluyla en uygun çözümü bulduk. Sıcak mevsimlere önceden dikkat etmenizi ve en uygunsuz anda ortaya çıkabilecek dolandırıcılıkların önüne geçmenizi öneririz.
Materyal, bu tür hisse senetlerinden maksimum karı elde etmek isteyen herkes için faydalı olacaktır, çünkü Burada konunun teknik tarafı pazarlama yönünden daha aşağı değil.

Büyük satışlarda trafiğin özellikleri

Yaygın inanışın aksine, Kara Cuma yılda sadece bir gün değil, neredeyse tam bir haftadır: İlk indirim teklifleri indirimden 7-8 gün önce gelir. Web sitesi trafiği hafta boyunca sorunsuz bir şekilde artmaya başlıyor, Cuma günü zirveye ulaşıyor ve Cumartesi günü oldukça keskin bir şekilde mağazanın normal seviyelerine düşüyor.

Sistemdeki artan yüklere nasıl dayanılır: Kara Cuma için geniş çaplı hazırlıklardan bahsediyoruz

Şunu dikkate almak önemlidir: Çevrimiçi mağazalar sistemdeki herhangi bir "yavaşlamaya" karşı özellikle duyarlı hale gelir. Ayrıca e-posta bülten hattımızda da gönderim sayısında önemli bir artış yaşandı.

Kara Cuma'yı kaza olmadan geçirmek bizim için stratejik açıdan önemli, çünkü... Web sitelerinin ve mağaza haber bültenlerinin en önemli işlevleri platformun işleyişine bağlıdır:

  • Ürün önerilerinin takibi ve yayınlanması,
  • İlgili materyallerin yayınlanması (örneğin, oklar, logolar, simgeler ve diğer görsel öğeler gibi öneri bloklarının tasarımına ilişkin görseller),
  • Gerekli boyutta ürün görsellerinin sağlanması (bu amaçlar için, mağaza sunucusundan bir görsel indiren, onu gerekli boyuta sıkıştıran ve önbellek sunucuları aracılığıyla, içindeki her ürün için gerekli boyutta görseller üreten bir alt sistem olan “ImageResizer”a sahibiz) her öneri bloğu).

Aslında Kara Cuma 2019 sırasında hizmetin yükü %40 arttı; Retail Rocket sisteminin çevrimiçi mağaza sitelerinde takip ettiği ve işlediği olayların sayısı saniyede 5 binden 8 bine çıktı. Daha ciddi yüklere hazırlandığımız için böyle bir dalgalanmayı rahatlıkla atlattık.

Sistemdeki artan yüklere nasıl dayanılır: Kara Cuma için geniş çaplı hazırlıklardan bahsediyoruz

Genel eğitim

Kara Cuma, özellikle tüm perakende ve e-ticaret için yoğun bir zamandır. Şu anda kullanıcı sayısı ve etkinlikleri önemli ölçüde artıyor, bu nedenle her zaman olduğu gibi bu yoğun zamana iyice hazırlandık. Sadece Rusya'da değil, heyecanın çok daha yüksek olduğu Avrupa'da da bağlantılı birçok online mağazamızın olduğunu ve Brezilya serisinden daha kötü bir tutku düzeyine ulaştığımızı da buraya ekleyelim. Artan yüklere tam anlamıyla hazırlıklı olmak için ne yapılması gerekiyor?

Sunucularla çalışma

Öncelikle sunucu gücünü artırmak için tam olarak neye ihtiyacımız olduğunu bulmamız gerekiyordu. Zaten Ağustos ayında Kara Cuma için özel olarak yeni sunucular sipariş etmeye başladık - toplamda 10 ek makine ekledik. Kasım ayına gelindiğinde tamamen çatışma halindeydiler.

Aynı zamanda, bazı yapım makineleri Uygulama sunucuları olarak kullanılmak üzere yeniden kuruldu. Bunları hemen farklı işlevleri kullanmaya hazırladık: hem önerilerde bulunmak hem de ImageResizer hizmeti için, böylece yük türüne bağlı olarak her biri bu rollerden biri için kullanılabilir. Normal modda, Uygulama ve ImageResizer sunucuları açıkça tanımlanmış işlevlere sahiptir: ilki sorun tavsiyeleri, ikincisi ise çevrimiçi alışveriş web sitelerindeki mektuplar ve öneri blokları için görseller sağlar. Kara Cuma'ya hazırlık olarak, indirme türüne bağlı olarak aralarındaki trafiği dengelemek için tüm sunucuların çift amaçlı yapılmasına karar verildi.

Daha sonra Kafka için iki büyük sunucu (Apache Kafka) ekledik ve 5 güçlü makineden oluşan bir küme elde ettik. Ne yazık ki her şey istediğimiz kadar sorunsuz gitmedi: veri senkronizasyonu işlemi sırasında iki yeni makine ağ kanalının tüm genişliğini kapladı ve ekleme işlemini hızlı ve güvenli bir şekilde nasıl gerçekleştireceğimizi acilen bulmamız gerekiyordu. tüm altyapı. Bu sorunu çözmek için yöneticilerimiz hafta sonlarını cesurca feda etmek zorunda kaldılar.

Verilerle çalışma

Yükü hafifletmek için sunuculara ek olarak dosyaları da optimize etmeye karar verdik ve statik dosyaların çevrilmesi bizim için büyük bir adım oldu. Daha önce sunucularda barındırılan tüm statik dosyalar S3 + Cloudfront'a taşındı. Sunucudaki yük limit değerlere yaklaştığı için uzun zamandır bunu yapmak istiyorduk ve artık büyük bir fırsat ortaya çıktı.

Kara Cuma'dan bir hafta önce, görüntü önbelleğe alma süresini 3 güne çıkardık, böylece ImageResizer çökerse önceden önbelleğe alınmış görüntüler cdn'den alınabilir. Ayrıca, görüntü ne kadar uzun süre saklanırsa, yeniden boyutlandırma için kaynak harcamamız o kadar az olacağından, sunucularımızdaki yükü de azalttı.

Ve son fakat bir o kadar da önemli: Kara Cuma'dan 5 gün önce, herhangi bir yeni işlevin devreye alınması ve altyapı ile ilgili herhangi bir çalışma konusunda bir moratoryum duyuruldu; tüm dikkat, artan yüklerle başa çıkmaya yönelikti.

Zor durumlara yanıt verme planları

Hazırlık ne kadar kaliteli olursa olsun sahteler her zaman mümkündür. Olası kritik durumlar için de 3 müdahale planı geliştirdik:

  • yük azaltma,
  • bazı hizmetleri devre dışı bırakmak,
  • hizmetin tamamen kapatılması.

Plan A: Yükü azaltın. Yükteki artış nedeniyle sunucularımız kabul edilebilir yanıt sürelerinin ötesine geçtiğinde etkinleştirilmeliydi. Bu durumda trafiğin bir kısmını Amazon sunucularına geçirerek yükü kademeli olarak azaltacak, tüm isteklere basitçe “200 OK” ile yanıt verecek ve boş yanıt verecek mekanizmalar hazırladık. Bunun hizmet kalitesinde bir bozulma olduğunu anladık ancak hizmetin hiç çalışmaması veya trafiğin yaklaşık %10'u için öneri göstermemesi arasındaki seçim ortadadır.

B Planı: Hizmetleri devre dışı bırakın. Hizmetin kısmen bozulduğu ima edildi. Örneğin, bazı veritabanlarının ve iletişim kanallarının yükünü hafifletmek için kişisel önerilerin hesaplanmasının hızının azaltılması. Normal modda, öneriler gerçek zamanlı olarak hesaplanır ve her ziyaretçi için çevrimiçi mağazanın farklı bir sürümü oluşturulur, ancak artan yük koşullarında hızın azaltılması, diğer temel hizmetlerin çalışmaya devam etmesine olanak tanır.

C Planı: Kıyamet durumunda. Sistemin tamamının arızalanması durumunda müşterilerimizle güvenli bir şekilde bağlantımızın kesilmesini sağlayacak bir plan hazırladık. Mağaza alıcıları artık önerileri görmeyecek; çevrimiçi mağazanın performansı hiçbir şekilde olumsuz etkilenmeyecek. Bunu yapmak için, yeni kullanıcıların hizmetle etkileşimini durduracak şekilde entegrasyon dosyamızı sıfırlamamız gerekir. Yani, ana izleme kodumuzu devre dışı bırakırdık, hizmet veri toplamayı ve önerileri hesaplamayı durdururdu ve kullanıcı, öneri blokları olmayan bir sayfayı görürdü. Daha önce entegrasyon dosyası almış olan herkese, DNS kaydını Amazon'a ve 200 OK saplamasına geçirme seçeneğini sunduk.

sonuçlar

Ek inşaat makineleri kullanmaya gerek kalmadan tüm yükü hallettik. Ve ön hazırlık sayesinde geliştirilen müdahale planlarının hiçbirine ihtiyacımız olmadı. Ancak yapılan tüm çalışmalar, en beklenmedik ve büyük trafik akışlarıyla başa çıkmamıza yardımcı olacak paha biçilmez bir deneyimdir.
2017 yılında olduğu gibi Black Friday'de hizmetin yükü %40 artarken, online mağazalardaki kullanıcı sayısı da %60 arttı. Hazırlık döneminde yaşanan tüm zorluklar ve hatalar bizi ve müşterilerimizi öngörülemeyen durumlardan kurtardı.

Kara Cuma ile nasıl başa çıkıyorsunuz? Kritik yüklere nasıl hazırlanıyorsunuz?

Kaynak: habr.com

Yorum ekle