كيف يستخدم فريق GitLab QA أداة أداء GitLab

تم إعداد ترجمة للمقال قبل بدء دورة ممارسات وأدوات DevOps .




أطلقنا عددًا من المبادرات لتحسين أداء GitLab وكنا بحاجة إلى أداة قياس جديدة.

اختبار الأداء هو عملية معقدة تختلف عن أنواع الاختبار الأخرى. للحصول على النتائج ، هناك حاجة إلى موارد مخصصة ومناهج وأدوات خاصة هنا. عندما انضممت إلى الشركة وأصبحت أول عضو في هذا الفريق ، كانت مهمتي نقل الجهود الناشئة لتحسين الإنتاجية إلى نطاق أوسع. للقيام بذلك ، قمنا بإنشاء أداة جديدة باسم بسيط GitLab Performance Too l (GPT).

يسعدنا أن نعلن عن النشر العام لـ GPT. في هذا المنشور ، سنصف كيف نستخدم GPT لاختبار أداء GitLab ، وأيضًا كيف يمكنك استخدامه لاختبار بيئاتك.

ومع ذلك ، انظر أولاً إلى ما نستخدمه معه.

معماريات مرجعية وبيانات الاختبار


في تجربتنا ، فإن الجزء الأكثر صعوبة في اختبار الأداء ليس في الاختبار نفسه ، ولكن في إعداد البيئات الصحيحة وبيانات الاختبار.

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

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

بعد إعداد بيئات الاختبار وتشغيلها ، كنا مستعدين لاختبارها باستخدام GPT.

ما هي أداة أداء GitLab (GPT)؟


يمكن استخدام GPT لتشغيل اختبارات الحمل المختلفة لمعيار GitLab. كل ما هو مطلوب هو معرفة الإنتاجية التي يمكن أن تتحملها بيئة الاختبار (في شكل طلبات في الثانية) ، وضمان إعداد بيانات الاختبار.

تم تطوير GPT على أساس واحدة من الأدوات الرائدة لاختبار الحمل - k6 . فيما يلي بعض ميزات GPT:

  • مجموعة كبيرة من الاختبارات خارج الصندوق ، تغطي نقاط نهاية GitLab المختلفة ، مع القدرة على إضافة اختباراتك الخاصة. راجع وثائق وصف الاختبارات النهائية ؛ غالبًا ما تتم إضافة اختبارات جديدة هناك.
  • , GitLab .
  • .
  • .
  • , time to first byte ( ), .

أنشأ فريق الموهوبين تأثير K6 ، وهو جوهر GPT. أدركنا بسرعة أننا لسنا بحاجة إلى إعادة اختراع العجلة ، حيث تلبي k6 معظم متطلباتنا: فهي مكتوبة في Go ، وهذا هو السبب في أنها منتجة للغاية ومفتوحة المصدر. بفضل الفريق ليس فقط لتطوير K6 ، ولكن أيضًا للعمل معنا.

كيف نستخدم GPT


يتم استخدام GPT في العديد من خطوط أنابيب GitLab CI المؤتمتة لتقديم ملاحظات سريعة حول تشغيل GitLab. تعمل خطوط أنابيب CI للمعماريات المرجعية مع أحدث الإصدارات التجريبية ، وكقاعدة عامة ، يتم تشغيلها يوميًا أو أسبوعيًا. مباشرة بعد الاختبار ، نقوم بتحليل النتائج للعثور على المشاكل. ننشر جميع النتائج الأخيرة في ويكي GPT وفقا لدينا قيمة الشفافية .

يتم استخدام GPT أيضًا في خط أنابيب القياس لمعرفة كيف يتغير أداء GitLab من الإصدار إلى الإصدار. هذه النتائج مهمة لأنها تظهر صورة للأداء المحسن. نتائج المقارنة المعيارية متاحة أيضًا على ويكي GPT .

باستخدام GPT ، تمكنا من تحديد العديد من الاختناقات في أداء GitLab ، مع المطورين ، تحديد أولويات التحسينات. أثمرت هذه العملية ، ونتطلع إلى تحسين الأداء مع كل إصدار من GitLab. على سبيل المثال ، أظهر الإصدار 12.6 العديد من التحسينات الملحوظة في جميع المجالات ، وفي أحدها حققنا انخفاضًا بنسبة 92٪! يمكنك رؤية المشاكل المكتشفة في أداة تتبع الأخطاء .

كيف يمكنك استخدام GPT


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

إذا كنت ترغب في استخدام GPT لنفسك ، فمن الأفضل أن تبدأ بالوثائق. كما لوحظ ، فإن معظم الجهد لاستخدام GPT هو إعداد البيئات المناسبة. تناقش الوثائق كلاً من هذه النقطة والاستخدام المباشر لـ GPT.

GPT في العمل


أخيرًا ، بعد الحديث عن GPT ، حان الوقت لإظهارها في العمل. فيما يلي كيفية تشغيل اختبار الحمل لواجهة برمجة التطبيقات List Group Projects مع بنية مرجعية 10k : asciinema.org/a/O96Wc5fyxvLb1IDyviTwbujj8 لمزيد من المعلومات حول النتائج ، راجع وثائق GPT.






ماذا بعد


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

تتضمن بعض خططنا للإصدارات المستقبلية توسيع التغطية الاختبارية لوظائف GitLab ، ونقاط الدخول (API ، الويب ، Git) ، وتوسيع العمل على البنيات المرجعية ، وبيانات الاختبار ، وأنماط سلوك المستخدم لجعلها أكثر تمثيلًا وواقعية.

شارك بتعليقاتك و / أو اقتراحاتك في GPT في مستودع مشروع GPT ! نرحب بأفكاركم واقتراحاتكم.



Ansible: بداية سريعة.



All Articles