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.

OrtamAmaçVeri
developmentGeliştiricinin lokal makinesiSahte / seed verisi
stagingProduction'ın kopyası, son kontroller, QAAnonimleştirilmiş veya test verisi
productionGerçek kullanıcılarGerç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.

  1. Bulut faturası beklenenden çok yüksek geldi. Maliyeti nasıl analiz eder ve düşürürsünüz?OrtaBulut & DeployFull Stack
  2. Edge function ve edge rendering nedir? Kodu ne zaman edge'de, ne zaman tek bir bölgede (region) çalıştırırsınız?OrtaBulut & DeployFull Stack
  3. Production'daki bir full stack uygulamayı nasıl izlersiniz? Log, metrik, trace ve alarm stratejiniz nedir?OrtaBulut & DeployFull Stack
  4. Veritabanı şema değişikliklerini (migration) kesintisiz (zero-downtime) nasıl deploy edersiniz? Expand-contract nedir?ZorBulut & DeployFull Stack
  5. Blue-green deployment ile canary deployment arasındaki fark nedir? Rollback nasıl yapılır?OrtaBulut & DeployFull Stack
  6. Serverless (ör. AWS Lambda, Vercel Functions) ile container tabanlı deploy (Cloud Run, ECS, Kubernetes) arasında nasıl seçim yaparsınız?OrtaBulut & DeployFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle