Klasik DNS round-robin, aynı kayıt altındaki IP adreslerini genel olarak eşit dağıtır. Bu model basit yük paylaşımı için yeterli olabilir; ancak yeni sürüm devreye alma, A/B test, blue/green geçiş veya veri merkezi taşıma gibi senaryolarda yeterli kontrol sağlamaz. Operasyon ekibi çoğu zaman trafiğin yalnızca %5'ini yeni hedefe göndermek, kalanını mevcut sisteme bırakmak ister.
DNS seviyesinde ağırlıklandırma yoksa trafik yüzdesi uygulama katmanında veya ayrı bir trafik bölme katmanında çözülmeye çalışılır. Bu da ek mimari, ek izleme, ek sertifika yönetimi ve ek hata noktası anlamına gelir. Oysa karar DNS cevabında verilebiliyorsa, istemci daha en baştan doğru hedefe yönlendirilir.
Bakım ve drain senaryoları da klasik kayıt silme yaklaşımıyla kaba kalır. Bir IP'yi DNS kaydından silmek yeni sorgular için etkili olur; ancak geçiş yüzdesini kademeli azaltma veya hedefi kontrollü biçimde devreden çıkarma ihtiyacını tek başına karşılamaz. Ayrıca istemci ve ara resolver cache davranışı TTL süresi boyunca dikkate alınmalıdır.
Doğru model, her DNS kaydına ayrı weight tanımlamak ve algoritmayı senaryoya göre seçmektir. Weighted round-robin daha dengeli ve sıralı dağıtım için, weighted random ise istatistiksel yüzdelik seçim için kullanılabilir. Weight 0 değeri ise hedefi fiilen drain moduna alarak yeni DNS yanıtlarından düşürür.
TR7 Ağırlıklı DNS, per-record weight, weighted round-robin, weighted random, canlı konfigürasyon yenileme ve weight=0 drain davranışıyla DNS seviyesinde kontrollü trafik dağıtımı sağlar.
TR7, DNS yanıtını statik kayıt listesinden çıkarıp, weight değerleri ve seçilebilir algoritmalarla yönetilen trafik dağıtım kararına dönüştürür.
Her IP veya kayıt üyesi için integer weight değeri tanımlanır. Weighted round-robin algoritması bu ağırlıkları dikkate alarak DNS yanıtlarını oransal biçimde dağıtır.
Weighted random algoritması her sorguda ağırlık oranlarına göre rastgele seçim yapar. Büyük sorgu hacminde trafik dağılımı tanımlanan weight oranlarına yaklaşır.
Weight değişiklikleri canlı konfigürasyon yenileme akışına girer ve yeni sorgular güncel dağıtımı alır. Daha önce cache'lenmiş yanıtlar TTL süresi boyunca yaşayacağı için hızlı geçişlerde TTL planlaması önemlidir.
Bir kaydın weight değeri 0 yapıldığında kayıt etkin aday listesinden çıkar. Bu davranış bakım, rollback veya eski veri merkezi kapatma senaryolarında kontrollü drain sağlar.
Ağırlıklı DNS, kayıt bazlı weight değerlerini algoritma, canlı güncelleme, topology ve bakım senaryolarıyla birlikte yönetir.
TR7'de her kayıt üyesi kendi weight değerine sahip olabilir. Bu değer trafik dağılımındaki göreli payı belirler; 5 ve 2 ağırlıkları yaklaşık 5:2 oranlı bir dağıtım hedefler. Float değer verilirse integer değere yuvarlanarak kullanılır. Bu model, daha güçlü hedeflere daha yüksek pay, test hedeflerine daha düşük pay vermeyi kolaylaştırır.
Weighted round-robin, kayıtları ağırlık oranına göre dönüşümlü biçimde seçer. Dengeli dağıtım beklendiğinde ve kayıtların sırayla kullanılmasının uygun olduğu durumlarda tercih edilir. Canary, kademeli rollout ve kapasiteye göre trafik paylaşımı için pratik bir algoritmadır. Operatör yalnızca weight değerlerini değiştirerek dağıtımı yeniden şekillendirir.
Weighted random, her DNS sorgusunda ağırlık oranlarına göre rastgele seçim üretir. Kısa zaman aralıklarında küçük sapmalar olabilir; yüksek sorgu hacminde dağılım tanımlanan oranlara yaklaşır. A/B test ve deneysel trafik dağıtımı gibi senaryolarda kullanışlıdır. Aynı kayıt havuzunda düşük ağırlıklı yeni hedefler güvenli biçimde denenebilir.
Weight değerleri değiştiğinde GTM konfigürasyonu canlı yenileme sürecine girer. Debounce mekanizması hızlı ardışık değişiklikleri toparlayarak gereksiz tekrar üretimi azaltır; tipik canlı yenileme gecikmesi 3 saniye seviyesindedir. Yeni DNS sorguları güncel weight dağılımını alır. Ancak istemci ve resolver cache'lerinde eski yanıtlar TTL süresince kalabilir.
DNS ağırlığı değiştiğinde sistem yeni yanıtları günceller; fakat daha önce verilmiş DNS cevapları TTL bitene kadar ara cache'lerde yaşamaya devam eder. Bu nedenle canary, blue/green veya hızlı rollback senaryolarında TTL düşük tutulmalıdır. 5-60 saniye aralığındaki düşük TTL değerleri geçişlerde daha hızlı etki sağlar. Normal kararlı dönemlerde daha yüksek TTL kullanılabilir.
Bir IP veya kayıt üyesinin weight değeri 0 olduğunda bu hedef yeni DNS yanıtlarından çıkarılır. Bu davranış kayıt silmeden bakım drain yapmak için kullanılır. Mevcut cache'ler TTL bitene kadar eski yanıtı kullanabilir; yeni sorgular ise hedefi artık almaz. Bakım, rollback veya veri merkezi kapatma sırasında kontrollü ve geri alınabilir bir yöntem sağlar.
TR7'de dağıtım yalnızca tek IP seviyesinde düşünülmez; veri merkezi grubu ve kayıt üyesi seviyesinde weight mantığı birlikte kullanılabilir. Önce uygun veri merkezi veya aday grup belirlenir, ardından aynı grup içindeki kayıtlar weight'e göre dağıtılır. Bu model global trafik yönetiminde kapasite ve konum bilgisini birlikte ele almaya yardımcı olur. Büyük yapılarda dağıtım daha katmanlı ve yönetilebilir hale gelir.
Geo veya topology tabanlı seçim kullanıldığında önce istemciye uygun aday grup belirlenir. Weight dağıtımı daha sonra bu aday küme içinde uygulanır. Böylece örneğin Avrupa kullanıcıları yalnızca Avrupa veri merkezi grubuna yönlendirilirken, o grup içindeki IP'ler ağırlıklı dağıtılabilir. Topology kararı ile weight kararı birbirine karışmadan sıralı biçimde çalışır.
Ağırlıklı dağıtım gerekmeyen kayıtlar için klasik round-robin veya random seçim kullanılabilir. Round-robin kayıtları eşit dağıtır; random ise rastgele seçim yapar. Bu algoritmalar basit senaryolarda yeterlidir ve weighted algoritmalara geçiş gerektiğinde aynı kayıt modeli üzerinden yönetilir. Operatör her DNS kaydı için uygun dağıtım davranışını seçebilir.
Closest algoritması IP tabanlı yakınlık seçimi gereken A ve AAAA kayıtları için kullanılabilir. Bu model ağırlıklı dağıtımdan farklı olarak istemciye daha yakın veya daha uygun hedef seçimine odaklanır. Global trafik yönetiminde topology, closest ve weight birlikte farklı karar katmanları olarak değerlendirilebilir. Böylece DNS cevabı yalnızca rastgele değil, bağlama duyarlı hale gelir.
Ağırlıklı DNS; weight formatı, algoritma seçimi, canlı yenileme gecikmesi, TTL etkisi ve kayıt seçim davranışıyla birlikte işletilir.
Weight değeri number olarak tanımlanır ve integer olarak kullanılır. Ondalıklı değer girilirse yuvarlanır. Weight oranları mutlak yüzde değil, kayıtlar arasındaki göreli paydır.
Weighted round-robin ve weighted random algoritmaları kayıt listesi ile weight haritasını birlikte kullanır. Her kayıt için indekslenmiş weight değerleri üretilir. Bu yapı DNS yanıt üretiminde seçici fonksiyon tarafından değerlendirilir.
Konfigürasyon değişiklikleri debounced canlı yenileme sürecinden geçer. Tipik debounce değeri 3 saniyedir; yoğun ardışık değişikliklerde maksimum bekleme sınırı uygulanabilir. Bu davranış gereksiz sık render işlemlerini azaltır.
Weight değişimi yeni DNS sorgularında etkili olur. Daha önce yanıt almış istemci veya resolver'lar TTL bitene kadar eski kaydı kullanabilir. Bu nedenle geçiş planlarında TTL, weight kadar önemli bir operasyon parametresidir.
Weight 0, kaydı etkin aday listesinden çıkarmak için kullanılır. Bu, kaydı tamamen silmeden bakım veya geçiş yapmayı sağlar. Geri almak için weight yeniden pozitif bir değere çekilir.
Bazı senaryolarda algoritma yerine sayı verilerek aday kayıt listesinden ilk N kayıt seçilebilir. Bu davranış basit ve deterministik kayıt sınırlama için kullanılabilir. Ağırlıklı dağıtım gerekmeyen özel durumlarda pratik bir seçenektir.
Yeni sürüm IP'sine düşük weight, mevcut sürüme yüksek weight verilir. Örneğin yeni sürüm yaklaşık %5 trafikle başlar; metrikler sağlıklıysa weight kademeli artırılır. Sorun görülürse yeni sürüm weight 0 yapılarak drain edilir.
Blue ortam aktifken green ortam düşük weight ile test edilir. Geçiş anında blue weight 0'a düşürülür, green tek aktif hedef haline gelir. Rollback gerektiğinde ağırlıklar tersine çevrilerek eski ortama dönülür.
İki landing page veya iki servis varyantı farklı IP kayıtlarıyla tanımlanır. Weight değerleri 1:1 yapılarak eşit test veya 9:1 yapılarak sınırlı deney kurgulanabilir. Sonuç analizine göre trafik oranı DNS seviyesinde değiştirilir.
Eski veri merkezi yüksek weight ile başlar, yeni veri merkezi düşük weight ile devreye alınır. Operasyon ekibi 100 → 80 → 50 → 20 → 0 gibi kademeli azaltma yaparak trafiği yeni merkeze taşır. TTL düşük tutulduğunda geçiş etkisi daha hızlı gözlemlenir.
Daha güçlü kurum servislerine yüksek weight, daha kısıtlı kaynaklara düşük weight atanır. Trafik dağılımı sunucu kapasitesiyle orantılı hale gelir. Operatör yalnızca weight değerlerini güncelleyerek dağıtımı kapasiteye göre yeniden şekillendirir.
Bakıma alınacak kurum servisinin weight değeri 0'a düşürülür. Yeni DNS sorguları bu hedefi almaz; daha önce cache'lenmiş yanıtlar TTL süresince yaşamaya devam eder. Bakım tamamlandığında weight yeniden pozitif değere çekilerek servis devreye alınır.
Canary, blue/green, A/B test ve veri merkezi taşıması için per-record weight ve canlı yenileme. Kendi ortamınızda canlı bir kurulumda gezdirelim.