Shadow Deployment (Gölge Dağıtımı)

Yeni bir ML modelinin üretim trafiğini alıp tahminlerini yalnızca günlüğe kaydettiği, kullanıcıları hiç etkilemeden gerçek dünya testine olanak tanıyan dağıtım stratejisi.

Shadow deployment (gölge dağıtımı), yeni bir makine öğrenmesi modelinin mevcut üretim modeliyle eş zamanlı olarak gerçek trafiği işlediği ancak tahminlerini hiçbir zaman kullanıcılara sunmadığı bir dağıtım stratejisidir. Gelen her istek hem mevcut modele (champion) hem de yeni modele (challenger) iletilir; kullanıcı yalnızca champion modelinin yanıtını alırken challenger modelin tahminleri günlüğe kaydedilerek çevrimdışı analiz edilir. Bu yaklaşım, sıfır kullanıcı riski taşıyan en güvenli model test yöntemi olarak öne çıkar: challenger modelde regresyon ya da hata oluşsa bile gerçek kullanıcıların hiçbiri bundan etkilenmez. Netflix, Uber ve yüksek frekanslı işlem şirketleri gibi büyük teknoloji kuruluşları, yeni öneri algoritmalarını veya fiyatlandırma modellerini canlıya almadan önce shadow deployment'ı standart bir kalite kapısı olarak kullanmaktadır. A/B testi farklı kullanıcı segmentlerine farklı modeller sunarken ve canary dağıtımı trafiğin küçük bir bölümünü yeni sisteme yönlendirirken, shadow deployment tam trafiği ikiye katlayarak altyapı maliyetini artırır ancak maksimum güvenliği sağlar. Değerlendirme süreci genellikle 2–14 gün sürer; yüksek hacimli sistemlerde istatistiksel anlamlılığa çok daha hızlı ulaşılır.

Nasıl Çalışır?

Gelen üretim isteği iki paralel kola ayrılır. Birinci kol champion (mevcut) model tarafından işlenerek kullanıcıya yanıt döner; ikinci kol aynı anda shadow (gölge) model tarafından işlenir ama bu yanıt kullanıcıya asla ulaşmaz. Shadow modelin tahminleri, gecikme süresi ve kaynak tüketimi bir gözlemleme sistemine (log pipeline) kaydedilir. Mühendislik ekibi bu günlükleri çevrimdışı karşılaştırarak yeni modelin production trafiğindeki gerçek performansını ölçer. Trafik yansıtma işlemi genellikle Envoy, Istio gibi servis mesh araçlarıyla ya da uygulama içinde özel middleware ile gerçekleştirilir. Değerlendirme süreci istatistiksel anlamlılığa ulaşılana kadar sürdürülür; bu süre yüksek hacimli sistemlerde birkaç saate inerken düşük trafikli sistemlerde haftalar alabilir.

Canary Deployment ve A/B Testinden Farkı

Canary deployment, yeni versiyonu toplam trafiğin küçük bir kesimine (%1–10) yönlendirir ve o kesim gerçek yanıtlar alır; shadow deployment ise trafiği ikiye katlayarak hem champion hem de challenger modeli çalıştırır ancak yalnızca champion yanıt verir. A/B testi kullanıcıları bilinçli olarak farklı deneyim varyantlarına bölerken shadow deployment kullanıcıları hiçbir şekilde etkilemez. Bu üç strateji arasında shadow deployment en düşük kullanıcı riskini taşır; ancak tam trafiği iki katına çıkardığı için altyapı maliyeti en yüksek olanıdır. Düşük riskli değişiklikler için canary yeterli olurken, yüksek riskli model geçişlerinde (büyük mimari değişiklik, kritik iş sürecini etkileyen model) shadow deployment tercih edilir.

Kullanım Alanları

Shadow deployment özellikle şu senaryolarda kritik önem taşır: Model sürüm yükseltme — XGBoost modelini derin öğrenme mimarisine geçirmeden önce aynı production trafiğinde kıyaslama. Sağlayıcı değişikliği — Büyük dil modeli altyapısını farklı bir satıcıya taşımadan önce performans eşdeğerliği doğrulaması. Veri kayması tespiti — Yeni modelin beklenmedik veri dağılımlarına nasıl tepki verdiğini ölçme. Uyumluluk ve denetim — Regülasyon nedeniyle değişim öncesi performans eşdeğerliğini kanıtlama. Finans ve yüksek riskli sistemler — Fiyatlandırma veya kredi onay algoritmalarını shadow trading yöntemiyle test etme. Netflix, Uber ve yüksek frekanslı işlem platformları bu kullanım alanlarının gerçek dünya örneklerini oluşturmaktadır.

Avantajlar ve Dezavantajlar

Avantajlar: Kullanıcıya sıfır risk — challenger modeldeki herhangi bir hata veya regresyon son kullanıcıyı hiçbir şekilde etkilemez. Gerçek üretim koşullarında test imkânı — offline test setlerinin yakalayamayacağı mevsimsel artışlar, anlık trafik patlamaları ve kenar durumlar test edilir. Geniş değerlendirme penceresi — model günler veya haftalar boyunca gözlemlenebilir ve güçlü istatistiksel sonuçlar elde edilir. Dezavantajlar: İkili altyapı maliyeti — iki modeli eş zamanlı çalıştırmak hesaplama altyapısını iki katına çıkarır. Büyük log depolama ihtiyacı — yüksek trafikli sistemlerde karşılaştırma için depolanan veri hacmi hızla büyür. Kullanıcı deneyimini ölçemez — shadow deployment yalnızca model metriklerini karşılaştırır; iş akışı üzerindeki gerçek etki gözlemlenmez.

Uygulama Adımları

Shadow deployment kurulumu için tipik adımlar şunlardır: (1) Trafik yansıtma katmanı — Envoy veya Istio gibi servis mesh araçları ya da uygulama düzeyinde özel middleware ile her isteği iki kola yönlendirin. (2) Shadow model uç noktası — Yeni modeli bağımsız bir servis olarak dağıtın; üretim endpoint'ine dokunmayın. (3) Gözlemleme altyapısı — Her iki modelin tahminlerini, gecikmelerini ve hata günlüklerini Prometheus, MLflow veya Weights & Biases gibi bir izleme platformuna yönlendirin. (4) İstatistiksel analiz — Yeterli veri toplandıktan sonra Mann-Whitney U testi veya bootstrap güven aralıklarıyla performans karşılaştırması yapın. (5) Promosyon veya geri çekme — Shadow model kabul eşiklerini geçerse champion modeliyle yer değiştirin; geçemezse araştırma sürecine geri dönün.

Sık Sorulan Sorular

  • check_circle Shadow deployment ne kadar sürmeli? Genellikle 2–14 gün önerilir. Yüksek hacimli sistemlerde birkaç saat içinde istatistiksel anlamlılığa ulaşılabilir; mevsimsel değişkenlerin önemli olduğu sistemlerde tam iş döngüsünü (hafta sonu dahil) kapsayan bir süre tercih edilir.
  • check_circle Birden fazla shadow modeli aynı anda çalıştırılabilir mi? Evet, teknik olarak mümkündür. Birden fazla challenger aynı anda gölge modda çalıştırılabilir; bu yöntem farklı mimarileri hızla karşılaştırmak için kullanışlıdır. Ancak her ek shadow model altyapı maliyetini artırır ve log yönetimini karmaşıklaştırır.
  • check_circle Offline test seti yeterli değil mi, neden üretim trafiği gerekiyor? Offline test setleri geçmişin anlık görüntüsüdür; üretim verisi dinamiktir. Shadow deployment; test setlerinin yakalayamayacağı gerçek dünya karmaşıklığını — anlık yük artışlarını, beklenmedik veri kalıplarını, altyapı gecikmelerini — ortaya çıkarır.
  • check_circle Shadow deployment ile dark launch aynı şey mi? Büyük ölçüde evet. Dark launch zaman zaman yeni özellikleri (model değil) kullanıcıdan gizleyerek test etmeyi tanımlar; ML bağlamında her ikisi de eş anlamlı kullanılır: yeni kodu çalıştır, sonuçları gizle, metrikleri kaydet.
  • check_circle Shadow modelin sonuçları önemli ölçüde farklıysa ne yapılmalı? Önce veri ön işleme ve özellik mühendisliği adımlarını kontrol edin. Ardından shadow modeli daha uzun süre çalıştırarak farkın tutarlı olduğunu doğrulayın. Sistematik sapma bulunursa modeli iyileştirip shadow döngüsünü yeniden başlatın.