Klasik DNS round-robin eşit dağıtır; modern geçişlerde trafik yüzdesi gerekir.
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.
Yaklaşımımız
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.
Weighted round-robin ile kayıtlar ağırlık oranına göre döner
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 istatistiksel yüzdelik seçim sağlar
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.
Live update yeni DNS sorgularında hızla etkili olur
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.
Weight 0 drain davranışıyla hedef yanıttan düşer
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.
Yetenekler
Ağırlıklı DNS, kayıt bazlı weight değerlerini algoritma, canlı güncelleme, topology ve bakım senaryolarıyla birlikte yönetir.
Her DNS kaydı için ayrı integer weight değeri tanımlanır
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 algoritması kontrollü ve dengeli dağıtım sağlar
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 algoritması istatistiksel oranlı trafik seçimi yapar
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ğişiklikleri canlı yenileme ile yeni sorgulara yansır
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.
TTL planlaması hızlı geçiş ve rollback için kritik kalır
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.
Weight 0 ile kayıt fiilen drain moduna alınır
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.
Veri merkezi ve IP seviyesindeki weight birlikte değerlendirilebilir
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.
Topology eşleşmesi sonrası weight aynı bucket içinde çalışır
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.
Klasik round-robin ve random algoritmaları da aynı modelde seçilir
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ı A ve AAAA kayıtlarında yakın hedef seçimi sunar
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.
Operasyonel derinlik
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 formatı
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 algoritma render davranışı
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.
Canlı yenileme gecikmesi
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.
TTL etkisi
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.
Drain davranışı
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.
First N seçimi
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.
Hangi senaryolarda kullanılır
Canary release ile yeni sürüme düşük trafik verme
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/green geçişte kontrollü DNS yönlendirme
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.
A/B test için iki hedef arasında oranlı dağıtım
İ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.
Veri merkezi taşımasında kademeli trafik aktarımı
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.
Kapasite bazlı yük dengelemesi
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ım drain ile kesintisiz servis geçişi
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.
Sık sorulanlar
Weighted round-robin ile weighted random arasındaki fark nedir?
Weight 0 ile kaydı silmek arasındaki fark nedir?
Weight değişikliği ne zaman etkili olur?
Canary release için önerilen TTL değeri nedir?
Topology ile weight birlikte kullanılabilir mi?
Float weight değeri girilebilir mi?
DNS seviyesinde trafik yüzdenizi kontrol altına alın
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.