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

پس از آنکه بخشهای مستعد خطا را شناسایی کردید میتوانید ایراد را رفع کرده یا از آن بکاهید. این فرآیند شامل نظارت بر سیستم و ثبت اطلاعات نیز میشود تا سیستم، مشکل را هنگام بروز اختلال واقعی سریعتر تشخیص دهد. همچنین شاید لازم شود طراحی سیستم را تغییر دهید تا تابآوری بیشتری در برابر بروز خطا و اختلال نشان دهد.
اصول مهندسی آشوب چیست؟
اصول بنیادین مهندسی آشوب از آن مواردیست که باید پیش از پیادهسازی هر شبیهسازی در نظر گرفته شوند:
- برنامهریزی فرآیند: ابتدا باید مشخص کنید هدفتان از آزمایش چیست و این هدف چگونه انجام میگیرد. در این مرحله پرسشهایی درباره نقاط ضعف احتمالی سیستم به وجود میآیند؛ پرسشهایی همانند: امکان دارد چه بخشهایی در سیستم دچار مشکل شوند و چه آسیبپذیریهایی وجود دارند که منبع سوءاستفاده هستند؟ برای درک بهتر نقاط حیاتی کسبوکار، مقاله «آشنایی با RTO و RPO» میتواند کمککننده باشد.
- آزمودن سیستم: در مرحله دوم خطاهایی از عمد به سیستم افزوده میشوند تا عملکرد سیستم سنجیده شود. بدین طریق آگاهانه مشکلی در سیستم ایجاد میشود تا آسیبپذیریهای نهفته به چشم بیایند. در واقع اختلالی خودخواسته به سیستم افزوده میشود تا پیامدهای واقعه در شرایطی بیخطر مشخص شوند.
- تجزیه و تحلیل: در این مرحله دادههای حاصل از آزمایش به کار گرفته میشوند تا بخشهای مستعد خطا شناسایی شوند.
- ریشهیابی مشکل: اگر در روند آزمایش ایرادی پیدا شود مهندسان آشوب فرایند را متوقف کرده و تمرکز را بر رفع یا کاهش ایراد میگذارند. در غیر این صورت روند آزمایش تا زمان ریشهیابی مشکل ادامه مییابد.

مهندسی آشوب چه مزایایی دارد؟
شاید این پرسش پیش آید که چرا باید شرکتی از عمد سیستم خود را دچار اختلال کند؟ در جواب باید گفت که شناسایی نواقص، لازمه ساخت سیستمی مقاومتر است. مهندسی آشوب باعث جلوگیری از بروز قطعی و اختلال میشود. هنگامی که نقاط ضعف سیستم را پیش از مشکلساز شدن شناسایی و اصلاح کنید میتوانید از بروز اختلال پیشگیری کنید.
همچنین مهندسی آشوب مزایایی چشمگیر به مشتریان و کسبوکارها در جنبههای فنی میدهد. مهمترین مزیت آن توانمندسازی شرکتهاست تا محصولاتی پایدارتر تولید کنند. این امر ضمن کاهش هزینهها رضایت مشتریان را افزایش میدهد.
مهندسی آشوب که به آن آزمون تابآوری نیز گفته میشود شرکتها را با قانون تابآوری عملیاتی دیجیتال (یا به اختصار DORA) انطباق میدهد. هدف از مقررات دورا آزمودن منظم میزان تابآوری سیستمها به منظور ارزیابی آسیبپذیری آنهاست.
تفاوت مهندسی آشوب با تست عملکرد چیست؟
مهندسی آشوب در چند مورد با تست عملکرد تفاوت دارد. در مهندسی آشوب تلاش میشود بخشهای مستعد خطا پیش از مشکلسازشدن شناسایی شوند اما تست عملکرد تنها عملکرد سیستم را بر اساس معیارهایی خاص میسنجد. به بیان ساده مهندسی آشوب رویکردی پیشگیرانه دارد اما تست عملکرد صرفاً به بررسی سیستم میپردازد.
مهندسان آشوب به منظور جلوگیری از بروز قطعی و اختلال میکوشند خطاهای مطمئنی را به عمد وارد محیط سیستم کنند تا پیش از آنکه ایرادها مشکلساز شوند آنها را بیابند و اصلاح کنند. نتیجه این شبیهسازی نشان میدهد کدام بخشهای سیستم تابآوری بیشتری دارند و کدام بخشها نیاز به رسیدگی بیشتری دارند. همانطور که گفته شد تست عملکرد تنها تأیید میکند که آیا سیستم مطابق انتظار عمل میکند یا خیر.

در آخر باید گفت که مهندسی آشوب در هر پروژهای به کار برود باعث موفقیت آن پروژه میشود. توسعهدهندگان نرمافزار میتوانند مهندسی آشوب را در پروژهها به کار ببرند تا در گذر زمان بیشتر تاب بیاورند.
شناخت ضعفها، پیش از تبدیل شدن به بحران
مهندسی آشوب روشی برای آزمودن تابآوری سیستمها در شرایطی کنترلشده است. این رویکرد با ایجاد اختلالهای برنامهریزیشده، به تیمهای فنی کمک میکند نقاط ضعف زیرساخت را پیش از بروز مشکلات واقعی شناسایی و برطرف کنند. نتیجه این فرآیند، کاهش احتمال قطعیهای پیشبینینشده، بهبود پایداری سرویس و تصمیمگیری آگاهانهتر برای توسعه و نگهداری زیرساخت است. به همین دلیل، مهندسی آشوب امروزه به یکی از روشهای مؤثر برای افزایش قابلیت اطمینان سامانههای مدرن و آمادهسازی آنها در برابر خطاهای اجتنابناپذیر تبدیل شده است.
- آیا مهندسی آشوب باعث ایجاد اختلال در سرویسهای واقعی میشود؟
خیر. آزمایشهای مهندسی آشوب با برنامهریزی و در شرایط کنترلشده انجام میشوند. هدف از این آزمایشها شناسایی نقاط ضعف سیستم است، نه ایجاد اختلال برای کاربران. به همین دلیل، پیش از اجرای هر آزمایش، دامنه، اهداف و معیارهای توقف آن بهدقت مشخص میشود.
- مهندسی آشوب برای چه سازمانهایی مناسب است؟
مهندسی آشوب بیشتر برای سازمانهایی کاربرد دارد که سرویسهای آنلاین، زیرساختهای ابری یا سامانههای توزیعشده دارند و پایداری سرویس برای آنها اهمیت بالایی دارد. با این حال، هر سازمانی که بخواهد میزان تابآوری زیرساخت خود را ارزیابی و تقویت کند، میتواند از این رویکرد بهره ببرد.
- تفاوت مهندسی آشوب با تست عملکرد چیست؟
تست عملکرد بررسی میکند که سیستم در شرایط مشخص، مانند بار کاری بالا، مطابق انتظار عمل میکند یا خیر. اما مهندسی آشوب با ایجاد خطاهای کنترلشده، واکنش سیستم را در شرایط غیرعادی میسنجد تا آسیبپذیریهایی را که ممکن است در تستهای معمول آشکار نشوند، شناسایی کند.
این مقاله را به اشتراک بگذارید