Chaos Monkey: ابزاری اپن‌سورس جهت تست نرم‌افزار


Chaos Engineering یک متودولوژی در صنعت توسعهٔ نرم‌افزار است که با استفاده از آن دولوپرها این اطمینان را حاصل می‌کنند که اپلیکیشن پس از دیپلوی شدن روی سرورهای اصلی چه‌قدر توانایی تحمل شرایط غیرطبیعی و نامعمول را دارا است که چنین قابلیتی اصطلاحاً تحت عنوان Resiliency شناخته می‌شود؛ به عبارتی، سرویس آنلاین ما باید به گونه‌ای طراحی شده باشد که به خوبی از پسِ مشکلات زیرساختی، شبکه‌ای و نرم‌افزاری برآید. به زبانِ ساده، Chaos Engineering به توسعه‌دهندگان امکانی می‌دهد تا آنچه را که فکر می‌کنند پس از ایجاد یک مشکل در سرورها رخ خواهد داد را به خوبی اعتبارسنجی کنند.

اولین کسی باشید که به این سؤال پاسخ می‌دهید

در سال 2010 نت‌فلیکس به سمت کلود مهاجرت کرد و این در حالی بود که در فضای ابری این نیاز احساس می‌شد تا بتوان سرورها را در هر زمانی کانفیگ، تعمیر و تعویض کرد و نیاز به توضیح نیست برای سرویسی همچون نت‌فلیکس که در هر لحظه میلیون‌ها کاربر آنلاین دارد چنین کاری چالش‌های خاص خود را داشت که در همین راستا مهندسین این شرکت در سال 2011 ابزار Chaos Monkey را طراحی کردند.

Chaos Monkey ابزاری اپن‌سورس است که توسط مهندسین کمپانی Netflix طراحی شده است که این امکان را در اختیار توسعه‌دهندگان قرار می‌دهد تا عمداً بخش‌هایی از سرویس آنلاین همچون ماشین‌های مجازی یا کانتینرهای خود که روی AWS قرار دارند را از کار بیندازند تا در نهایت متوجه شوند که اگر اپلیکیشن واقعاً در چنین شرایطی قرار گیرد چه‌قدر انعطاف‌پذیر است (این ابزار با سرویس‌هایی همچون AWS ،Google Compute Engine ،Azure ،Kubernetes و Cloud Foundry سازگار است.)

چنانچه یک میمون وحشی را در یک دیتاسنتر رها کنیم، آنچنان خرابی‌های زیادی به بار خواهد آورد که می‌تواند یک سرویس آنلاین جهانی همچون نت‌فلیکس را از کار بیندازد و وجه‌تسمیهٔ Chaos Monkey نیز از همین قرار است به طوری که معادلی همچون «میمونی که هرج‌ومرج به راه می‌اندازد» می‌توان برای این اصطلاح در نظر گرفت.

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

پس از موفقیت‌آمیز بودن این ابزار، کمپانی نت‌فلیکس مجموعه ابزارهایی تحت عنوان Simian Army را به منظور عملیاتی کردن انواع و اقسام تست‌های نرم‌افزاری در فضای کلود را ابداع کرد که Chaos Monkey نیز یکی از آن‌ها است که مجموع این ابزارها به مهندسین این شرکت کمک می‌کنند تا امنیت، انعطاف‌پذیری و همچنین قابل‌اعتماد بودن اپلیکیشن را تست کنند (به طور مثال، Chaos Gorilla یکی از زیرشاخه‌های این مجموعه نرم‌افزارها است که مسئولیت شبیه‌سازی از دست خارج شدن دیتاسنتر در یک ناحیهٔ جغرافیایی خاص را بر عهده دارد.)