
مهندس SRE - متدرب
أولا ، اسمحوا لي أن أقدم نفسي. أنا @ tristan.read ، مهندس أمامي في مجموعة Monitor :: Health في GitLab. في الأسبوع الماضي ، تشرفت بأن أكون متدربًا مع أحد مهندسي SRE العاملين لدينا. كان الهدف هو مراقبة كيفية استجابة المضيف للحوادث يوميًا واكتساب خبرة عمل حقيقية. نود من مهندسينا أن يفهموا بشكل أفضل احتياجات مستخدمي Monitor :: Health features .
اضطررت إلى متابعة مهندس SRE في كل مكان لمدة أسبوع. هذا هو ، حضرت نوبة العمل ، وشاهدت قنوات الإخطار نفسها وردت على الحوادث ، إذا ومتى حدثت.
حوادث
خلال الأسبوع وقعت 2 حوادث.
1. Cryptominer
يوم الأربعاء ، شهد GitLab.com قفزة في استخدامه لـ GitLab Runner ، بسبب محاولات استخدام دقائق العداء لاستخراج العملة المشفرة . لقد تعاملنا مع الحادث باستخدام أداتنا الخاصة لتحييد المخالفات ، مما أدى إلى إيقاف مهام العداء وحذف المشروع والحساب المرتبط به.
إذا لم يتم ملاحظة هذا الحدث ، لكانت الأداة الآلية قد اشتعلت ، ولكن في هذه الحالة ، كان مهندس SRE أول من لاحظ الانتهاك. تم إنشاء مهمة الحادث ، ولكن تم إغلاق المعلومات الموجودة عليها.
2. تدهور أداء تطبيقات الكناري والرئيسية
نتج الحادث عن التباطؤ وزيادة معدل الأخطاء في تطبيقات الويب الرئيسية والكنارية على Gitlab.com. تم انتهاك عدة قيم Apdex.
مهمة الحادث المفتوحة: https://gitlab.com/gitlab-com/gl-infra/production/issues/1442
النتائج الرئيسية
فيما يلي بعض النقاط التي تعلمتها خلال أسبوع الخدمة.
1. تنبيهات تكون مفيدة للغاية عندما يتم الكشف عن تشوهات.
يمكن تقسيم التنبيهات إلى عدة أنواع:
- حدثت تنبيهات تستند إلى قيمة حدية محددة مثل "10 5xx أخطاء في الثانية".
- التنبيهات التي تكون فيها العتبة هي قيمة مئوية من النوع "تكرار أخطاء 5xx لكل 10٪ من إجمالي حجم الطلبات في وقت معين."
- تنبيهات تستند إلى المتوسط التاريخي لنوع "أخطاء 5xx في النسبة المئوية 90".
وبصفة عامة ، فإن النوعين الثاني والثالث أكثر فائدة بالنسبة لمهمات التخفيف من حدة الخدمة ، حيث أنها تكشف عن الانحرافات عن القاعدة في هذه العملية.
2. العديد من التنبيهات لا تتصاعد أبدا إلى حوادث
يتعامل مهندسو SR مع دفق مستمر من التنبيهات ، والكثير منهم ليسوا في غاية الأهمية.
فلماذا لا تقتصر التنبيهات على تلك المهمة فقط؟ مع هذا النهج ، ومع ذلك ، لا يمكن للمرء أن يتعرف على الأعراض المبكرة لما سينمو ، مثل كرة الثلج ، إلى مشكلة حقيقية ، تهدد بأضرار كبيرة.
واجب SRE على واجب هو تحديد التنبيهات التي تتحدث حقا عن شيء خطير ، وما إذا كانت تحتاج إلى تصعيد والبدء في فهم. أظن أن سبب ذلك هو عدم مرونة التنبيهات: سيكون من الأفضل أن يتم تقديم عدة مستويات أو طرق "ذكية" لإعداد التنبيهات وفقًا للحالة الموضحة أعلاه.
اقتراح الميزة: https://gitlab.com/gitlab-org/gitlab/issues/42633
3. لدينا قابلات SRE استخدام العديد من الأدوات.
المحلية:
- GitLab infra project: Runbooks نعيش هنا ، نوبات التحول / الأسبوع ، ومهام الاستجابة للحوادث.
- مشكلات GitLab: يتم تتبع التحقيقات والتحليل والصيانة أيضًا في المهام.
- تسميات GitLab: يتم تشغيل مهام الأتمتة وفقًا لبعض الملصقات ، والتي تتبع برامج الروبوتات نشاط المهام.
الخارجي:
- PagerDuty: تنبيهات
- سلاك: تدفق رسالة PagerDuty / AlertManager يذهب هنا. التكامل مع أوامر الشرطة المائلة لتنفيذ مجموعة متنوعة من المهام ، مثل إغلاق التنبيه أو التصعيد إلى حادث.
- جرافانا: تصور للمقاييس مع التركيز على الاتجاهات طويلة الأجل.
- Kibana: يعطي التصور / البحث في المجلة ، والقدرة على حفر أعمق في أحداث معينة.
- تكبير / تصغير: هناك "غرفة مناقشة" تعمل باستمرار في Zoom. يتيح ذلك لمهندسي SRE مناقشة الأحداث بسرعة دون إضاعة وقت ثمين في توفير مساحة وروابط للمشاركين.
وأكثر من ذلك بكثير.
إذا حدث انقطاع خدمة كبير على GitLab.com ، فلن نريد أن يؤثر ذلك على قدرتنا على حل المشكلة. يمكن إيقافه عن طريق تشغيل مثيل GitLab الثاني لتثبيت GitLab.com. في الواقع ، هذا يعمل بالفعل بالنسبة لنا: https://ops.gitlab.net/ .
5. بعض الميزات التي يجب مراعاتها عند الإضافة إلى GitLab
- تحرير مهام متعددة المستخدمين مماثلة لمحرّر مستندات Google. هذا من شأنه أن يساعد في مهام الحادث خلال الحدث ، وكذلك تحليل المهام. في كلتا الحالتين ، قد يحتاج العديد من المشاركين إلى إضافة شيء ما في الوقت الفعلي.
- المزيد من webhooks للمهام. ستساعد القدرة على تشغيل الخطوات المختلفة لسير عمل GitLab من الداخل على تقليل الاعتماد على تكامل سلاك. على سبيل المثال ، القدرة على تمكين الإعلام في PagerDuty من خلال أمر مائل في مهمة GitLab.
استنتاج
المهندسين SRE يجدون صعوبة في العديد من الصعوبات. سيكون من الرائع رؤية المزيد من منتجات GitLab في حل هذه المشكلات. نحن نعمل بالفعل على بعض إضافات المنتجات التي ستسهل سير العمل المذكورة أعلاه. التفاصيل متوفرة في قسم رؤية منتجات Ops .
في عام 2020 ، نقوم بتوسيع الفريق ليجمع كل هذه الميزات الرائعة. إذا كنت مهتمًا ، فيرجى قراءة الشواغر ، ولا تتردد في الاتصال بشخص ما من فريقنا لأية أسئلة.