Her türlü geçici e-posta.Tek platform.

12/05/2024

Post Mortem: Black Friday’de Geçici Mail Kaosu - Keşke Daha Önce Bilseydik

Geçici Mail Kaosu Black Friday: Bilmeniz Gerekenler

Black Friday, her yıl e-posta kutularının yandığı dönem olarak bilinir. Ancak Müllmail ekibi olarak bu yıl yaşadığımız Black Friday, bizler için adeta bir stres testi oldu. Peki ne yaşandı? Sistem neden çöktü? Krizi nasıl yönettik? Bu post mortem yazıda tüm detayları paylaşıyoruz.

Black Friday ve Geçici Mail Tufanı

Black Friday döneminde sistemin yoğunluk yaşayacağını biliyorduk, ama bu yıl olanlar tüm tahminlerimizi aştı. Örnek mi? Büyük bir indirim mağazası sadece 5 dakika içinde 12.000 e-posta gönderdi - adeta “Lidl” derecede hazırlıksız yakalandık. O anki sistemimiz bu kadar yüksek hacme hazır değildi ve pes etti.

Panik, Hata ve Arayış: Yoğun Bir Kriz Süreci

Sorun iki yönlüydü: Hem sebebi tespit etmemiz gerekiyordu - sadece yüksek trafik mi yoksa hedefli saldırılar mı? - hem de sistemi bir an önce ayağa kaldırmalıydık. Bu süreçte, en küçük darboğazların bile sistem genelinde büyük sorunlara yol açabileceğini acı bir şekilde öğrendik.

Çözümlerimiz: Deneme, Panik! & Hata

Sorunları çözmek ve gelecekte benzer yüklerde çöküşü önlemek için birçok adım attık. İşte öne çıkan önlemler:

1. Veritabanı yapısını sadeleştirme

İlk adım olarak veritabanı yapımızı basitleştirdik ve CPU üzerindeki yükü azaltmaya çalıştık. Ufak bir iyileşme sağlansa da, gerçek darboğazın başka yerde olduğunu gösterdi.

2. Mail sunucusunun kaynaklarını artırma

Mail sunucusuna ek kaynak verdik - 8 çekirdekten 16’ya çıktık. Ama bu da yeterli olmadı.

3. E-posta işleme sürecini hafifletme

E-posta alma ve işleme süreçlerini geçici olarak sadeleştirdik. Ancak gelen e-posta sayısı çok yüksek olduğunda, bu da yeterli olmadı. Şaşırmadık.

4. Sunucu yükseltme

Son olarak bir gece operasyonuyla tam donanımlı bir göç yaptık - 32 çekirdekli sunucudan 96 çekirdekli sunucuya geçtik. Fakat bu hamle de yalnızca çözümün bir parçasıydı.

Asıl Çözüm: Akıllı Rate Limiting

Gerçek çözüm, gelen e-postalar için mantıklı bir rate limiting (hız sınırı) getirmek oldu. Bu, sistemimize gelen her e-postayı kontrollü şekilde işleyebilmesi için gereken “nefes alma” süresini sağladı. O günden beri sistemimiz stabil çalışıyor.

Tüm Kullanıcılara Teşekkür

Bu süreçte bize sabır ve güven gösteren tüm Müllmail kullanıcılarına içten teşekkür ediyoruz. Yaşananlardan çok şey öğrendik ve sistemimizi daha sağlam hale getirmek için çalışmaya devam ediyoruz. Eğer hâlâ teslimat sorunları yaşarsan, her zaman kontakt@team.muellmail.com adresinden bize ulaşabilirsin.

Ne Öğrendik?

Black Friday bize şunu gösterdi: Ne kadar iyi tasarlanmış ve test edilmiş olsa da, bir sistem beklenmedik yükler altında sınırlarına ulaşabilir. Aldığımız önlemler ve ekibimizin yorulmak bilmeyen emeğiyle bu zorluğun üstesinden geldik (şöyle tahtaya da vuralım). Hedefimiz, gelecekte de geçici e-posta denince akla gelen ilk hizmet olmaya devam etmek.