دانش

دلیل قطعی فیسبوک، اینستاگرام و واتساپ در چهارم اکتبر

توجه : مجله اینترنتی جی تابع قوانین ایران می باشد . تمامی مطالب درج شده در مجله اینترنتی جی ، اتوماتیک انجام میشود و کاربر انسانی در آن نقش ندارد ، در صورت وجود هر گونه محتوا نا مناسب ، یا دارای نقض از فرم انتهای مطلب ( فرم گزارش ) ما را در جریان بگذارید   

پس از قطعی ۶ ساعته پلتفرم‌های فیسبوک، اینستاگرام و واتساپ که همگی متعقل به مارک زکربرگ، میلیاردر مشهور سیلیکون ولی و صاحب فیسبوک هستند، سیل انتقادات به این مجموعه وارد شد.

این قطعی تاثیر مخربی بر بسیاری از کسب‌و‌کارها و البته سهام این ۳ شرکت و ثروت شخصی مارک زکربرگ گذاشت.

پس از رفع مشکل، Santosh Janardhan که از اعضای این مجموعه است، توضیحاتی را در سایتFacebook Engineering ارائه کرد که در ادامه آن‌ها را می‌خوانیم:

این قطعی از سیستمی ناشی می‌شد که شبکه جهانی ما را شکل می‌دهد (Backbone Network). سیستمی که برای اتصال تمام ادوات محاسباتی فیسبوک در سرتاسر جهان ساخته شده است. این سیستم متشکل از ده‌ها هزار کیلومتر کابل فیبر نوری است که تمام دیتاسنترهای ما در سرتاسر جهان را به هم متصل می‌کند.

دیتاسنترهای ما در انواع مختلفی وجود دارند. برخی از آن‌ها ساختمان‌های بسیار بزرگی هستند که از میلیون‌ها دستگاه برای ذخیره‌سازی داده‌ها و انجام محاسبات سنگین میزبانی می‌کنند. در نقطه مقابل، برخی دیگر مجموعه‌های کوچک‌تری هستند که سیستم اتصال و ارتباط (همان Backbone Network) ما را به اینترنت و افرادی که از پلتفرم‌ها استفاده می‌کردند وصل می‌کنند.

وقتی شما یکی از اپلیکشین‌های ما را روی تلفن همراه‌تان باز و پیام‌ها یا صفحه‌ فیدتان را لود می‌کنید، درخواستی از جانب اپلیکیشن به نزدیک‌ترین دیتاسنتر فرستاده می‌شود تا اطلاعات لازم را به موبایل شما ارسال کند.

این درخواست‌ها و اطلاعات از طریق Backbone Network به دیتاسنترهای عظیم فرستاده می‌شوند. به این ترتیب است که شما می‌توانید از اپلیکیشن‌های ما استفاده کنید و پیام‌ها و پست‌های دیگران را روی موبایل‌تان داشته باشید.

این حجم بالا از ترافیک بین مجموعه‌های محاسباتی، توسط روترها مدیریت می‌شوند. این دستگاه‌ها وظیفه دارند که بفهمند دیتاهای ورودی و خروجی باید به کجا فرستاده شوند. طبیعی است که چنین سیستم تبادل اطلاعاتی عظیمی نیاز به نگهداری دائمی دارد.  در برخی مواقع، مهندسین ما مجبور می‌شوند بخشی از این سیستم را از شبکه خارج کنند تا بتوانند تعمیرات و تغییرات لازم را اعمال کنند.

مثلاً تعمیر فیبر نوری، افزایش ظرفیت یا به‌روزرسانی نرم‌افزاری که روی روتر نصب شده است.

دلیل قطعی رخ داده در چهارم اکتبر هم همین نگهداری‌های همیشگی و روتین بود! طی انجام کار، یکی از فرمان‌های مرتبط با بررسی ظرفیت سیستم Backbone دچار مشکل شد. همین اتفاق به‌صورت ناخواسته تمام شبکه‌ را قطع کرد؛ به بیانی دیگر، تمام دیتاسنترهای فیسبوک در سرتاسر دنیا از دسترس خارج شدند.

البته ما از قبل برنامه‌هایی را برای جلوگیری از بروز چنین اتفاقاتی پیش‌بینی کرده بودیم، اما مشکل اصلی این بود که این برنامه‌ها هم دچار اختلال شدند و نتوانستند بر اجرای درست دستور مشکل‌ساز نظارت کنند.

این مشکل منجر به قطع کامل اتصال بین سرورها، دیتاسنترها و اینترنت شد. متاسفانه این قطعی همه‌جانبه، مشکل دیگری را ایجاد کرد که شرایط را از قبل هم بدتر کرد.

یکی از وظایف دیتاسنترهای کوچک‌تر ما، پاسخ به درخواست‌های DNS است. همان‌طور که می‌دانید، DNS مثل دفترچه تلفن دنیای اینترنت است. (می‌توانید مقاله DNS چیست را بخوانید)

به بیان ساده، وظیفه آن تبدیل نام سایتی است که ما در نوار آدرس مرورگرمان می‌نویسیم. تبدیل آن‌ها به آدرس آیپی که زبان کامپیوترها برای شناسایی یکدیگر است. نِیم‌سرورهای ما که آدرس‌های آیپی شناخته‌شده را در خود دارند، به این ترجمه‌ها پاسخ می‌دهند. سپس، توسط تبلیغات پروتکل دیگری با نام BGP به اینترنت نمایش داده می‌شوند.

جهت درستی انجام کل عملیات، اگر تبلیغات BGP نتوانند درست با دیتاسنترهای ما ارتباط برقرار کنند، سرور DNS برای جلوگیری از اتصال شبکه ناسالم، ارتباط را به‌طور کل قطع می کنند.

در قطعی اخیر، تمام Backbone از عملیات خارج شد. در نهایت، با وجود اینکه سرورهای DNS همچنان در حال فعالیت بودند، از دسترس خارج شدند. به همین خاطر، پیدا کردن سرورهای ما برای کل کامپیوترهای متصل به اینترنت غیرممکن شد.

تمام این اتفاقات در عرض یک چشم‌به‌هم زدن رخ داد. وقتی مهندسان ما شروع به‌ عیب‌یابی کردند، با دو مانع اصلی روبه‌رو شدند: اول اینکه امکان دسترسی به دیتاسنترها به شکل نرمال ممکن نبود؛ چراکه شبکه‌های آن‌ها از دسترس خارج شده بودند.

دوم اینکه قطعی DNS بسیاری از ابزارهایی که در این مسائل به ما کمک می‌کردند را هم از دسترس خارج کرد.

دسترسی اصلی ما به شبکه قطع شده بود. به همین خاطر مجبور شدیم مهندسین‌مان را به‌صورت حضوری به دیتاسنترها بفرستیم تا مشکل را رفع و سیستم‌ها را ری‌استارت کنند؛ اما خب انجام این کار زمان‌بر بود؛ چراکه تمام این فضاها با پروتکل‌های امنیتی سطح بالا محافظت می‌شوند. ورود به آن‌ها و انجام تغییرات روی روترها کاری نبود که بتوان آن را به‌سرعت انجام داد.

به‌محض اینکه سیستم Backbone Network ما به شبکه بازگشت و دیتاسنترهای‌مان مجدداً فعال شدند، پلتفرم‌ها هم به چرخه خدمات‌رسانی برگشتند؛ اما خب مشکل کاملاً رفع نشده بود.

برگشت سرویس‌ها در آن واحد و هجوم ترافیک شدید، می‌توانست منجر به ایجاد ایرادات جدید شود. گزارش‌هایی که از هر دیتاسنتر به دست می‌آمد، نشان می‌داد که مصرف برق تا ده‌ها مگاوات هم افزایش یافته و این می‌توانست به تمام دستگاه‌ها آسیب جدی وارد کند.

خوشبختانه برای این مشکل آمادگی کامل داشتیم. قبلاً بارها چنین شرایطی را شبیه‌سازی کرده بودیم. به همین خاطر توانستیم بازگشت ترافیک به پلتفرم‌های‌مان را به‌خوبی مدیریت کنیم. به‌‌طوری که بدون هیچ مشکلی این کار را انجام دادیم و حالا تمام سرویس‌ها بدون مشکل در حال فعالیت هستند.

خارج شدن سیستم Global Backbone برای ما تجربه‌ای شد که در آینده برای بروز چنین مشکلاتی هم آماده باشیم.

این اتفاقات ناخوشایند فرصت بسیار مناسبی برای یادگیری و بهتر شدن هستند و قطعی‌ای که پشت سر گذاشتیم برای ما دنیایی از تجربه به‌همراه داشت! بعد از وقوع هر مشکلی چه کوچک و چه بزرگ، متخصصین ما آن را از تمام جوانب بررسی می‌کنند تا دلیل بروز آن را کاملاً درک کنند و از رخ دادن دوباره آن جلوگیری کنند. به شما اطمینان می‌دهیم که پروسه یادگیری و کسب تجربه از این قطعی بزرگ، هم‌اکنون در حال اجرا شدن است.

ما برای اینکه جلوی دسترسی غیرمجاز به داده‌ها و دیتاسنترهای‌مان را بگیریم، پروتکل‌های قدرتمند و سخت‌گیرانه‌ای را اعمال کردیم. جالب اینکه همان سخت‌گیری‌ها، سرعت ما را برای برطرف کردن این مشکلات کاهش دادند. جالب‌تر اینکه مشکل پیش آمده یک حمله خارجی نبود و اشتباهی بود که از جانب خودمان سر زد. معتقدیم رخدادهای این‌چنینی باعث می‌شوند اهمیت سرعت ریکاوری کردن اطلاعات و رفع مشکل در کنار حفظ امنیت بیشتر به چشم بیاید.

از حالا به بعد، وظیفه ما اجرای تست‌های بیشتر و کامل‌تر و افزایش اعتبار سرور‌های‌مان است. به این ترتیب، می‌توانیم امکان وقوع چنین اتفاقات ناخوشایندی را تا بیشترین حد ممکن پایین بیاوریم.

منبع: Facebook Engineering


منبع




برچسب ها
مشاهده بیشتر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن