کلودفلر زمان بوت سرورها رو از چند ساعت به چند دقیقه رسوند
خلاصهٔ کاملتر
نویسندهها تعریف میکنن که بعد از یک بهروزرسانی روتین فریمور، بعضی از سرورهای «هسته» (core) کلودفلر — همون دیتاسنترهای مرکزی که کنترلپلین و بیلینگ و آنالیتیکس رو میچرخونن — بهجای چند دقیقه، حدود چهار ساعت طول میکشید تا دوباره بالا بیان. کاری که قرار بود یک روزه روی کل ناوگان اجرا بشه، چند روزه شده بود و تیمها باید آپگرید رو دستی بِبِیسیت میکردن.
اول شک کردن که آپدیت یک باگ آورده، ولی با نگاه به کنسول سریال دیدن سختافزار سالم بالا میاد و بعد سرور سرِ مرحلهٔ بوت شبکه گیر میکنه. ماجرا این بود: فریمور داشت یکییکی رابطهای بوت رو امتحان میکرد — اول HTTPS روی IPv4، تایماوت، بعد iPXE روی IPv4، تایماوت، و همینطور تکرار، تا بالاخره به رابط IPv6 که واقعاً جواب میداد میرسید. هر تلاش ناموفق حدود ۵ دقیقه میسوزوند و چون هر آپگرید فریمور یک ریبوت جدا لازم داره، این جریمهها روی هم تلنبار میشد تا نزدیک ۴ ساعت.
راهحل ساده بود: حذف حدس زدن. بهجای اینکه سیستم کورکورانه همهٔ رابطها رو بگرده، ترتیب رابط بوت درست از همون ابتدای مرحلهٔ pre-boot برای هر نوع سختافزار/کاربرد صریح اعلام بشه.
اما عملی کردنش راحت نبود و به چند مانع خوردن. اول اینکه نسخههای قدیمیتر UEFI ترتیبدهی بوت رو پشتیبانی نمیکردن. دوم اینکه تنظیمات معمولاً بعد از هر آپگرید فریمور ریست میشد، برای همین یک مرحلهٔ اعتبارسنجی وضعیت اضافه کردن که اگه دید تنظیمات عوض شده، دوباره اعمالشون کنه و ریبوت بزنه. حتی یک تنظیم تغییرناپذیر از طرف سازندهٔ سختافزار جلوی عوض کردن ترتیب رو میگرفت که برای رفعش به یک نسخهٔ BIOS جدید از وندور نیاز شد. رشتههای متفاوت کارتهای شبکهٔ مختلف هم باعث ناهماهنگی میشد، که با تطبیق الگوی wildcard دورش زدن.
نتیجهٔ نهایی چشمگیر بود: زمان اتوماسیون آپگرید فریمور از نزدیک ۴ ساعت به ۳ دقیقه و یک بوت تکی از حدود ۲۰ دقیقه به کمتر از یک دقیقه رسید. حالا یک ایمیج BIOS واحد همهٔ SKUها رو سرویس میده و کل جریان از iPXE اجرا میشه بدون نیاز به دست زدن دستی به BIOS.
نکات کلیدی:
- ریشهٔ کندی، جستوجوی خطی فریمور بین همهٔ رابطهای بوت شبکه بود
- هر تایماوت ~۵ دقیقه و چند ریبوت پشتسرهم، کل بوت رو به ~۴ ساعت میرسوند
- راهحل: اعلام صریح ترتیب رابط بوت در مرحلهٔ pre-boot بهجای حدس زدن
- موانع: UEFI قدیمی، ریست شدن تنظیمات بعد آپگرید، و رشتههای متفاوت کارت شبکه
- زمان آپگرید فریمور از ~۴ ساعت به ۳ دقیقه رسید




