با افزایش حجم تغییرات در رکوردهای DNS، مدیریت مقیاسپذیری (Scalability) در زیرساختهای بزرگ به یک چالش حیاتی تبدیل شده است. Cloudflare اخیراً موفق شده است با بازطراحی فرآیند Zone Builder، میزان مصرف حافظه (Memory usage) را تا ۸۵ درصد کاهش داده و زمان تأخیر در انتشار تغییرات DNS را به نصف برساند.
چالش مقیاسپذیری در ساختهای کامل (Full Builds)
در مدل قدیمی، هر تغییر در یک زون (Zone)، منجر به یک Full Build میشد. این فرآیند تمام رکوردها را میخواند، کدگذاری میکند و در حافظه نگه میدارد تا با وضعیت فعلی مقایسه شود. برای زونهای بسیار بزرگ که شامل بیش از ۲۰ میلیون رکورد هستند، این روش نه تنها بسیار سنگین بود، بلکه در بسیاری از موارد، کل زون در حافظه (Memory) جا نمیشد. این مسئله باعث ایجاد گلوگاه در خط لوله (Pipeline) انتشار دادهها میشد.
راهکار: برنامهریز هدفمند و زمانبند جدید
تیم مهندسی Cloudflare با معرفی یک Targeted Build Planner و یک Scheduler جدید، فرآیند را از حالت “بازسازی کامل” به “بازسازی هدفمند” تغییر داد. این سیستم جدید میتواند کوچکترین و ایمنترین نوع ساخت را انتخاب کند که فقط بخشهای تغییر یافته را هدف قرار میدهد. این سیستم پنج نوع ساخت مختلف را مدیریت میکند:
- Resources only: بازسازی فقط رکوردهای خاص بدون تغییر در متادیتا (Metadata).
- Resources and metadata: بازسازی نامهای خاص به همراه متادیتای مشترک.
- Apex and metadata: بازسازی Apex زون و متادیتا.
- Purge: حذف کامل یک زون از انتشار.
- Full zone: بازسازی کامل (فقط در موارد غیرقابل اطمینان یا برای زونهای جدید).
بهبود عملکرد با استفاده از Kafka و Quicksilver
این فرآیند از طریق رویدادهای Kafka و ذخیرهساز توزیعشده Quicksilver مدیریت میشود. با استفاده از یک زمانبند (Scheduler) یکپارچه، تغییرات مربوط به یک زون با هم ترکیب میشوند تا از اجرای چندین ساخت مجزا برای یک هدف جلوگیری شود. همچنین، برای اطمینان از صحت دادهها، Cloudflare از یک سیستم Mirror استفاده میکند که خروجی ساختهای هدفمند را با ساختهای کامل مقایسه میکند تا از عدم وجود تفاوت در سطح بایت (Byte-for-byte) اطمینان حاصل شود.
نتایج عملیاتی و آماری
نتایج بهدست آمده نشاندهنده یک جهش بزرگ در کارایی زیرساخت است:
- کاهش مصرف حافظه: میانگین مصرف حافظه فعال از ۴۹ گیگابایت به ۷ گیگابایت (کاهش ۸۶ درصدی) رسیده است.
- کاهش تأخیر انتشار: زمان تأخیر در انتشار (Build completion delay) از میانگین ۷.۷ ثانیه به ۳.۳ ثانیه کاهش یافته است.
- کاهش Full Builds: بیش از ۹۲ درصد از ساختها اکنون به صورت هدفمند انجام میشوند و نیاز به بازسازی کامل زونها به شدت کاهش یافته است.