JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

GitLab: Saber todo sobre el repositorio Git para DevOps

GitLab es un servicio de alojamiento de código y gestión de versiones, unido a una completa plataforma DevOps. Descubre todo lo que tienes que saber sobre él: cómo funciona, diferencias con GitHub, casos de uso para la Data Science y el Machine Learning, cursos, etc.

Tanto en el campo de la Data Science como en el del Machine Learning, y de forma más general en el desarrollo de software, los servicios de alojamiento de código y gestión de versiones se han convertido en algo esencial. Entre las plataformas más utilizadas están GitHub y GitLab.

Ambas plataformas son «repositorios» Git alojados en la web. El sistema de control de versiones Git permite gestionar los proyectos de desarrollo de software y todos los archivos relacionados, a medida que van cambiando.

Así, se pueden gestionar y controlar los cambios realizados por cada miembro del equipo. Los miembros del proyecto pueden coordinar su trabajo y seguir el progreso sobre la marcha.

La información se almacena como datos en un «repositorio» (repository). Contiene objetos y sus referencias, y actúa como ubicación central donde los desarrolladores pueden almacenar, compartir, probar y colaborar en proyectos de desarrollo.

¿Qué es GitLab?

Al igual que GitHub, GitLab es un gestor de repositorios Git que permite que los equipos colaboren en códigos informáticos. Está escrito en Ruby y Go, y fue creado en 2011 por Dmitriy Zaporozhets y Valery Sizov.

Es una plataforma completamente de código abierto. También es gratuita para los particulares.

Varios miembros de un equipo pueden utilizar GitLab para colaborar en el mismo proyecto, proponer cambios y, dar marcha atrás, llegado el caso, si surge algún problema imprevisto.

Desde el lanzamiento de la versión 10.0, GitLab se ha convertido en algo más que un repositorio Git. El servicio ofrece ahora una visión «Complete DevOps» que unifica el desarrollo y las operaciones en una única experiencia de usuario.

Esta nueva versión ofrece una mejor integración entre las herramientas de desarrollo y DevOps. Los usuarios pueden realizar todas las tareas del proyecto, desde la planificación y la gestión del código fuente hasta el monitoreo y la seguridad.

¿Cuáles son sus diferentes componentes?

GitLab se basa en varios componentes que forman una solución completa para DevOps y la gestión de proyectos. En primer lugar, se pueden crear «proyectos» para alojar código, colaborar en ellos o identificar problemas.

Las funciones nativas de integración continua y entrega continua (Gitlab CI/CD) permiten el desarrollo, las pruebas y el despliegue continuos de una aplicación. Los proyectos pueden hacerse públicos o restringirse a un público interno o privado.

Es posible agrupar varios proyectos relacionados en un «grupo«. Además, los «SubGroups» (subgrupos) permiten crear una jerarquía de hasta 20 niveles de grupos.

Las funciones de integración continua (CI), ofrecidas de forma nativa por GitLab, permiten añadir pequeñas piezas de código a una aplicación alojada en Git. Para cada «push«, se puede ejecutar una línea de scripts para probar el código antes de validar los cambios en el proyecto.

La entrega y el despliegue continuo (CD) permiten poner la aplicación en producción con cada push. El CI/CD de GitLab se configura mediante un archivo llamado .gitlab-ci.yml colocado en la raíz del repositorio Git, y los scripts de este archivo son ejecutados por el GitLab Runner.

GitLab vs. GitHub: ¿cuáles son las diferencias?

Hay varias diferencias importantes entre GitLab y GitHub. Estas diferencias se refieren, por ejemplo, a los sistemas de autenticación y permisos de acceso, que cuentan con más detalles en GitLab y, por tanto, son más adecuados para los grandes equipos que trabajan en proyectos de gran envergadura.

Además, GitLab se distingue por su sistema de Integración y Entrega Continua. Lo que permite que los equipos de desarrollo ahorren un tiempo valioso. Para los usuarios que ya utilizan la Integración Continua externa, la plataforma es compatible con Jenkins, Codeship y muchos otros.

El sistema Auto DevOps también permite lanzar la Integración Continua o la Entrega Continua de forma automática sin intervención humana. Esto sitúa a GitLab por delante de GitHub en el campo del DevOps.

Sin embargo, a finales de 2019, GitHub lanzó «Actions». Este nuevo sistema permite escribir tareas para automatizar y personalizar el flujo de trabajo de desarrollo. En cambio, GitHub no ofrece una plataforma de despliegue. Es necesaria una aplicación externa como Heroku.

La última diferencia es el precio de las versiones de «empresa» de los dos servicios. El paquete empresa de GitHub cuesta desde 250 dólares por usuario y año, mientras que GitLab cuesta desde 39 dólares por usuario y año.

En resumen, GitHub es, con diferencia, el repositorio Git más popular, con decenas de millones de usuarios, frente a los 100 000 de GitLab. Sin embargo, GitLab ayuda a los equipos en todo el proceso de DevOps y es más asequible para las empresas.

GitLab para la Data Science y el Machine Learning

Los equipos de Data Science y Machine Learning pueden aportar un gran valor a una empresa extrayendo información procesable de las series de datos.

Sin embargo, para lograrlo, estos equipos tienen importantes requisitos de colaboración, planificación y gestión de proyectos, y gestión de versiones de archivos, modelos o series de datos.

Los profesionales de la Data Science y del Machine Learning también deben ser capaces de automatizar los pasos críticos del flujo de trabajo para aumentar la eficiencia y evitar los errores manuales. También deben agilizar los procesos de prueba y validación de su trabajo para conseguir mayor rapidez y repetibilidad.

Por último, la gestión de la infraestructura debe ser lo más sencilla posible (especialmente cuando esa infraestructura se basa en múltiples proveedores en la nube). GitLab cubre estas necesidades, por lo que es una herramienta imprescindible para la Data Science y el Machine Learning. 

Los equipos pueden colaborar cómodamente entre departamentos, gestionar y programar su trabajo, y hacer un seguimiento de los cambios realizados a medida que los modelos se desarrollan, entrenan y despliegan.

La automatización es posible gracias al CI/CD de GitLab, que facilita la validación de los modelos probando varios elementos con cada cambio. La construcción y el despliegue de un modelo también están automatizados. Por último, un modelo puede desplegarse y gestionarse en cualquier nube.

Recientemente, Iterative.ai ha lanzado un nuevo proyecto de código abierto llamado CML (continuous machine learning). Este proyecto adapta la CI de GitLab a los casos de uso de Data Science y Machine Learning. Podemos citar algunos ejemplos como el entrenamiento automático de modelos, las pruebas automáticas o los informes con visualización de datos.

¿Cómo aprender a utilizarlo?

Para aprender a utilizar GitLab, puedes recurrir a los cursos de DataScientest. Nuestros cursos híbridos se basan en un enfoque innovador de «Blended Learning» (híbrido presencial/a distancia) y te permiten obtener un diploma certificado por la Universidad de la Sorbona.

GitLab está incluido en nuestro curso de Data Engineer. Este curso permite aprender el oficio de Data Engineer, así como las diferentes herramientas y técnicas utilizadas en esta profesión.

Ya sabes todo sobre GitLab. Descubre otras herramientas de Data Engineering y ML Engineering, como la solución de automatización de workflows Apache Airflow.

¿No está disponible?

Déjenos su dirección de correo electrónico para que podamos enviarle los nuevos artículos cuando se publiquen.