كيف كنت متدربًا في هندسة SRE لمدة أسبوع. واجب من وجهة نظر مهندس برمجيات

كيف كنت متدربًا في هندسة SRE لمدة أسبوع. واجب من وجهة نظر مهندس برمجيات

مهندس SRE - متدرب

للبدء ، اسمحوا لي أن أقدم نفسي. أنا - @ tristan.read، مهندس الواجهة الأمامية في المجموعة مراقب :: الصحة جيت لاب. في الأسبوع الماضي ، كان لي شرف أن أكون متدربًا مع أحد مهندسي SRE أثناء الخدمة. كان الهدف هو المراقبة اليومية لكيفية استجابة الضابط المناوب للحوادث واكتساب خبرة عمل حقيقية. نود أن يفهم مهندسونا احتياجات المستخدمين بشكل أفضل وظيفة مراقب :: الصحة.

اضطررت إلى متابعة SRE حولها لمدة أسبوع. أي أنني كنت حاضرًا عند نقل المهام ، وراقبت نفس قنوات التنبيه واستجبت للحوادث ، إذا حدثت ومتى حدثت.

الحوادث

كان هناك حادثتان في الأسبوع.

1. أداة التشفير

سجل GitLab.com قفزة في الاستخدام يوم الأربعاء عداء جيت لاب'أ ، بسبب محاولات استخدام دقائق المتسابق في تعدين العملات المشفرة. تم فرز الحادث باستخدام أداة تخفيف الملكية التي توقف مهام العداء وتحذف المشروع والحساب المرتبط به.

إذا لم يتم ملاحظة هذا الحدث ، لكانت أداة آلية قد اكتشفته ، ولكن في هذه الحالة ، لاحظ مهندس SRE الانتهاك أولاً. تم إنشاء مهمة الحادث ، ولكن تم إغلاق المعلومات الخاصة بها.

2. تدهور أداء تطبيقات الكناري والرئيسية

تأجج الحادث بسبب التباطؤ وزيادة معدلات الخطأ في canary وتطبيقات الويب الرئيسية على Gitlab.com. تم انتهاك العديد من قيم Apdex.

افتح المهمة بالحادثة: https://gitlab.com/gitlab-com/gl-infra/production/issues/1442

النتائج الرئيسية

فيما يلي بعض النقاط التي تعلمتها خلال أسبوع العمل.

1. تعد التنبيهات مفيدة للغاية عند اكتشاف الانحرافات عن القاعدة.

يمكن تقسيم الإخطارات إلى عدة أنواع:

  • تنبيهات تستند إلى حد معين ، مثل "10 أخطاء 5xx حدثت في الثانية."
  • التنبيهات التي يكون فيها الحد هو قيمة النسبة المئوية مثل "معدل الخطأ 5xx لكل 10٪ من إجمالي الطلبات في وقت معين".
  • تنبيهات تستند إلى متوسط ​​تاريخي مثل "أخطاء 5xx في النسبة المئوية التسعين".

بشكل عام ، يعتبر النوعان 2 و 3 أكثر إفادة للمؤسسات الصغيرة والمتوسطة في الخدمة ، حيث إنها تكشف عن تشوهات في العملية.

2. العديد من التنبيهات لا تتصاعد إلى الحوادث

يتعامل مهندسو SR مع تدفق مستمر من التنبيهات ، وكثير منها ليس حرجًا حقًا.

فلماذا لا تقتصر التنبيهات على التنبيهات المهمة حقًا فقط؟ مع هذا النهج ، ومع ذلك ، قد يتم التغاضي عن الأعراض المبكرة لما سوف يتحول إلى مشكلة حقيقية تهدد بأضرار جسيمة.

تتمثل مهمة SRE في الخدمة في تحديد التنبيهات التي تعني حقًا شيئًا خطيرًا ، وما إذا كانت بحاجة إلى التصعيد والبدء في حلها. أظن أن هذا يرجع أيضًا إلى عدم مرونة التنبيهات: سيكون من الأفضل تقديم عدة مستويات أو طرق "ذكية" لتخصيص التنبيهات وفقًا للموقف الموضح أعلاه.

اقتراح ميزة: https://gitlab.com/gitlab-org/gitlab/issues/42633

3. تستخدم SREs الخاصة بنا الكثير من الأدوات

داخلي:

  • مشروع GitLab infra: Runbooks موجود هنا ، وتسليم المناوبات / الأسبوع ، ومهام الاستجابة للحوادث.
  • مشكلات GitLab: يتم أيضًا تعقب التحقيق واستخلاص المعلومات والصيانة في المشكلات.
  • تسميات GitLab: يتم تشغيل مهام الأتمتة بواسطة تسميات محددة تستخدمها برامج الروبوت لتتبع نشاط المهمة.

خارجي:

  • تنبيهات PagerDuty
  • Slack: هذا هو المكان الذي ينتقل إليه تدفق رسائل PagerDuty / AlertManager. التكامل مع أوامر الشرطة المائلة لأداء مجموعة متنوعة من المهام ، مثل إغلاق تنبيه أو تصعيد إلى حادث.
  • غرافانا: تصور المقاييس مع التركيز على الاتجاهات طويلة المدى.
  • Kibana: يعطي التصور / البحث في السجل ، والقدرة على التعمق في أحداث معينة.
  • تكبير / تصغير: هناك "غرفة فرعية" دائمة في التكبير. يتيح ذلك لـ SREs مناقشة الأحداث بسرعة دون إضاعة الوقت الثمين في إنشاء غرفة وربط الأعضاء.

والعديد من الآخرين.

4. تعد مراقبة GitLab.com باستخدام GitLab نقطة فشل واحدة

إذا واجه موقع GitLab.com انقطاعًا كبيرًا في الخدمة ، فلا نريد أن يؤثر ذلك على قدرتنا على حل المشكلة. يمكن إيقافه عن طريق تشغيل مثيل GitLab ثاني لإدارة GitLab.com. في الواقع ، هذا يعمل بالفعل بالنسبة لنا: https://ops.gitlab.net/.

5. بعض الميزات التي يجب التفكير في إضافتها إلى GitLab

  • تحرير مشكلة متعددة المستخدمين، على غرار محرر مستندات Google. هذا من شأنه أن يساعد في مهام الحادث أثناء الحدث ، وكذلك في مهام استخلاص المعلومات. في كلتا الحالتين ، قد يحتاج العديد من المشاركين إلى إضافة شيء ما في الوقت الفعلي دفعة واحدة.
  • المزيد من الخطافات على الويب للمهام. ستساعد القدرة على تشغيل خطوات سير عمل GitLab المتنوعة من الداخل على تقليل اعتمادك على عمليات تكامل Slack. على سبيل المثال ، القدرة على تمكين تنبيه في PagerDuty عبر أمر شرطة مائلة في مشكلة GitLab.
    اختتام

يواجه مهندسو SRE وقتًا عصيبًا مع العديد من التعقيدات. سيكون من الرائع رؤية المزيد من منتجات GitLab تعالج هذه المشكلات. نحن نعمل بالفعل على بعض الإضافات للمنتج التي ستجعل سير العمل المذكور أعلاه أسهل. الأجزاء متوفرة في قسم رؤية منتجات العمليات.

في عام 2020 ، نقوم بتوسيع الفريق لتجميع كل هذه الميزات الرائعة. إذا كنت مهتمًا ، يرجى التحقق من ذلك الشواغر، ولا تتردد في الاتصال بشخص من فريقنا لطرح أي أسئلة.

المصدر: www.habr.com

إضافة تعليق