Comment l'équipe GitLab QA utilise l'outil de performance GitLab

Une traduction de l'article a été préparée avant le début du cours DevOps Practices and Tools .




Nous avons lancé un certain nombre d'initiatives pour améliorer les performances de GitLab et nous avions besoin d'un nouvel outil de référence.

Les tests de performances sont un processus complexe qui diffère des autres types de tests. Pour obtenir des résultats, des ressources dédiées, des approches et des outils spéciaux sont nécessaires ici. Lorsque j'ai rejoint l'entreprise et suis devenu le premier membre de cette équipe, ma tâche était de transférer les efforts naissants pour améliorer la productivité à plus grande échelle. Pour ce faire, nous avons créé un nouvel outil avec le nom simple GitLab Performance Too l (GPT).

Nous sommes heureux d'annoncer la sortie publique de GPT. Dans cet article, nous décrirons comment nous utilisons GPT pour tester les performances de GitLab, et aussi comment vous pouvez l'utiliser pour tester vos environnements.

Cependant, regardez d'abord avec quoi nous l'utilisons.

Architectures de référence et données de test


D'après notre expérience, la partie la plus difficile des tests de performances n'est pas le test lui-même, mais la configuration des environnements et des données de test corrects.

Ainsi, l'une des initiatives est le développement des architectures de référence GitLab , qui peuvent faire face à un grand nombre d'utilisateurs. Nous voulons utiliser ces architectures comme un moyen de standardiser nos configurations recommandées pour fournir aux clients des déploiements GitLab hautes performances, évolutifs et hautement accessibles.

Pour un tel outil, nous avons besoin de données de test réalistes, par exemple, de grands projets avec des validations et des demandes de fusion. Pour la première itération, nous avons pris le projet de GitLab lui-même.

Après avoir configuré et exécuté les environnements de test, nous étions prêts à les tester à l'aide du GPT.

Qu'est-ce que l'outil de performances GitLab (GPT)?


GPT peut être utilisé pour exécuter divers tests de charge pour le benchmark GitLab. Il suffit de connaître le débit que l'environnement de test peut supporter (sous forme de requêtes par seconde) et d'assurer la préparation des données de test.

GPT a été développé sur la base de l'un des principaux outils de test de charge - k6 . Voici quelques-unes des fonctionnalités GPT:

  • Un grand nombre de tests prêts à l'emploi, couvrant divers points de terminaison GitLab, avec la possibilité d'ajouter vos propres tests. Voir la documentation pour la description des tests terminés ; de nouveaux tests y sont souvent ajoutés.
  • , GitLab .
  • .
  • .
  • , time to first byte ( ), .

La talentueuse équipe Load Impact a créé k6 , qui est au cœur du GPT. Nous avons rapidement réalisé que nous n'avions pas besoin de réinventer la roue, car le k6 répond à la plupart de nos exigences: il est écrit en Go, c'est pourquoi il est très productif et open source. Merci à l'équipe non seulement d'avoir développé k6, mais aussi d'avoir travaillé avec nous.

Comment utilisons-nous GPT


GPT est utilisé dans plusieurs pipelines automatisés GitLab CI pour fournir un retour rapide sur le fonctionnement de GitLab. Les pipelines CI d'architectures de référence fonctionnent avec la dernière version préliminaire et, en règle générale, s'exécutent quotidiennement ou hebdomadairement. Immédiatement après le test, nous analysons les résultats pour trouver des problèmes. Nous publions tous les derniers résultats dans le wiki GPT en fonction de notre valeur de transparence .

GPT est également utilisé dans le pipeline d'analyse comparative pour voir comment les performances de GitLab changent d'une version à l'autre. Ces résultats sont importants car ils montrent une image de performances améliorées. Les résultats des comparaisons de référence sont également disponibles sur le wiki GPT .

Grâce à GPT, nous avons pu identifier plusieurs goulots d'étranglement dans les performances de GitLab et, avec les développeurs, prioriser les améliorations. Ce processus a porté ses fruits et nous sommes impatients d'améliorer les performances avec chaque version de GitLab. Par exemple, la version 12.6 a montré plusieurs améliorations notables dans tous les domaines, dans l'une desquelles nous avons enregistré une baisse de 92%! Vous pouvez voir les problèmes détectés dans notre outil de suivi des bogues .

Comment pouvez-vous utiliser GPT


Nous avons depuis longtemps décidé que nous voulons suivre les mêmes principes de l'open source que pour notre produit principal.Par conséquent, lors de la création du GPT, nous nous sommes concentrés sur tous les utilisateurs, et non sur en faire un produit exclusivement interne. Par conséquent, nous permettons non seulement aux autres de l'utiliser, mais nous l'encourageons également! Cela est bénéfique pour nous et nos clients, car nous recevons des commentaires de différents points de vue, auxquels nous n'avons pas pensé. Quelques exemples de cela améliorent les directives pour les spécifications recommandées basées sur la bande passante , ou améliorent l'utilisation de GPT hors ligne pour les utilisateurs avec des clouds privés .

Si vous souhaitez utiliser GPT pour vous-même, il est préférable de commencer par la documentation. Comme indiqué, la plupart des efforts pour utiliser GPT consistent à préparer les environnements appropriés. La documentation traite à la fois de ce point et de l'utilisation directe de GPT.

GPT en action


Enfin, après avoir parlé du GPT, il est temps de le montrer en action. Voici à quoi ressemble le test de charge pour l' API List Group Projects avec une architecture de référence 10k : asciinema.org/a/O96Wc5fyxvLb1IDyviTwbujj8 Consultez la documentation GPT pour plus d'informations sur les résultats .






Et après


Notre objectif est de faire de GitLab, en termes de performances, le meilleur de sa catégorie. Et nous ne sommes qu'au début de ce voyage. Nous sommes heureux de pouvoir améliorer la qualité du service client en leur fournissant des outils supplémentaires.

Certains de nos plans pour les versions futures incluent l'extension de la couverture des tests de la fonctionnalité GitLab, des points d'entrée (API, Web, Git), l'extension des travaux sur les architectures de référence, les données de test et les modèles de comportement des utilisateurs pour les rendre plus représentatifs et réalistes.

Partagez vos commentaires et / ou suggestions GPT dans le référentiel de projets GPT ! Nous apprécions vos idées et suggestions.



Ansible: démarrage rapide.



All Articles