Trafiğin bir kopyasını test ortamına gönderebilir miyim (Traffic Mirroring)?
Kısa cevap
Evet, HTTP vService'te Traffic Mirroring aksiyonuyla. Aksiyonun Mirror Target Service alanında test ortamındaki Kurum Servisi seçilir ve aksiyon vService'in Actions alanına eklenir; isteklerin kopyası test ortamına gider, kullanıcı yanıtı her zaman asıl Kurum Servisinden alır ve kopyanın yanıtı atılır. Conditions alanına koşul eklenerek yalnızca belirli istekler, Sampling açılarak isteklerin bir yüzdesi aynalanır. Kopyadan Authorization ve Cookie başlıkları varsayılan olarak çıkarılır (Headers removed from the copy).
Sorun: Yeni Ortam Gerçek Trafikle Denenmeli
Yeni bir sürüm ya da altyapı, sentetik testlerin yakalayamadığı sorunları görmek için gerçek trafikle denenmek istenir; kullanıcıların bu denemeden etkilenmemesi gerekir.
Çözüm
Traffic Mirroring Aksiyonu
- Nasıl çalışır vService'e gelen isteğin kopyası Mirror Target Service'e gönderilir; kullanıcının isteği asıl Kurum Servisine normal biçimde gider. Conditions boşsa bütün istekler, koşul eklenmişse yalnızca koşula uyan istekler, Sampling açıksa bunların seçilen yüzdesi aynalanır.
- Nerede açılırLoad Balancer → Actions → Traffic Mirroring · vService → Actions
- Gereksinim HTTP vService; kopyanın gönderileceği, Address alanında IP adresi ve portu tanımlı tek bir Kurum Servisi; Backend Group seçilemez
- vService tipi HTTP
- Sınır Bir vService'e en fazla 8 Traffic Mirroring aksiyonu eklenir (Bir vService'te en fazla kaç Traffic Mirroring action'ı kullanabilirim?)
Adım adım yapılandırma
Test ortamındaki sunucu TR7'de henüz Kurum Servisi olarak tanımlı değilse Load Balancer → Backend Services → Add ile Backend Service Name ve Address (IP adresi ve port) girilip Add ile kaydedilir (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?). Use Frontend Port seçili bir Kurum Servisine kopya gönderilmez; portun açıkça girilmesi gerekir.
Bütün istekler aynalanacaksa bu adım atlanır. Aksi hâlde Load Balancer → Conditions → Add ile koşul oluşturulur (nasıl eklenir); örneğin Criteria = Path, eşleştirme Start, değer /api/ girilip Add ile kaydedilir.
Load Balancer → Actions ekranında Add butonuna tıklanır.
Action Type = Traffic Mirroring seçilir; Mirror Target Service (zorunlu) alanında test ortamındaki Kurum Servisi seçilir.
Varsayılanlar: Maximum Body Size (KB) 256, Shadow Response Timeout 2 s, Concurrent Copy Limit 500, Add X-Forwarded-For Header kapalı. Headers removed from the copy listesi varsayılan olarak Authorization, Cookie ve Set-Cookie içerir (en fazla 16 başlık); test ortamının görmemesi gereken başka başlıklar buraya eklenir.
Adım 2'de koşul oluşturulduysa aksiyonun Conditions alanında seçilir. Conditions boş bırakılırsa vService'e gelen bütün istekler aynalanır.
İsteklerin yalnızca bir yüzdesi aynalanacaksa Sampling açılır (varsayılan kapalı); Sampling Percentage (%) girilir (varsayılan 10, aralık 0–100). Sampling Key Random (varsayılan) konumunda her istek için karar bağımsız verilir; Keyed konumunda alan Client IP address değişkeniyle dolar ve aynı istemcinin istekleri hep birlikte aynalanır ya da hiç aynalanmaz.
Formun altındaki Add butonuna tıklanır.
Load Balancer → Load Balancer vService List ekranında vService seçilip düzenleme formu açılır.
Details panelindeki Actions alanında oluşturulan aksiyon eklenir; aksiyonu oluşturmak tek başına yetmez.
Save butonuna tıklanır. Cluster'da değişiklik auto-sync (varsayılan) ile eş cihaza kendiliğinden aktarılır; Manual Sync Mode açıksa Synchronize ile gönderilir.
Doğrulama
vService'in Live Stats ekranındaki Traffic Mirroring bölümünde Mirrored/s, Skipped/s ve Dropped/s değerlerine; geçmiş akış için Dashboard'un Traffic Mirroring sekmesindeki Mirror Flow grafiğine bakılır (aynalamanın izlenmesi). Sampling açıksa atlanan istekler Skipped/s'te görünür.
Mirrored/s > 0Test ortamındaki sunucunun erişim logunda kopya isteklere bakılır.
Asıl sunucuya gelen isteklerle aynı yol ve parametreler; Authorization ve Cookie başlıkları yokSık Yapılan Hatalar
- Aksiyonu vService'e bağlamayı unutmak. Oluşturulan aksiyon vService'in Actions alanına eklenmedikçe çalışmaz.
- Test ortamının yanıtını görmeyi beklemek. Kopyanın yanıtı istemciye dönmez ve atılır.
- Gövdenin de temizlendiğini sanmak. Yalnızca Headers removed from the copy listesindeki başlıklar çıkarılır; istek gövdesi olduğu gibi kopyalanır. Gövdesi Maximum Body Size (KB) değerinden büyük olan istekler aynalanmaz.
- Keyed örneklemeyi tek istemciden denemek. Anahtara göre örneklemede aynı istemci ya hep aynalanır ya hiç aynalanmaz; deneme farklı istemcilerden ya da Random konumunda yapılır.
- Yan etkili istekleri aynalamak. Test ortamı kopya istekleri gerçekten işler; ödeme ya da e-posta gibi dış sistemlere dokunan istekler bir koşulla aynalama dışında bırakılır.
- Cluster'da eş cihazı ayrıca yapılandırmak. Auto-sync (varsayılan) açıkken yapılandırma tek cihazda yapılır ve eş cihaza kendiliğinden geçer; yalnızca Manual Sync Mode açıkken Synchronize gerekir.
Dokümantasyonda nasıl yapılır
