عبارت منظمی که کلاودفلر را به خاموشی کشاند
روز سهشنبه 2 جولای (11 تیر) سرویسدهنده ابری Cloudflare برای مدتی با قطعی مواجه شد. به تبع آن، وبسایتهای متعددی در سطح جهان که از این سرویس استفاده میکردند نیز از دسترس خارج شدند.
روز سهشنبه 2 جولای (11 تیر) سرویسدهنده ابری Cloudflare برای مدتی با قطعی مواجه شد. به تبع آن، وبسایتهای متعددی در سطح جهان که از این سرویس استفاده میکردند نیز از دسترس خارج شدند. |
کلاودفلر چند قاعده را به فایروال وب (WAF) خود اضافه کرده بود تا بتواند کد جاوااسکریپت مخرب را تشخیص دهد. این قواعد از عبارات منظم (regular expression) استفاده میکردند. جان گراهام کامینگ مدیر فنی ارشد کلاودفلر توضیح میدهد: «یکی از این قواعد باعث شد مصرف CPU در همه ماشینهای ما به 100 درصد افزایش پیدا کند.» و از آنجا که سرویسهای کلاودفلر روی همه سرورهایش توزیع شدهاند، همه سرویسها با کمبود توان پردازشی مواجه شدند. |
مصرف 100 درصدی CPU که در ساعت 6:12* اتفاق افتاد، تقریبا همه چیز را از کار انداخت: DNS over HTTPS، شبکه تحویل محتوا (CDN) و…. در بدترین حالت، ترافیک عبوری از کلاودفلر 82 درصد کاهش داشت. هنگامی که کاربران میخواستند از سایتهای سرویسگیرنده از کلاودفلر استفاده کنند، با خطای “502 Bad Gateway” مواجه میشدند. حدود 20 دقیقه طول کشید تا علت مشکل پیدا شود. در نهایت در ساعت 6:39 دقیقه با غیرفعال کردن مجموعه قواعد مشکلساز، شرایط به حالت عادی بازگشت.
|
نقص در فرایندهای DevOps |
«ما تغییری را ایجاد میکنیم، این تغییر توسط یک انسان تایید میشود و پس از گذراندن فرایند تست، به طور جهانی عرضه میشود. و در این فرایند تست ما متوجه نشدیم که این تغییر میتوانست خرابی به بار بیاورد.» بعد از تست داخلی توسط کارکنان، بهروزرسانیها به گروه کوچکی از مشتریان عرضه میشود که «کمی با ما صمیمی هستند و کارهای شیطنتآمیزی انجام میدهند [محصول را به چالش میکشند].» و سپس محصول به طور تدریجی به بخش بزرگتری از جهان عرضه میشود. «و در این مورد، این اتفاق نیفتاد، وگرنه مشکل باید به راحتی کشف میشد.» در واقع، قواعد جدید به یکباره در سطح جهانی استقرار یافتند.
|
در اثر این حادثه، کلاودفلر به این نتیجه رسید که نیاز به تجدید نظر در فرایندهای DevOps خود دارد. کلاودفلر در پست وبلاگی خود مینویسد: «ما درک میکنیم که چنین حادثهای برای مشتریان ما بسیار دردناک است. فرایندهای تست ما در این مورد کافی نبودند و ما در حال مرور و ایجاد تغییرات در فرایند تست و استقرار هستیم تا از حوادث مشابه در آینده جلوگیری شود.»
|
* زمانها به وقت ایران محاسبه شدهاند. |