İletişim

Staging Ortamı Nedir?

Kısa tanım

Staging ortamı, yazılımın canlıya (production) çıkmadan önce son kez denendiği ve altyapı, yapılandırma ve veri yapısı bakımından canlı ortamın olabildiğince birebir kopyası olan ortamdır. Geliştirici bilgisayarında görünmeyen sürüm farkları, eksik ortam değişkenleri veya hatalı veritabanı migrasyonları burada yakalanır. Staging'in değeri canlıya ne kadar benzediğine bağlıdır; içindeki gerçek kişisel veriler ise ayrıca korunmalıdır.

Diğer adları: staging, staging environment, ön yayın ortamı, test sunucusu, pre-production

Kodun önce canlının kopyası olan staging ortamında test edildiği, hataların kullanıcıya ulaşmadan yakalandığı ve onaydan sonra canlıya alındığı akış

Development, test, staging, production

OrtamAmacıVeri
Development (yerel)Geliştiricinin kod yazıp hızla denediği yerKüçük, uydurma örnek veri
Test / CIOtomatik testlerin her değişiklikte çalıştığı geçici ortamTestlerin kendi oluşturduğu veri
StagingCanlıya çıkmadan son prova, müşteri veya ekip onayıCanlıya benzer hacim ve yapıda, korunmuş veri
Production (canlı)Gerçek kullanıcıların kullandığı sistemGerçek veri

Küçük projelerde test ve staging çoğu zaman tek bir ortamda birleşir. Önemli olan isim değil, canlıya giden kodun en az bir kez canlıya çok benzeyen bir yerde çalıştırılmış olmasıdır.

Canlıya ne kadar benzemeli?

Staging'de yakalanamayan hataların çoğu, iki ortam arasındaki farklardan doğar. Birebir aynı tutulması gerekenler:

  • İşletim sistemi, çalışma zamanı (ör. Node.js, PHP) ve veritabanı motoru sürümleri.
  • Web sunucusu ve önbellek yapılandırması, yönlendirme kuralları.
  • Veritabanı şeması ve canlıda çalıştırılacak migrasyonların aynısı.
  • Derleme çıktısı: İdeal olan, kodun bir kez derlenmesi ve aynı paketin önce staging'e, onaydan sonra canlıya taşınmasıdır. Her ortam için ayrı derleme, “staging'de çalışıyordu” sorununun klasik kaynağıdır.

Bilinçli olarak farklı tutulanlar da vardır: sunucu sayısı ve gücü, ödeme altyapısının test modu, gerçek müşteriye gitmeyecek şekilde yakalanan e-posta ve SMS gönderimleri. Bu farklar ortam değişkenleri üzerinden yönetilir; kod aynı kalır. Staging'den yanlışlıkla gerçek müşteriye kampanya e-postası gitmesi ya da gerçek karttan çekim yapılması, ortam ayrımının zayıf olduğunu gösteren tipik kazalardır.

Test verisi ve KVKK

Canlı veritabanının bir kopyasını staging'e almak, gerçekçi test için cazip bir kısayoldur. Ancak bu, müşterilerin kişisel verilerinin genellikle daha zayıf korunan ikinci bir ortamda işlenmesi demektir. 6698 sayılı Kişisel Verilerin Korunması Kanunu, kişisel verilerin işlendikleri amaçla bağlantılı, sınırlı ve ölçülü olmasını ister; veri sorumlusuna da yetkisiz erişimi önleyecek teknik ve idari tedbirleri alma yükümlülüğü getirir. Staging, bu yükümlülüklerin dışında değildir.

Uygulamada tercih sırası şöyledir:

  1. Sentetik veri: Gerçekçi ama tamamen üretilmiş isimler, adresler, siparişler.
  2. Anonimleştirilmiş veya maskelenmiş kopya: Ad, telefon, e-posta, T.C. kimlik numarası ve adres gibi alanların geri döndürülemeyecek şekilde değiştirildiği veri. Yalnızca isim alanını değiştirip diğer bilgileri bırakmak anonimleştirme sayılmaz.
  3. Gerçek veri zorunluysa: Canlıyla aynı erişim kısıtları, kayıt tutma ve şifreleme; erişimin yalnızca gereken kişilerle sınırlanması ve işi biten kopyanın silinmesi.

Bu bölüm genel bilgi niteliğindedir, hukuki danışmanlık değildir; somut durum için KVKK uzmanına danışılmalıdır.

Staging'i dışarıya kapatmak

Herkese açık bir staging adresi iki sorun yaratır: yarım işler ve test verisi yabancılara görünür, arama motorları da sayfaları dizine ekleyerek canlı siteyle kopya içerik oluşturabilir. Google, gizli kalması gereken içerik için parola korumasını önerir. robots.txt ile taramayı engellemek, URL'nin başka bir yerden bağlantı alarak sonuçlarda görünmesini kesin olarak önlemez; noindex ise sayfayı arama dışında tutar ama kimsenin içeriği görmesini engellemez. Pratik çözüm, web sunucusu düzeyinde HTTP kimlik doğrulaması veya IP kısıtlamasıdır.

Bir ayrıntı daha: Staging'den canlıya kopyalanan yapılandırmada noindex veya parola koruması kalırsa canlı site arama sonuçlarından düşebilir. Bu ayarların ortam değişkenine bağlı olması, bu kazayı önler.

Staging'in yakalayamadıkları

Staging ne kadar iyi kurulursa kurulsun canlının kendisi değildir. Gerçek trafik hacmi, gerçek kullanıcıların beklenmedik davranışları ve üçüncü taraf servislerin canlı modları orada tam olarak yeniden üretilemez. Bu yüzden staging; uçtan uca testler, canlıda izleme ve hızlı geri alma imkânı sunan kademeli deployment yöntemleriyle birlikte düşünülmelidir. Her pull request için otomatik açılan kısa ömürlü önizleme ortamları da tek ve paylaşılan bir staging'in sıra beklemesine yol açtığı ekiplerde iyi bir tamamlayıcıdır.

İlgili terimler

← Sözlüğe dön