چرا حوادث نرمافزار ابری هیچوقت تموم نمیشن
خلاصهٔ کاملتر
لورین هاکستاین تو این پست، رشتههای مشترکِ گزارشهای حوادث بزرگ نرمافزار ابری رو کنار هم گذاشته و اسمشون رو گذاشته «ریسکهای همیشهحاضرِ دسترسپذیری»؛ ریسکهایی که به اعتقادش اساساً اجتنابناپذیرن. سه تا حوزهٔ اصلی هست که بیشتر حوادث توشون جا میشن: اشباع، شبکه و امنیت.
اشباع یعنی وقتی یه بخش از سیستم به سقف منابعش میخوره. این دغدغهٔ اول نویسندهست، مخصوصاً روی دیتابیس؛ چون بازگردوندن دیتابیس پروداکشنی که زیر بار له شده سخته و حتی تشخیص اینکه دقیقاً چه مشکل کاراییای داری هم کار سادهای نیست. به همین خاطر داشتن تخصص عملیات دیتابیس داخل تیم رو حیاتی میدونه. ریشهٔ ماجرا هم سادهست: منابع محدودن و بالاخره یکیشون تموم میشه.
تو حوزهٔ شبکه ممکنه همهٔ زیرسیستمهای داخلی سالم گزارش بدن، ولی سایت از دید کاربر پایین باشه چون بستهها اصلاً بهش نمیرسن. بستهها یا black-hole میشن (یعنی بیسروصدا دور ریخته میشن) یا به سرویسی میرن که ظرفیت جواب دادن نداره، که اون وقت یه مشکل اشباع هم روش سواره. DNS نمونهٔ کلاسیکشه: تا وقتی کلاینت ندونه بسته رو به کدوم IP بفرسته، هیچی به مقصد نمیرسه.
امنیت هم یه معاملهٔ ذاتی با دسترسپذیری داره: دسترسپذیری یعنی آدمهای خوب بتونن وارد بشن و امنیت یعنی آدمهای بد نتونن. پس همیشه این خطر هست که سیستم امنیتی، کاربر مشروع رو هم ببنده. نویسنده مثال میزنه که اگه یه زیرسیستم امنیتی داخلی خراب بشه، باید از قبل تصمیم گرفته باشی fail closed میشی یا fail open. انقضای گواهی SSL هم همون الگوئه: سازوکاری امنیتی که چون تمدید نشده، دسترسی درست رو قطع میکنه.
دو ریشهٔ دیگه هم اضافه میکنه. اول تغییرات ضروری ولی کمتکرار: مداخلهٔ دستی برای رفع یه مشکل کوچیک، و مهاجرت. اینها چون کم پیش میان، نه ابزار پخته دارن نه آدم باتجربه، و به گفتهٔ نویسنده هر اقدام اپراتور یه قماره که میتونه اوضاع رو بدتر کنه. تو مهاجرت هم بعد از n-1 تغییر بیدردسر، اعتماد آدم از ایمنی واقعی کار جلو میزنه.
ریشهٔ آخر، رشد ناگزیر پیچیدگی ذاتیه. تکنیکهای قابلیتاطمینان مثل retry، محدودسازی همزمانی، autoscaling، failover خودکار، circuit breaker و health check همه به سیستم پیچیدگی اضافه میکنن، چون طبق قانون اشبی کنترلکنندهای که سناریوهای بیشتری رو پوشش بده خودش باید پیچیدهتر بشه. یعنی همون زیرسیستمهایی که برای پایداری اومدن، میتونن خرابیهای تازه بسازن. نویسنده مهاجرت تدریجی رو به big-bang ترجیح میده، هرچند تدریجی یعنی مدتی هر دو سیستم همزمان زندهن و پیچیدگی موقتاً بالا میره.
نکات کلیدی:
- سه حوزهٔ اصلی حوادث: اشباع (دیتابیس)، شبکه (DNS) و امنیت (انقضای گواهی SSL)
- بازیابی دیتابیس پروداکشنِ اشباعشده سخته؛ تخصص عملیات دیتابیس داخل تیم حیاتیه
- زیرسیستم امنیتی خراب، انتخاب بین fail closed و fail open رو تحمیل میکنه
- تغییرات کمتکرار مثل مهاجرت و مداخلهٔ دستی، نه ابزار پخته دارن نه آدم باتجربه
- مهاجرت تدریجی از big-bang امنتره، ولی مدتی هر دو سیستم همزمان زندهن
- طبق قانون اشبی، کنترلکنندهای که سناریوهای بیشتری رو پوشش بده خودش پیچیدهتر میشه




