Çıkarılan Dersler
36 mühendislik olay hikâyesi ve çıkarılan dersler.
Mühendislerimizden ve sektörden derlenen bu 36 hikâye Redis çöküşlerini, pişman olunan mikroservis kararlarını, bulut maliyet sürprizlerini ve Kubernetes arızalarını anlatıyor — ve her birinin öğrettiklerini.
Aşırı Yüklenen Redis Cache'i Veritabanını Öldürdü
Bir trafik sıçraması Redis'i %100 CPU'ya itti, istemciler timeout'ları cache miss saydı ve oluşan izdiham veritabanımızı 30 saniyede öldürdü.
Oku → Önbellekleme #2Redis noeviction: Yazmalar Durduğunda
noeviction'lı Redis maxmemory'de çökmez — yazmaları reddeder. Bizimki, cache ve oturumlar aynı instance'ı paylaştığı için oturumları ve ödemeleri düşürdü.
Oku → Önbellekleme #3Bayat Cache Verisi Felaketi
Bir promosyon veritabanında bitti ama cache'te dört saat daha yaşadı. Eski fiyattan 327 sipariş ve yaklaşık $49K hediye edildi. Yine cache invalidation.
Oku → Önbellekleme #4Cache Invalidation: İki Zor Ders
İki üretim cache olayı — bir kullanıcının verisini herkese sunan bir cache anahtarı ve kimsenin izleyemediği bir invalidation fan-out'u. Neleri değiştirdik.
Oku → Önbellekleme #5Çok Katmanlı Cache Arızası
L1, L2 ve L3 cache ekledik. Artık verinin yanlış olabileceği 1 yerine 3 yerimiz var.
Oku → Önbellekleme #6Rate Limiter Redis Çökmesi
Rate limiter'ımız durumunu Redis'te tutuyordu. Redis düşünce fail-open'a geçti ve o ana kadar elediği trafik doğrudan API'ye aktı.
Oku → Önbellekleme #7Oturum Deposunun Redis'e Taşınması
Yatay ölçekleme için oturumları Redis'e taşıdık; varsayılanın bellek-içi olduğunu unuttuk. Tek bir restart 50.000 kullanıcının oturumunu kapattı. Gerçek çözüm.
Oku → Bulut #8Spot Instance Black Friday Felaketi
Maliyeti düşürmek için %100 spot çalıştık. Black Friday'de AWS 50 instance'ı aynı anda geri aldı ve AZ'mizde boş kapasite yoktu. Spot ekonomisi, dürüstçe.
Oku → Bulut #9$50.000'lık CloudWatch Loglama Faturası
Her şeyi loglama alışkanlığı ve unutulmuş tek bir debug satırı nasıl $50.000'lık bir CloudWatch ayı üretti — tutan hesap ve faturayı $3.200'e indiren çözümler.
Oku → Bulut #10Kimsenin Kullanmadığı Multi-Region Replikasyon
Üç bölgeli veritabanı replikasyonu sıfır failover testiyle ayda $8.000 tuttu. Nasıl $1.200'e indirip sessiz riski test edilmiş 4 saatlik RTO ile takas ettik.
Oku → Bulut #11Staging Üretimden Daha Pahalı
Staging ortamımız üretimden daha pahalıya mal oluyor. Geceleri ve hafta sonları kimse kullanmıyor ama 7/24 ödüyoruz.
Oku → Bulut #12VPC Egress Ücretleri Sürprizi
AWS faturamız neden bu kadar yüksek? Neredeyse hiç compute kullanmıyoruz. Cevap: NAT Gateway veri işleme ücretleri.
Oku → Kubernetes #13Veritabanını Çökerten Autoscaling
Kubernetes HPA pod'ları 5'ten 50'ye çıkarıp PostgreSQL'i max_connections üstünde restart fırtınasına soktu. Çözüm: PgBouncer pool modları ve HPA hız limitleri.
Oku → Kubernetes #14Yalan Söyleyen Health Check'ler
Pod'lar trafik sunamazken sağlıklı görünüyordu — sonra bağımlılık kontrol eden liveness probe restart fırtınası yarattı. Liveness ve readiness, doğru haliyle.
Oku → Kubernetes #15ConfigMap Yazım Hatası Kesintisi
Kubernetes ConfigMap'inde yanlış yazılmış tek bir anahtar üretimi iki saat düşürdü. Neden hiçbir şey doğrulamadı ve açılışta nasıl hızlı başarısız olunur.
Oku → Kubernetes #1647 CVE'li Docker İmajı
Güvenlik denetimi, 18 ay önce build edilmiş üretim imajında 47 bilinen CVE buldu. Tarama, sürüm sabitleme ve düzenli rebuild'ler imajları nasıl temiz tutar.
Oku → Kubernetes #17Aslında Olmayan Yüksek Erişilebilirlik
Üç node'da üç replica yüksek erişilebilir görünüyordu — ta ki her node'un us-east-1a'da olduğunu fark edene kadar. Zone spread kısıtları, doğru haliyle.
Oku → Kubernetes #18AZ'ler Arası Trafik Fatura Şoku
Üç AZ'ye yayılmış geveze mikroservisler AZ'ler arası veri transferine sessizce ayda ~$8K ekledi. Hesabı ve topology-aware routing'in bunu %60 nasıl düşürdüğü.
Oku → Kubernetes #19Pod Eviction Kaskadı
Bir node disk eviction eşiğini aştı, tüm pod'ları tahliye etti, sonra hepsini geri aldı. Eviction döngüsü nasıl işler ve onu kıran limitler hangileri.
Oku → Kubernetes #20Ingress Controller: Tek Hata Noktası
Her biri üç replikalı yirmi servis, hepsi tek bir ingress-nginx pod'unun arkasında. Tek bir OOMKill tüm servisleri devre dışı bıraktı. Çözüm dört satır Helm.
Oku → Mikroservisler #21Yanlış Nedenlerle Mikroservis
Günlük 50 kullanıcı ve dört kişilik ekip için on iki deployable. Gerçek maliyetler — bus factor, kalıcı nöbet, aylık $3K altyapı — ve bunun yerine ne kurmalı.
Oku → Mikroservisler #22Mikroservis Konsolidasyonu Ters Gidince
10 mikroservisi 3'e birleştirmek altı hafta değil altı ay sürdü. Gizli asenkron bağımlılıklar, mükerrer veri sahipliği ve işe yarayan ters strangler.
Oku → Mikroservisler #23Veritabanı Hariç Her Şeyi Ölçeklemek
20 servisimizi harika ölçekledik. Hepsi max_connections=100 olan aynı PostgreSQL instance'ına vuruyordu.
Oku → Mikroservisler #24Kubernetes'e 20.000 İş Yükü: Post-Mortem
20.000 mikroservis diye sunulan filo aslında 20.000 instance'daki 900 servisti. Kubernetes'e lift-and-shift neden başarısız oldu ve bunun yerine ne işe yarar.
Oku → Mikroservisler #25Monoliti Çok Hızlı Bölmek
Monolitimizi 3 ayda mikroservislere böldük. Sonra yanlış çizdiğimiz sınırları düzeltmek için 2 yıl harcadık.
Oku → Mikroservisler #26Kısmi Arıza Cehennemi
Sekiz servisten birinin yarı yarıya arızalanması tüm ürünü kullanılamaz yaptı. Kısmi arıza neden tam kesintiden kötüdür ve bunu çözen desenler.
Oku → Mikroservisler #271K'dan 10K RPS'e Karmaşıklık Patlaması
Saniyede 1K'dan 10K isteğe ölçeklenmek bağlantı havuzlarımızı, timeout bütçelerimizi ve log faturamızı kırdı. Ne bozuldu, sinyaller ve çözümler.
Oku → Mikroservisler #28Mikroservisler Organizasyoneldi
Mikroservis mimarimiz organizasyon şemamızı birebir yansıtıyordu. Reorganizasyon gelince her şey bozuldu.
Oku → Mimari #29Blue-Green Konfigürasyon Kayması
Yalnızca blue'da değiştirilen bir feature flag cutover'da sessizce geri döndü. Config'i Git ile paylaşımlı flag servisine bölmek drift'i nasıl durdurdu.
Oku → Mimari #30Lambda Cold Start'ları: P99'umuzu Düzeltmek
Java Lambda'mızın P99'u cold start'larda 8 saniyeydi. 2026'da gerçekten işe yarayanlar — SnapStart, küçük paketler — ve unutmamız gereken eski VPC tavsiyesi.
Oku → Mimari #31Service Mesh Ek Yükü: Neyi Yanlış Yaptık
Hop başına 15ms için Istio'yu suçladık; asıl suçlu kaynaksız sidecar'lardı. Gerçekçi mesh ek yükü rakamları, ambient ve eBPF seçenekleri, mesh ne zaman değer.
Oku → Mimari #32Serverless Lock-In Gerçeği
AWS serverless'a tamamen yatırım yaptık. Şimdi GCP'ye geçiş 18 ay sürer. Bu gerçekten bir sorun mu?
Oku → Mimari #33Blue-Green Veritabanı Kâbusu
Yıkıcı bir şema migrasyonu olayın ortasında rollback'i imkânsız kıldı. Üç release'e yayılan expand/contract örneği blue-green'i geri alınabilir tutar.
Oku → Mimari #34Gecikme Ekleyen Cache
İstekleri hızlandırmak için Redis cache ekledik. %3 hit rate ile her isteği yavaşlattı. Her ekibin önce yapması gereken cache-fayda hesabı.
Oku → Mimari #35CRUD için Event Sourcing
500 kullanıcılı bir CRUD uygulaması için event sourcing kurduk: dört ay altyapı, iki hafta özellik. Desen maliyetini ne zaman hak eder — ne zaman etmez.
Oku → Mimari #36Yatay Ölçekleme Darboğazı
50 instance'a ölçeklendik ve darboğaz yalnızca yer değiştirdi: uygulama, sonra veritabanı, load balancer, kuyruk. İşe yarayan uçtan uca kapasite planlaması.
Oku →