C贸mo el equipo de control de calidad de GitLab utiliza la herramienta de rendimiento de GitLab

Se prepar贸 una traducci贸n del art铆culo antes del comienzo del curso de Pr谩cticas y herramientas de DevOps .




Lanzamos una serie de iniciativas para mejorar el rendimiento de GitLab y necesit谩bamos una nueva herramienta de referencia.

Las pruebas de rendimiento son un proceso complejo que difiere de otros tipos de pruebas. Para obtener resultados, se necesitan recursos dedicados, enfoques y herramientas especiales aqu铆. Cuando me un铆 a la compa帽铆a y me convert铆 en el primer miembro de este equipo, mi tarea consist铆a en transferir los esfuerzos incipientes para mejorar la productividad a una escala mayor. Para hacer esto, creamos una nueva herramienta con el nombre simple GitLab Performance Too l (GPT).

Nos complace anunciar el lanzamiento p煤blico de GPT. En esta publicaci贸n, describiremos c贸mo usamos GPT para probar el rendimiento de GitLab, y tambi茅n c贸mo puede usarlo para probar sus entornos.

Sin embargo, primero mira con qu茅 lo usamos.

Arquitecturas de referencia y datos de prueba


En nuestra experiencia, la parte m谩s dif铆cil en las pruebas de rendimiento no est谩 en las pruebas en s铆, sino en la configuraci贸n de los entornos y datos de prueba correctos.

Por lo tanto, una de las iniciativas es el desarrollo de las arquitecturas de referencia de GitLab , que pueden hacer frente a una gran cantidad de usuarios. Queremos utilizar estas arquitecturas como una forma de estandarizar nuestras configuraciones recomendadas para proporcionar a los clientes implementaciones de GitLab de alto rendimiento, escalables y altamente accesibles.

Para tal herramienta, necesitamos datos de prueba realistas, por ejemplo, proyectos grandes con confirmaciones y solicitudes de fusi贸n. Para la primera iteraci贸n, tomamos el proyecto de GitLab.

Despu茅s de configurar y ejecutar los entornos de prueba, est谩bamos listos para probarlos usando el GPT.

驴Qu茅 es la herramienta de rendimiento GitLab (GPT)?


GPT se puede utilizar para ejecutar varias pruebas de carga para el punto de referencia de GitLab. Todo lo que se requiere es averiguar qu茅 rendimiento puede soportar el entorno de prueba (en forma de solicitudes por segundo) y garantizar la preparaci贸n de los datos de prueba.

GPT se desarroll贸 sobre la base de una de las herramientas l铆deres para pruebas de carga: k6 . Estas son algunas de las caracter铆sticas de GPT:

  • Un gran conjunto de pruebas listas para usar, que cubre varios puntos finales de GitLab, con la capacidad de agregar sus propias pruebas. Consulte la documentaci贸n para la descripci贸n de las pruebas terminadas ; a menudo se agregan nuevas pruebas all铆.
  • , GitLab .
  • .
  • .
  • , time to first byte ( ), .

El talentoso equipo Load Impact cre贸 k6 , que es el n煤cleo del GPT. R谩pidamente nos dimos cuenta de que no necesit谩bamos reinventar la rueda, ya que k6 satisface la mayor铆a de nuestros requisitos: est谩 escrito en Go, por lo que es muy productivo y de c贸digo abierto. Gracias al equipo no solo por desarrollar k6, sino tambi茅n por trabajar con nosotros.

驴C贸mo usamos GPT?


GPT se utiliza en varias canalizaciones automatizadas de GitLab CI para proporcionar informaci贸n r谩pida sobre el funcionamiento de GitLab. Las canalizaciones de CI de arquitecturas de referencia funcionan con la versi贸n preliminar m谩s reciente y, por regla general, se ejecutan diariamente o semanalmente. Inmediatamente despu茅s de la prueba, analizamos los resultados para encontrar problemas. Publicamos todos los 煤ltimos resultados en el wiki de GPT de acuerdo con nuestro valor de Transparencia .

GPT tambi茅n se usa en la l铆nea de evaluaci贸n comparativa para ver c贸mo cambia el rendimiento de GitLab de una versi贸n a otra. Estos resultados son importantes porque muestran una imagen de rendimiento mejorado. Los resultados de comparaci贸n de referencia tambi茅n est谩n disponibles en el wiki de GPT .

Mediante GPT, pudimos identificar varios cuellos de botella en el rendimiento de GitLab y, junto con los desarrolladores, priorizar las mejoras. Este proceso ha valido la pena, y esperamos mejorar el rendimiento con cada lanzamiento de GitLab. Por ejemplo, la versi贸n 12.6 mostr贸 varias mejoras notables en todas las 谩reas, 隆en una de las cuales logramos una disminuci贸n del 92%! Puede ver los problemas detectados en nuestro rastreador de errores .

驴C贸mo puedes usar GPT?


Durante mucho tiempo hemos decidido que queremos seguir los mismos principios de c贸digo abierto que para nuestro producto principal, por lo tanto, al crear el GPT, nos centramos en todos los usuarios y no en convertirlo en un producto exclusivamente interno. Por lo tanto, no solo permitimos que otros lo usen, sino que tambi茅n lo alentamos. Esto es beneficioso tanto para nosotros como para nuestros clientes, ya que recibimos comentarios desde diferentes puntos de vista, en los que no pensamos. Algunos ejemplos de esto son mejorar las pautas para las especificaciones recomendadas basadas en el ancho de banda , o mejorar el uso de GPT fuera de l铆nea para usuarios con nubes privadas .

Si desea utilizar GPT para usted, lo mejor es comenzar con la documentaci贸n. Como se se帽al贸, la mayor parte del esfuerzo para usar GPT es preparar los entornos apropiados. La documentaci贸n discute tanto este punto como el uso directo de GPT.

GPT en acci贸n


Finalmente, despu茅s de hablar sobre el GPT, es hora de mostrarlo en acci贸n. As铆 es como se ejecuta la prueba de carga para la API List Group Projects con una arquitectura de referencia de 10k : asciinema.org/a/O96Wc5fyxvLb1IDyviTwbujj8 Para obtener m谩s informaci贸n sobre los resultados, consulte la documentaci贸n de GPT.






Que sigue


Nuestro objetivo es hacer que GitLab, en t茅rminos de rendimiento, sea el mejor de su clase. Y solo estamos al comienzo de este viaje. Nos complace poder mejorar la calidad del servicio al cliente proporcion谩ndoles herramientas adicionales.

Algunos de nuestros planes para futuras versiones incluyen expandir la cobertura de prueba de la funcionalidad de GitLab, puntos de entrada (API, Web, Git), expandir el trabajo sobre arquitecturas de referencia, datos de prueba y patrones de comportamiento del usuario para hacerlos m谩s representativos y realistas.

隆Comparta sus comentarios y / o sugerencias GPT en el repositorio de proyectos GPT ! Agradecemos sus ideas y sugerencias.



Ansible: inicio r谩pido.



All Articles