DNS Derleme Süresinin Yarıya İndirilmesi ve Bellek Kullanımının Azaltılması

DNS Derleme Süresinin Yarıya İndirilmesi ve Bellek Kullanımının Azaltılması
audio-thumbnail
DNS Derleme Süresinin Yarıya İndirilmesi ve Bellek Kullanımının Azaltılması
0:00
/0

DNS Derleme Süresinin Yarıya İndirilmesi ve Bellek Kullanımının Azaltılması

DNS sistemlerindeki veri propagasyonu, hem hız hem de verimlilik açısından kritik bir süreçtir. Cloudflare, bu süreçte yaşanan performans sorunlarını çözmek için büyük bir yenilik yaparak DNS derleme süresini yarıya indirdi ve bellek kullanımını %85 oranında azalttı. Bu gelişmeler, özellikle artan veri hacimleriyle karşı karşıya kalan modern DNS ortamlarında büyük bir atılım olarak değerlendiriliyor.

DNS Propagasyon Sistemi ve Zone Builder

Cloudflare'ın DNS sistemlerindeki değişiklikler, bir DNS bölgesine (zone) yapılan her güncelleme ile başlar. Kullanıcılar DNS kayıtlarını DNS Records API'si veya kullanıcı arayüzü üzerinden değiştirirken, bu değişiklikler veritabanına kaydedilir. Ardından, bu veri değişiklikleri Kafka olayları olarak sisteme iletilir. DNS Kafka Aggregator, bu olayları toplayarak Zone Builder'a gönderir.

Zone Builder, bu olaylara göre, bir DNS bölgesinin güncel durumunu veritabanından okur, bu veriyi Cloudflare'ın global ağında kullanılan Quicksilver adlı dağıtılmış anahtar-değer depolama sistemine yazılabilir formata dönüştürür. Bu süreçte, yalnızca değişen veriler yazılır ve bu değişiklikler Quicksilver aracılığıyla tüm ağdaki sunuculara dağıtılmıştır.

Büyük Boyutlarda Zorlanan Tam Derleme

Orijinal Zone Builder, bir bölgenin durumunu veritabanından okuyarak tamamen yeniden oluşturabilme özelliğine sahipti. Bu, bir bölgenin neden değiştiğini bilmesine gerek duymadan güvenli bir şekilde çalışmasını sağlıyordu. Ancak bu yöntem, özellikle 10 milyonun üzerinde kayıtlı bölgelerde büyük sorunlar yaratıyordu.

Tam bir derleme, tüm DNS kayıtlarını okumayı, kodlamayı ve Quicksilver'daki mevcut anahtarlarla karşılaştırmayı gerektiriyordu. Bu süreçte, tüm bölge verisi bellekte tutuluyor ve bu da bellek kullanımını ciddi şekilde artırıyordu. Özellikle 20 milyon ve üzerinde kayıtlı bölgelerde, bu veri topluluğu belleğe sığmıyordu. Bu durumda, sistem performansını olumsuz etkiliyor, veri propagasyon süresini uzatıyordu.

Hedefe Yönelik Derleme: Güvenli ve Verimli Bir Çözüm

Bu sorunlara çözüm olarak, Cloudflare, sadece değişen alanları etkileyen bir hedefe yönelik derleme sistemine geçiş yaptı. Bu yöntemde, Zone Builder, yalnızca etkilenen verilerin yeniden oluşturulmasını sağlıyor. Ancak bu değişikliklerin güvenli olduğundan emin olmak için birkaç karmaşık sorun çözülmelidir.

1. Olayların Ne Değiştiğini Belirtmesi

Değişikliklerin neden yapıldığını belirlemek için, olay üreticileri güncellenecek alanların ve değerlerin ne olduğunu belirten bilgileri içermeye başladı. Bu sayede, bir DNS kaydı güncellendiğinde yalnızca o kaydın yeniden oluşturulması gerekiyor. Ancak bazı olaylar yalnızca bir zaman damgası değişikliği gibi genel bir değişikliği gösteriyorsa, bu durumda hedefe yönelik bir derleme yapılamaz ve tam bir derleme gereklidir.

2. En Küçük Güvenli Derlemeyi Seçmek

Hedefe yönelik derleme, sadece etkilenen verilerin yeniden oluşturulmasını sağlarken, aynı zamanda bu işlemin güvenli olduğunu garanti etmek gerekiyor. Bu süreçte üç ana soru cevaplanmalıdır: - Hangi DNS isimleri değişebilir? - Paylaşılan meta veri veya yayınlanan bölgelerin listesi değişebilir mi? - Quicksilver'dan hangi önceki durumlar kaldırılmalıdır?

Bu soruların cevaplanması, veri bütünlüğünü sağlayacak ve aynı zamanda sistem kaynaklarını etkin kullanacak şekilde hedefe yönelik derleme planlamasını mümkün kılıyor.

3. Paylaşılan Veri Yönetimi

Birden fazla bölge aynı adı paylaşabildiğinden, bazı veriler tüm bölgeler arasında paylaşılmaktadır. Örneğin, Universal SSL etkinleştirildiğinde, tüm bölgelerdeki CAA (Certification Authority Authorization) kayıtları etkilenebilir. Bu durumda, sadece bir bölgenin değişikliği, tüm bölgelerdeki verileri etkileyebilir. Bu nedenle, hedefe yönelik derleme planlaması, bu tür paylaşılan verileri dikkate almalıdır.

4. Veritabanındaki Değişikliklerin İzlenmesi

Olay alındığı sırada veritabanındaki durum değişmiş olabilir. Bu nedenle, hedefe yönelik derleme işlemi, veritabanındaki en son durumu doğru bir şekilde yansıtmalıdır. Bu süreçte, her olayın tarih ve zaman damgası bilgileri kullanılarak, hangi verilerin eski veya güncel olduğuna karar verilir.

5. Kafka Mesajlarının Kaybolmaması

Birden fazla olay aynı bölge için gelmiş olabilir. Bu durumda, olayların sırasının korunması ve her birinin işlenmesi gerekmektedir. Bu nedenle, iş planlayıcısı (scheduler), aynı bölgeye ait tüm işlerin birleştirilmesini sağlar ve bir Kafka mesajının kaybedilmediği bir şekilde işleyiş sağlar.

Sonuç: Hız ve Verimlilikte Büyük İyileşme

Bu gelişmeler sayesinde, Cloudflare, DNS derleme sürecindeki performansı önemli ölçüde artırdı. Özellikle, 20 milyon ve üzerinde kayıtlı bölgelerde tam derleme işlemi gerçekleştirildiğinde oluşan bellek kullanımını %85 oranında azalttı. Bu, sistemdeki yedekleme kapasitesini artırmış ve daha kısa bekleme süreleri sağladı.

Ayrıca, DNS değişikliklerinin Quicksilver'e yazılmasına kadar geçen süre, sistemdeki yedekleme süresini kısaltarak yarıya indirildi. Bu, kullanıcıların DNS değişikliklerinin ne kadar hızlı uygulandığını gösterir ve hem güvenlik hem de kullanıcı deneyimi açısından büyük bir avantaj sağlar.

Gelecek Perspektifi

DNS sistemlerinin büyümeye devam edeceği düşünüldüğünde, bu tür hedefe yönelik ve güvenli derleme sistemlerinin önemi giderek artacaktır. Cloudflare'ın bu gelişmeleri, hem teknik hem de uygulamalı açıdan diğer yapılandırmalara örnek olabilir. Gelecekte, daha büyük veri hacimleriyle karşı karşıya kalınacak ve bu sistemlerin hız, verimlilik ve güvenilirlik açısından sürekli gelişmesi gerekecektir.

DNS sistemlerindeki bu yenilikler, sadece performansı değil, aynı zamanda sistem kaynaklarının daha etkin kullanılmasını da sağlayarak, bulut ortamlarında daha güçlü ve rekabetçi çözümler sunmaya katkıda bulunuyor.