کلودفلر گزارشی جامع از علتیابی اختلال بزرگ ۱۲ سپتامبر ۲۰۲۵ منتشر کرده است؛ اختلالی که باعث از دسترس خارج شدن داشبورد و APIهای این شرکت بهمدت بیش از یک ساعت شد.
طبق اعلام شرکت، منشأ حادثه یک باگ نرمافزاری در داشبورد بود که در ترکیب با بهروزرسانی یک سرویس داخلی حیاتی، باعث زنجیرهای از خطاها شد.
این اتفاق با انتشار نسخه جدید داشبورد کلودفلر آغاز شد. در گزارش آمده که این بهروزرسانی شامل یک باگ در کد React بود که باعث فراخوانی مکرر و بیشازحد به سرویس داخلی Tenant Service API شد؛ سرویسی که وظیفه اصلی آن مدیریت مجوزدهی به درخواستهای API است.
باگ در یک hook بهنام useEffect قرار داشت که اشتباه پیکربندی شده و باعث میشد در هر تغییر وضعیت، درخواست جدیدی ارسال شود. این حلقه درخواستها درست همزمان با بهروزرسانی خود سرویس Tenant Service رخ داد.
نتیجه آن ایجاد پدیدهای موسوم به thundering herd بود که سرویس جدید را تحت فشار قرار داده و باعث شکست و بازیابی ناقص آن شد. از آنجایی که Tenant Service برای تأیید همه درخواستهای API ضروری است، اختلال آن منجر به قطعی گسترده داشبورد و APIها از ساعت ۱۷:۵۷ UTC شد.
واکنش و بازیابی
تیمهای مهندسی کلودفلر ابتدا متوجه افزایش بار روی Tenant Service شدند و برای کاهش فشار، محدودیت نرخ جهانی (rate-limit) را اعمال کرده و تعداد پادهای Kubernetes سرویس را افزایش دادند. این اقدامات دسترسی جزئی به API را بازگرداند اما داشبورد همچنان از کار افتاده بود.
در ساعت ۱۸:۵۸ UTC تلاش برای وصله سرویس و رفع مسیرهای خطادار نهتنها کمکی نکرد، بلکه موجب یک اختلال کوتاهمدت دیگر شد. این تغییر سریعاً بازگردانده شد و در نهایت سرویس کامل در ساعت ۱۹:۱۲ UTC بازیابی شد.
نکته مهم اینکه اختلال تنها در control plane (بخش مدیریت و پیکربندی) رخ داد و data plane (که مسئول پردازش ترافیک کاربران است) بهطور کامل جدا و بدون مشکل باقی ماند؛ بنابراین خدمات کاربران نهایی قطع نشد.
اقدامات پیشگیرانه
کلودفلر پس از حادثه اعلام کرد اقداماتی برای جلوگیری از تکرار انجام خواهد داد:
-
مهاجرت سرویس Tenant به Argo Rollouts برای بازگشت خودکار نسخه در صورت بروز خطا؛
-
افزودن تأخیر تصادفی در منطق retry داشبورد برای جلوگیری از مشکل thundering herd؛
-
افزایش چشمگیر منابع اختصاص یافته به Tenant Service؛
-
بهبود پایش ظرفیت سرویس برای ارائه هشدارهای پیشگیرانه.
یک نظر