Development, staging ve production ortamları neden ayrılır? Preview environment nedir?
Cevap
Ortamlar, değişiklikleri gerçek kullanıcıyı etkilemeden test edebilmek için ayrılır. Her ortamın kendi veritabanı, secret'ları ve alan adı olur.
| Ortam | Amaç | Veri |
|---|---|---|
| development | Geliştiricinin lokal makinesi | Sahte / seed verisi |
| staging | Production'ın kopyası, son kontroller, QA | Anonimleştirilmiş veya test verisi |
| production | Gerçek kullanıcılar | Gerçek veri |
Önemli kurallar
- Aynı artifact: staging'de test edilen Docker image veya build, değiştirilmeden production'a terfi ettirilmelidir. Her ortam için yeniden build almak "staging'de çalışıyordu" sorununu doğurur.
- Konfigürasyon ortamdan gelir: kod aynı kalır, sadece ortam değişkenleri değişir (12-Factor App prensibi).
- Production verisi staging'e kopyalanmaz (ya da maskelenerek kopyalanır); KVKK/GDPR açısından risklidir.
- Staging, production'a mümkün olduğunca benzemelidir: aynı DB sürümü, benzer altyapı.
Preview environment
Her pull request için otomatik oluşturulan geçici ortamdır. Vercel, Netlify, Render gibi platformlar PR açıldığında pr-123.app.dev gibi bir URL üretir. Tasarımcı, ürün yöneticisi veya reviewer değişikliği canlı görebilir. PR kapanınca ortam silinir. Backend tarafında preview için ayrı veritabanı branch'i (Neon branching gibi) kullanılabilir.
İlgili Bulut & Deploy soruları
- Bulut faturası beklenenden çok yüksek geldi. Maliyeti nasıl analiz eder ve düşürürsünüz?
- Edge function ve edge rendering nedir? Kodu ne zaman edge'de, ne zaman tek bir bölgede (region) çalıştırırsınız?
- Production'daki bir full stack uygulamayı nasıl izlersiniz? Log, metrik, trace ve alarm stratejiniz nedir?
- Veritabanı şema değişikliklerini (migration) kesintisiz (zero-downtime) nasıl deploy edersiniz? Expand-contract nedir?
- Blue-green deployment ile canary deployment arasındaki fark nedir? Rollback nasıl yapılır?
- Serverless (ör. AWS Lambda, Vercel Functions) ile container tabanlı deploy (Cloud Run, ECS, Kubernetes) arasında nasıl seçim yaparsınız?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.