Kavramın hikâyesi
Önce iş karşılığını gör, gerektiğinde bağlamı aç.
İlk taramaİşte karşılaşacağın sinyaller
Gerilim ve çözüm · Bölüm 01
Hangi problemi çözer?
Staging, seçilmiş artifact'in hedefe benzer bir ortamda başlatılmasını, bağlantılarının ve temel akışlarının doğrulanmasını sağlar.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Aynı deployment sürecini ve aynı package'ı environment'lar arasında kullanmak süreç tutarsızlığını azaltabilir. Ancak staging data, traffic, scale ve dış servis koşulları Production ile aynı değilse bazı hatalar yalnız Production'da ortaya çıkar.
Gerçek hayat · Bölüm 02
Gerçek iş senaryosu
SCN-004 bağlamında pipeline build sırasında başarısız olduğu için deploy-staging işi hiç başlamamıştır. Junior “Staging bozuk” demez; artifact'in üretilmediğini ve bağımlı deployment işinin bu nedenle atlandığını ayırır.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Build düzeldikten sonra Staging'e hangi revision'ın deploy edildiğini, deployment sonucunu ve smoke testleri kontrol eder. Staging testi geçse bile Production traffic ve data farklarının hâlâ risk olduğunu not eder.
Duyacağın bağlam · Bölüm 03
Ekipte bunu nasıl duyabilirsin?
Temsili ekip konuşması: “Staging'de aynı artifact'i doğruladık ama Production traffic'i ve üçüncü taraf hesabı farklı; sonucu garanti değil, risk azaltan kanıt olarak kullanalım.”
Beklenti seviyesi · Bölüm 04
Junior hangi seviyede bilmeli?
- Tanı: Environment, deployment target, Staging, Production, version, configuration, smoke test ve promotion terimlerini ayırır.
- Açıkla: Staging'in neden Production'a benzer tutulduğunu ve neden yine de kusursuz Production kopyası olmadığını anlatır.
- Uygula: Doğru revision/artifact'in Staging'de olduğunu doğrular; deployment ile test sonucunu ayırır; environment farklarını görünür biçimde kaydeder.
- Şimdilik bilmesi gerekmeyen: Staging topolojisi kurmak, production datasını maskeleyip çoğaltmak veya kurumsal environment governance tasarlamak.
İhtiyacın kökeni · Bölüm 05
Neden ortaya çıktı?
Build'in oluşması yazılımın gerçek servislerle, environment configuration'ıyla ve çalışan süreç olarak doğru davrandığını tek başına göstermez.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Değişikliği doğrudan Production'da ilk kez denemek kullanıcı etkisi yaratır. Staging bu kontroller için production öncesi bir hedef sağlar; production farklarını tamamen yok etmez, daha erken görünür kılmaya çalışır.
Ekip etkisi · Bölüm 06
Şirketler neden kullanır?
Ekipler değişikliği kullanıcı trafiğine açmadan önce smoke test yapmak, stakeholder veya QA doğrulaması almak, deployment sürecini prova etmek ve hangi version'ın nerede olduğunu izlemek için Staging kullanabilir.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Bazı ortamlar uzun ömürlü ve paylaşımlı, bazıları her branch veya deployment için geçicidir. GitLab environment ve Azure deployment slot bu iki ihtiyacın ürün uygulamalarına örnektir; tek doğru Staging mimarisi değildir.
Karar alanı · Bölüm 07
Trade-off ve bağlam
Production'a daha çok benzeyen Staging daha değerli sinyal verebilir; fakat altyapı maliyeti, bakım, erişim ve veri güvenliği yükünü artırır.
Tam bağlamı açGerekçe, sınırlar ve kalan ayrıntı
Paylaşımlı ortam eşzamanlı değişikliklerden etkilenebilir; uzun ömürlü ortam drift yaşayabilir; gerçek production datasını kopyalamak gizlilik ve güvenlik riski doğurabilir. Farkları saklamak yerine hangi farkların kabul edildiği ve hangi test sonucunu sınırladığı açık olmalıdır.
Yanılgı radarı · Bölüm 08
Yaygın yanlış anlamalar
- “Staging, Production'ın birebir kopyasıdır.” Yanlış; amaç benzerliktir, mutlak eşitlik değil.
- “Pipeline'daki staging stage ile Staging aynı şeydir.” Yanlış; biri iş grubu adı, diğeri deployment environment'ıdır.
- “Staging testleri geçtiyse Production'da sorun çıkmaz.” Yanlış; traffic, scale, data ve dış bağımlılıklar farklı olabilir.
- “Her ekipte Staging adlı tek, kalıcı ortam vardır.” Yanlış; adlar ve yaşam döngüleri değişir, dinamik environment'lar da bulunur.
- “Build başarılıysa Staging doğrulaması yapılmıştır.” Yanlış; artifact üretimi ve environment'a deployment ayrı olaylardır.
- “Staging'de production secret'ları ve gerçek kullanıcı verisi kullanılmalı.” Riskli; veri ve erişim politikası ayrıca belirlenmelidir.
Gerilim ve çözüm1. bölüm