Kampanya takvimleri mühendislik takviminden önce gelir: pazarlama günü söylemiştir, siz trafiğin kaç katına dayanacağını bilmek zorundasınız. Kapasite planlaması tam bu noktada devreye girer — tahminle değil, ölçümle. Büyük gün öncesi son hafta, keşif değil doğrulama haftası olmalı: zaten kurulu sistemin gerçek kapasitesini ölçmek, son dakikada yeniden mimari kurmaktan çok daha güvenli bir yol.

Önce tahmin, sonra test

Trafik tahmini iş ekibinden gelir; mühendislik işi bu tahmini ölçülebilir hale çevirmektir. Geçen kampanyanın tepe verisini, bu yıl beklenen büyüme oranını ve kampanya saatlerinde yoğunluğun ne kadar arttığını yan yana koyun. Ortaya çıkan sayı hedef yüktür — sonra bunu yük testine çevirin. Üretim ortamının küçültülmüş bir kopyasında bile en azından veritabanı sorgu planlarının aynı olduğundan emin olun.

# k6 ile tepe yük senaryosu: 20 dakikada hedef eşzamanlı kullanıcıya çık
k6 run --vus 500 --duration 20m senaryolar/kampanya.js

Testin amacı "sunucu ayakta mı" değil, hangi eşikte gecikmenin bozulduğu ve hata oranının yükseldiğidir. Bu eşiği bilmeden kapasite bilinmez.

Sıra dışı kalan yer: veritabanı ve bağlantı havuzları

Uygulama sunucusu yatay ölçeklenirken veritabanı genelde dikeyde kalır ve kampanyanın asıl boğazıdır. Bağlantı havuzu boyutu, sayfalama sorgularının planları, en pahalı on sorgunun son yürütme süreleri — bunları kampanya öncesi envara çıkarın. Yavaş sorgu günlüğünü açın, eksik indeksleri kampanya haftasında ekleyin. Aynı şekilde önbellek isabet oranını ve sıcak anahtarların boyutunu not edin; kampanya gecesi önbelleği boşaldığında veritabanına dönen yükün ne olduğunu bilmeden havuz boyutunu tahmin edemezsiniz.

-- En pahalı 5 sorgu: kampanya öncesi inceleme listesi
SELECT query, calls, mean_exec_time
FROM pg_stat_statements
ORDER BY mean_exec_time * calls DESC
LIMIT 5;

Otomatik ölçekleme ve son kontroller

Bulut ortamında otomatik ölçekleme kuralı kampanya öncesinde test edilmelidir: ölçekleme tetikleyicisinin eşik değeri, örnek açılış süresi ve soğuk başlangıç bedeli. Trafiğin en hızlı arttığı ilk on dakikada otomatik ölçekleme yetişmezse, kampanya başlangıç saatinden yarım saat önce elle ölçek artışı planlayın. Son kontrol listesi kısadır: yük testi eşikleri not edildi, veritabanı sorgu planları incelendi, önbellek stratejisi doğrulandı, alarm eşikleri kampanya trafiğine göre gevşetildi, geri alma planı yazılı.

Kapasite planlaması tek tek sunucu saymak değildir; tahmini ölçüme, ölçümü eşiklere, eşiği alarma bağlamaktır. Kampanya günü geldiğinde yapılacak en iyi iş, büyük ihtimalle hiçbir şey yapmamaktır — çünkü yapılacak her şey, yapılmış olur.

Listeyi gelecek kampanya için de taşınabilir kılan şey, prova gününde tuttuğunuz kayıttır: hedef yük, ölçülen eşik, değiştirilen eşik, geri dönüş planı. Dört satırlık bu kayıt, yıl sonra gelen "geçen sefer ne yapmıştık?" sorusunun tek cevabıdır. Kapasite bilgisi ekipte yaşar ve ekipte ayrılır; yazılı kayıt, bilginin izinli mühendisle birlikte tatile çıkmamasını sağlar. Sonraki kampanyada listeniz uzamaz, yalnızca sayıları güncellenir — planlamanın olgunlaştığının işareti budur.