Η πρόκληση της κλιμάκωσης στο DNS pipeline

Το σύστημα Zone Builder της Cloudflare αντιμετώπιζε σημαντικά σημεία συμφόρησης (bottlenecks) καθώς ο όγκος των DNS records αυξήθηκε δραματικά. Η παραδοσιακή προσέγγιση, που απαιτούσε πλήρη ανάγνωση και επαναμεταγλώττιση (rebuild) ολόκληρης της ζώνης για κάθε αλλαγή, κατέστη μη βιώσιμη για ζώνες με πάνω από 20 εκατομμύρια εγγραφές, οδηγώντας σε υπερβολική χρήση μνήμης και καθυστερήσεις στην προώθηση των αλλαγών στο Quicksilver.

Αρχιτεκτονική στοχευμένων builds

Η λύση βασίστηκε στην ανάπτυξη ενός στοχευμένου build planner, ο οποίος ταξινομεί τις αλλαγές σε πέντε κατηγορίες, από απλές ενημερώσεις πόρων (resources only) έως πλήρη rebuilds. Ο planner διασφαλίζει ότι εκτελείται μόνο το ελάχιστο απαραίτητο έργο, διατηρώντας παράλληλα την ακεραιότητα των δεδομένων. Η διαδικασία περιλαμβάνει:

  • Διαχωρισμό metadata και records: Επιτρέπει την ενημέρωση συγκεκριμένων DNS ονομάτων χωρίς να επηρεάζεται το συνολικό shared metadata της ζώνης.
  • Unified Scheduler: Ένας νέος scheduler συνδυάζει πολλαπλά events για την ίδια ζώνη, μειώνοντας τον αριθμό των builds και βελτιστοποιώντας το throughput του συστήματος.

Διασφάλιση ποιότητας και mirror testing

Για την ασφαλή μετάβαση, η ομάδα χρησιμοποίησε ένα mirror περιβάλλον που καταναλώνει το ίδιο Kafka stream με την παραγωγή, αλλά γράφει σε ένα απομονωμένο Quicksilver instance. Μέσω ενός dashboard σύγκρισης, επιβεβαιώθηκε ότι τα targeted builds παράγουν αποτελέσματα byte-for-byte πανομοιότυπα με τα πλήρη builds. Αυτή η προσέγγιση επέτρεψε την ασφαλή μείωση των χρόνων αναμονής (rebuild intervals) και την επίτευξη 12-πλάσιας μείωσης στα p99 spikes του build completion delay.