هندسة الفوضى هي التسبب المتعمد والمتحكم فيه للفشل في بيئة الإنتاج أو ما قبل الإنتاج لفهم تأثيرها وتخطيط وضعية دفاعية أفضل واستراتيجية صيانة الحوادث.
كل يوم يمثل فرصة جديدة لفشل تطبيق أو بنية تحتية حاسمة للمؤسسة، مما قد يهدد قدرتها على تقديم الخدمات للعملاء. يمكن أن تتنوع أسباب الفشل بين عدة مشكلات، بما في ذلك اختراق الأمن أو التكوينات الخاطئة أو انقطاع الخدمة. يمكن أن تزداد احتمالية حدوث أخطاء أو اضطرابات مع استضافة المزيد من التطبيقات والبيانات في البيئة السحابية، مما قد يؤدي إلى زيادة في المشكلات الأمنية.
وإحدى الطرق لمعالجة الاضطرابات هي هندسة الفوضى. فهي ليست عملية عشوائية يقوم فيها المهندسون بإنهاء مثيلات أو خدمات أو التسبب في تعطل الأنظمة دون أي غرض. تحدد هذه العملية المشاكل المستقبلية المحتملة، مما يسمح للفرق الهندسية بحل المشاكل بشكل استباقي وتجنبها في البيئة الحية مستقبلًا.
تعد هندسة الفوضى مهمة لأن الخطأ أو الاضطراب يمكن أن يبطئ زخم المؤسسة، مما يؤدي إلى إضاعة وقت ثمين في اكتشاف حل سريعًا مع زيادة فترة التعطل. وقد تعلمت Netflix هذا المفهوم عن كثب عندما تحولت من البيئة المحلية إلى السحابية1- فقد واجهت انقطاعًا أدى إلى انقطاع الخدمة لمدة ثلاثة أيام في عام 2008.
وقد سبق هذا الانقطاع التحول إلى عملية بث مقاطع الفيديو، وهو ما كان سيجعل هذا الانقطاع أكثر تكلفة بشكل كبير. ونتيجة لذلك، قررت Netflix أن تبذل قصارى جهدها لتقليل الاضطرابات، وبدأت في إدخال هندسة الفوضى في مهام سير العمل لديها. تسمح لهم هذه العملية بتحديد المشكلات قبل حدوثها وتقليل الضرر في حالة حدوث عطل لا يمكن تجنبه.
أنشأت Netflix برنامج Chaos Monkey2، وهو أداة مفتوحة المصدر تعمل على إنشاء حوادث عشوائية في خدمات تكنولوجيا المعلومات والبنية التحتية بهدف تحديد نقاط الضعف التي يمكن إصلاحها أو معالجتها من خلال إجراءات الاسترداد التلقائية. لقد طبقوا "chaos monkey" عند الانتقال من مركز البيانات الخاص إلى خدمات أمازون السحابية (AWS) استجابةً لعدم الموثوقية من السحابة. تستخدم العديد من المؤسسات الآن Chaos Monkey لإجراء تجارب هندسة الفوضى الخاصة بها.
تُعد هندسة الفوضى وسيلة دفاع مهمة ضد أعطال البنية التحتية أو انقطاع التيار الكهربائي أو فقدان المكونات في بيئة إنتاج المؤسسة. فهي تساعد مهندسي موثوقية الموقع (SREs) وأعضاء آخرين في فريق عمليات التطوير على توفير تسليم مستمر للخدمات من خلال تجنب الانقطاعات الكبيرة في الخدمة. وتساعدهم هندسة الفوضى على فهم نقاط ضعفهم بشكل أفضل وتوضح لهم كيفية تقليل التأثير في حالة حدوث عطل.
حتى مشكلة صغيرة في التعليمات البرمجية يمكن أن يكون لها تأثير كارثي على بيئة الإنتاج الإجمالية نظرا لتبعيات البرنامج المختلفة. على سبيل المثال، يمكن أن يؤدي خطأ في نظام برمجيات المعاملات لشركة خدمات مالية إلى خسارة ملايين الدولارات3 .
قد لا تتمكن المؤسسات من تجنب جميع حوادث تكنولوجيا المعلومات، ولكن يمكنها تقليل الأضرار باستخدام إدارة الفوضى لفهم السيناريوهات المحتملة وأفضل الحلول الممكنة لها.
يجب على المؤسسات ذات المرونة العالية والنضج الرقمي وقابلية الملاحظة العالية من خلال لوحات المعلومات والأدوات الأخرى تبني هندسة الفوضى، حيث يمكنها اتخاذ إجراءات فورية بشأن المشكلات التي تحدث من خلال التجارب. يمكن أن تستغرق المؤسسات التي تفتقر إلى قابلية الملاحظة4 وقتًا طويلًا لحل التجارب التي تنشئها من خلال هندسة الفوضى.
تعد هندسة الفوضى أيضًا أمرًا ضروريًا للمؤسسات التي تستخدم السحابة، وخاصة السحابة العامة والتطبيقات السحابية الأصلية. تُقدِّم السحابة العامة مشكلات محتملة في الانقطاع تتطلب التنسيق مع مزود السحابة، مما يخلق نهجًا مختلفًا عن التعامل مع المشكلات في البيئة المحلية.
لا تزال الشركات التي تستخدم السحابة تتعامل في كثير من الأحيان مع حوادث تكنولوجيا المعلومات دون مراعاة كيفية تأثير السحابة والبرمجيات كخدمة (SaaS) على تلك الحوادث بشكل مختلف وفقًا لـ Constellation Research55.
بالإضافة إلى ذلك، فإن زيادة استخدام الخدمات المصغرة، والتي تزيد من عدد المضيفين أو الحاويات التي تعمل في النظام، يخلق تحديات فريدةيمكن اكتشافها وحلها من خلال تجارب الفوضى. إنها تنقل التعقيدات من تصميم الكود إلى عمليات النظام، ولا تلغي التعقيدات ولكن تسمح بمزيد من الأتمتة.
يمكن أن تساعد هندسة الفوضى أيضًا المؤسسات على تحسين سرعة مسارات التكامل المستمر والتسليم المستمر (CI/CD). دمج هندسة الفوضى في CI/CD كما فعلت Netflix6 يتيح لمؤسسات أتمتة التجارب المستمرة مع التحكم في تأثيرها المحتمل.
وأخيرًا، فإن حقيقة أن المؤسسات تتواصل بشكل متزايد مع الشركاء من خلال واجهات برمجة التطبيقات تعني أن المشكلة في أنظمتها قد يكون لها تأثير متسلسل على المؤسسات الأخرى. يساعد نشر هندسة الفوضى المؤسسات على فهم نقاط الضعف في بنيتها وتصحيحها، مما يؤدي في النهاية إلى خلق القدرة على توقع الأعطال المستقبلية.
تساعد هندسة الفوضى الناجحة المؤسسة على تقليل الأعطال الفنية التي لها تأثير كبير على العملاء، كما أنها تدعم بناء بُنى أنظمة معقدة وأكثر مرونة. بمجرد أن تقرر المؤسسة متابعة هندسة الفوضى، فإن الخطوة التالية هي تحديد ما إذا كان سيتم تنفيذها في بيئة ما قبل الإنتاج أو بيئة الإنتاج.
لدى فرق عمليات التطوير العديد من الخيارات لإجراء تجارب هندسة الفوضى لاختبار عمليات النظام المختلفة.
يتطلب إنشاء عملية هندسة الفوضى المثالية عدة مبادئ لضمان قدرة المؤسسة على الحصول على نظام موزع على نطاق واسع.
يجب على المؤسسة التي تستخدم هندسة الفوضى أن تقرر ما إذا كانت ستستخدم اختبار الفوضى في بيئات الإنتاج أو ما قبل الإنتاج. هناك عدة أسباب تجعل هندسة الفوضى أكثر فائدة في بيئات الإنتاج.
توفر البيئات الحية البيئة الأكثر دقة لفهم كيفية تأثير الحادث على تجربة العميل. وهناك سبب آخر هو أن بيئة ما قبل الإنتاج قد لا تحتوي على الإعدادات الدقيقة مثل البيئة الحية، وبالتالي إدخال بعض التباين في التجارب.
على سبيل المثال، قد لا يؤدي وقوع حادث في بيئة ما قبل الإنتاج إلى استجابة واقعية لأنها تفتقر إلى نفس مستويات حركة البيانات مثل البيئة الحية. فهي قد لا تحتوي على تكوينات الأمان نفسها في تلك البيئة.
تخشى بعض المؤسسات من التسبب عمدًا في مشكلات في موقعها المباشر، لذلك تجري تجاربها على موقع ما قبل الإنتاج أو التطوير. هذا يضمن أن أي مشكلات تحدث لا تؤثر على تجربة العملاء المباشرة. للتخفيف من ذلك ، تبدأ بعض المؤسسات في بيئات ما قبل الإنتاج للتعامل مع العملية قبل الانتقال إلى بيئة الإنتاج المباشر.
تختار المؤسسات البيئة التي ستستخدمها بناءً على مدى تحملها للمخاطر. في النهاية، تهدف هندسة الفوضى إلى اختبار المشكلات الفعلية واسعة النطاق، وهذا هو السبب في أن بيئات الإنتاج تعطي الصورة الأكثر دقة لما يحدث وما يتطلب الإصلاح.
توفر هندسة الفوضى للمؤسسات العديد من الميزات الرئيسية.
لدى العملاء توقعات عالية حول توفر الخدمات التي يشترونها من الشركات. فترة التعطل أو عدم القدرة على الوصول إلى ما دفعوا ثمنه يمكن أن يكون لها تأثير خطير على رضا العملاء، مما يؤدي إلى خسارة الإيرادات وإلحاق الضرر بالسمعة. إن اختبار الأنظمة وتحديد الحلول يعني أن هناك خطرًا أقل من تعطل النظام لفترة طويلة من الوقت.
يمكن أن تأتي الاضطرابات من تعليمات برمجية غير صالحة، أو مشكلات في الخادم، أو تهديدات خارجية. يمكن لهذا الأخير أن يضرب حتى مع ممارسات أمنية ممتازة. تساعد هندسة الفوضى في تحديد المشكلات التي يمكن استغلالها، حتى تتمكن المؤسسة من إدخال تصحيحات وإصلاحات للأخطاء للحفاظ على أمان خدماتها.
تمكّن هندسة الفوضى المؤسسة من إنشاء مخطط أكثر استنارةً لكيفية معالجة المشكلات التي ستحدث في المستقبل. سيكون لدى المؤسسة التي تتبنى هندسة الفوضى خطط ألعاب محددة للعديد من الحوادث، مما يتيح إصلاحًا أسرع وتقليل فترة التعطل. يمكن أن تؤدي هندسة الفوضى إلى تقليل فترة التعطل7 بنسبة تصل إلى 20%.
تحدد تجارب هندسة الفوضى كيفية تخصيص النظام للموارد. ستوضح التجارب المقدمة كيفية تعامل النظام مع الأحمال، مع توضيح الأماكن التي تحدث فيها الاختناقات أو من المحتمل أن تحدث فيها.
تساعد هندسة الفوضى الفرق على بناء مرونة وقدرة على التكيف أكبر للنظام في برمجياتهم. وبالتالي، يمكن للمؤسسات أن تقترب من ترميز برامج وحلول جديدة بشكل أكثر ذكاءً لأنها تعرف كيف يتعامل النظام الحالي مع المشكلات.
1 Chaos Engineering: System Resiliency in Practice (link resides outside ibm.com), Casey Rosenthal, Nora Jones, 2020.
2 What is Chaos Monkey? Chaos engineering explained (link resides outside ibm.com), InfoWorld, 13 May 2020.
3 Knight Capital Says Trading Glitch Cost It USD 440 Million (link resides outside ibm.com), New York Times, 2012.
4 There Is No Resilience without Chaos (link resides outside ibm.com), The New Stack, 13 Apr 2023.
5 Incident Management in the Cloud Era (link resides outside ibm.com), Constellation Research, 2023.
6 ChAP: Chaos Automation Platform (link resides outside ibm.com), Netflix Blog, 26 July 2017.
7 The I&O Leader’s Guide to Chaos Engineering (link resides outside ibm.com), Gartner, 28 October 2021.