Serverless Soğuk Başlatma: Neden Çözülmüyor
Serverless'ın büyük söylemi var: ölçekle, öde, endişe etme. Ama soğuk başlatma konusunda endüstri 8 yıldır çemberde dönüyor. AWS Lambda 2015'te çıktığında 500ms gecikme vardı. 2024'te? Hala var.
Sorun teknik değil, ekonomik.
Soğuk başlatma, container'ı başlatmak, runtime'ı yüklemek, function code'unu initialize etmek demek. Teoride optimize edilebilir, AWS bunu yapıyor, container startup time'ı yarıladı. Ama temel sorun kalıyor: sıfırdan başlayış var.
Azure Functions'ta Consumption Plan'da 10+ saniye görmüş müşteriler var. Google Cloud Functions? Benzer. Neden?
Cevap: Çözmek pahalı, sorun satış yapmıyor.
Eğer AWS soğuk başlatmayı tamamen ortadan kaldırsa, müşteriler Premium tier'a geçmeyecek. Şu an warm container'ları tutmak için para veriyorsun, bu bir feature olmuş, bug değil. Lambda Reserved Concurrency, Provisioned Concurrency, Azure Premium Plan... hepsi aynı şeyi yapıyor: ön ödeme karşılığında soğuk başlatmayı atlat.
Bir container başlatması ~100ms. Runtime (Python, Node, Java) ~200-400ms. Kod initialization ~50-200ms. Bunları paralel hale getiremezsin, sıralı bir süreç. AWS Graviton2 işlemciye geçti, startup time iyileşti. Ama sınır var.
Java? 2-3 saniye. Go? 50-100ms. Dil seçimi çözüm değil, ama etkili. Türkiye'de bunu yapan fintech şirketlerini gördüm, Python yerine Go'ya geçerek 10 katı iyileşme aldılar.
Üç yol var:
- Ödemeyi Kabul Et: Provisioned Concurrency kullan, soğuk başlatma öde. Serverless'ın "sıfır idling cost" vaadi yalan. Bunu biliyorsun, AWS da biliyor.
- Dil Seç: Node.js veya Go kullan. Startup'ı minimize et. Lambda Layers ile code size'ı küçült.
- Mimarisini Değiştir: Event-driven ve async işler için serverless kullan (s3 trigger, SQS). Real-time API'lar için container'ı çalışan tut (ECS, Kubernetes). Serverless her iş için değil.
Serverless soğuk başlatmayı çözmeyecek çünkü çözmek, para kaybetmek demek. Teknoloji değil, iş modeli sorunu. Bunu kabul edersen, serverless'ı doğru yerde kullanırsın. Rediscover etme, realize et.
Eğer her API çağrısında 500ms tolerans edemiyorsan, serverless Consumption Plan senin için değil. Bunu söylemek satış temsilcisinin işine gelmez, ama gerçek.
5 yorum
ya doğru söylüyor AWS metrik olarak iyileştirme yapıyor ama gerçek sorun hala orada
ama yine de müşteri için sorun çözülmüyor AWS için ise problem çözülmüş sayılıyor
Aynen AWSnin container startup timeı yarılaması da bunu gösteriyor zaten Teknik olarak
8 yıl hiç değişmezse o zaman çözmek istemiyorlar demek ekonomi başka bir şey yaşıyor
peki ya bu sorunu çözmek için serverless yerine başka bir çözüm tercih edenler var mı