میمون آشوب ( Chaos Monkey ) یک نرمافزار است که به طور تصادفی نمونههایی از را در یک محیط تولید توزیعشده خاتمه ( Terminate ) میدهد تا نشان دهد مهندسان باید بر روی چه چیزی تمرکز کنند تا آن سیستمها را تا حد ممکن انعطاف پذیر کنند.
میمون آشوب ( Chaos Monkey ) یک نرمافزار است که به طور تصادفی نمونههایی از را در یک محیط تولید توزیعشده خاتمه ( Terminate ) میدهد تا نشان دهد مهندسان باید بر روی چه چیزی تمرکز کنند تا آن سیستمها را تا حد ممکن انعطاف پذیر کنند.
در سال 2010، نتفلیکس تصمیم گرفت سیستم های خود را به ابر، به ویژه به خدمات وب آمازون (AWS) منتقل کند. با این تصمیم، متوجه شد که هاستها ( Hosts ) میتواند در هر زمان پایین بیاید. برای آمادهشدن برای چنین احتمالی، توسعهدهندگان نتفلیکس Chaos Monkey را ایجاد کردند که به طور تصادفی هاستها را راهاندازی مجدد میکرد. در همان حال که آن راهاندازیهای مجدد تصادفی اتفاق میافتاد، مهندسان میتوانستند بهتر نقاط ضعف سیستم را به عنوان یک سیستم کامل و کلی کشف کنند. این همچنین مزیت اضافهای داشت که به مهندسان کمک میکرد تا بفهمند که آیا سیستم اصلاح خودکار آنها مطابق انتظار عمل میکند یا خیر.
با کمک Chaos Monkey، نتفلیکس درک بسیار بهتری از نحوه واکنش سیستم خود در برابر حذف اجزای مختلف داشت. این امر باعث شد تا مهندسان بتوانند سیستم ها را بهبود بخشند و از چنین اتفاقاتی جلوگیری کنند.
این خلق Chaos Monkey بود که ایده مهندسی آشوب ( Chaos Engineering ) را به وجود آورد.
در حدود سال 2011، نتفلیکس اعلام کرد که Chaos Monkey تکامل یافته و شامل یک ابزار اضافی به نام ارتش سیمیان ( Simian Army ) است. ارتش سیمیان مجموعه کاملی از ابزارهای شکستدهنده برای اضافهکردن قابلیتهای بسیار بیشتر از آنچه Chaos Monkey ارائه میکند است.
ابزارهای یافت شده در Simian Army عبارتند از Janitor Monkey (جستجو و دفع منابع استفاده نشده در فضای ابری)، Conformity Monkey (جستجوی موردهایی که با قوانین بازتعریف شده مطابقت ندارند و در صورت یافتن، خاتمه آنها ) و Security Monkey ( یافتن آسیب پذیری ها و نقضهای امنیتی احتمالی ).
هم Janitor Monkey و هم Conformity Monkey هم اکنون بخشی از Spinnaker هستند. همچنین مهم است که توجه داشته باشید که Chaos Monkey از استقرار هایی پشتیبانی نمی کند که توسط چیزی غیر از Spinnaker مدیریت می شوند، که یک راه حل CI/CD است. بنابراین اگر از Spinnaker استفاده نمی کنید، نمی توانید از Chaos Monkey استفاده کنید.
چند مزیت بسیار مهم برای استفاده از Chaos Monkey در نیازهای مهندسی آشوب شما وجود دارد. اول از همه، شما را برای خرابیهای تصادفی آماده میکند، بنابراین مهندسان شما وقتی مشکلی خراب میشود غافلگیر نمیشوند، زیرا سیستمهای پشتیبان و پروتکلهای پاسخ برای رویارویی با موارد احتمالی متعدد خواهید داشت.
مزیت دیگر این است که مهندسان شما را تشویق میکند تا افزونگی ( Redundancy ) را در سیستم های شما ایجاد کنند. بدون افزونگی، وقتی یک سیستم از کار می افتد، سیستم دیگری وجود نخواهد داشت که به طور خودکار جای آن را بگیرد.
البته، هنگام استفاده از Chaos Monkey به شما اطلاع داده نمیشود که چگونه یک مشکل را حل کنید، فقط مشکل وجود دارد. اما در دنیای سیستمهای توزیعشده، کشف مشکلات یکی از بزرگترین چالشها است.
("Hello World!") شریف رضوانی هستم، با افتخار یکی از اعضای تیم Front-End پایدار سامانه، مشتاق یادگیری تکنولوژیهای جدید و رویارویی با چالشهای تازه. تلاش میکنم که به قولی Zero Downtime باشم!
دیدگاه شما