GitLab como plataforma integral para el ciclo de vida DevOps
Clase 4 de 53 • Curso de DevOps con GitLab
Resumen
GitLab reúne en una sola plataforma todo el ciclo de vida DevOps: desde planificación con issues y milestones hasta CI/CD, empaquetado en contenedores Docker y despliegue en Kubernetes, con seguridad integrada (SAST, DAST) y monitoreo con Prometheus, Jaeger y Sentry. Además, puede usarse como servicio administrado o como instancia propia open source para equipos de cualquier tamaño.
¿Qué es GitLab y cómo se puede usar?
GitLab es tres cosas a la vez: una compañía totalmente distribuida sin oficinas físicas, un proyecto open source instalable en tus servidores, y un producto especializado en el ciclo de vida DevOps. Al estilo WordPress, puedes administrar tu propia instancia privada o usar la opción administrada por el equipo de GitLab y enfocarte solo en usar la plataforma de forma correcta.
- Compañía distribuida: colaboración 100% remota en todo el mundo.
- Proyecto open source: instalación en servidores propios para un GitLab privado.
- Servicio administrado: el equipo de GitLab opera la plataforma por ti.
¿Cómo cubre GitLab el ciclo de vida DevOps?
GitLab aborda cada etapa con herramientas nativas que evitan depender de integraciones frágiles. El flujo va de administrar identidades, planificar y crear, a verificar, empaquetar, distribuir, configurar, monitorear y asegurar el software, con GitLab CI como unión de todas las piezas.
¿Cómo autenticar y firmar commits en GitLab?
- Autenticación flexible: usuario-contraseña, llaves SSH y llaves PGP.
- Firma de commits: confirma la autoría del código y la integridad de los cambios.
¿Cómo planificar con issues y milestones de forma ágil?
- Planificación integrada: issues, milestones y colaboración en contexto.
- Enfoque ágil: funciones enfocadas en desarrollo ágil, sin excluir waterfall si se requiere.
¿Qué roles y flujos permiten proyectos, grupos y merge requests?
- Creación y colaboración: proyectos y grupos para definir responsabilidades.
- Merge requests: puerta de entrada al código productivo en la rama master.
- Widgets en merge requests: más control y visibilidad en la revisión previa al merge.
GitLab también centraliza la verificación. Con GitLab CI, el “corazón” de la plataforma, se ejecutan pruebas automatizadas, análisis de calidad y seguridad, y se orquesta el resto del ciclo sin fricción.
¿Qué prácticas, empaquetado, despliegue, monitoreo y seguridad incluye?
Desde dejar el artefacto listo para producción hasta operar con visibilidad y proteger el entorno, GitLab integra lo necesario para acelerar y reducir riesgos.
- Empaquetado del código: compilar, transpilaciones (por ejemplo, de TypeScript a JavaScript), creación de contenedores Docker.
- Registro de contenedores: distribución de imágenes de forma rápida y segura.
- Estrategias de distribución: continuous delivery diario, Canary e Incremental Rollouts.
- Configuración en despliegues: en Kubernetes, declarar estado deseado, réplicas y definición de pods.
- Monitoreo operativo: métricas, salud y trazas con Prometheus, Jaeger y Sentry.
- Seguridad integral: pruebas dinámicas (DAST), estáticas (SAST), y escaneo de vulnerabilidades en contenedores y dependencias.
- Defensa en producción: capacidades en desarrollo para threat detection, firewalls y data loss prevention.
¿Qué hace GitLab CI en verificación y empaquetado?
- Orquesta pipelines: une pruebas, análisis, build y entrega.
- Automatiza calidad: tests, chequeos de estilo y métricas de código.
- Integra seguridad: SAST/DAST y escaneo de dependencias en el mismo pipeline.
¿Cómo monitorear con Prometheus, Jaeger y Sentry?
- Prometheus: métricas de performance y salud.
- Jaeger: tracing para entender latencias y flujos de servicio.
- Sentry: captura de errores que afectan a usuarios en producción.
¿Por qué evitar herramientas dispersas y elegir una plataforma integrada?
La dispersión de herramientas —por ejemplo, GitHub, Asana, CircleCI— exige invertir tiempo en integraciones que parecen simples pero se vuelven complejas y frágiles. GitLab ofrece una solución completa desde el inicio, para enfocarte en lo que da valor: el código que usan tus clientes.
Habilidades y conceptos que te llevas para aplicar de inmediato: - Configurar autenticación SSH/PGP y firmar commits para trazabilidad. - Planificar con issues y milestones para trabajo ágil o waterfall. - Colaborar con proyectos, grupos y merge requests con widgets. - Diseñar pipelines en GitLab CI con pruebas, calidad y seguridad. - Empaquetar con contenedores Docker y publicar en el registro. - Desplegar con continuous delivery, Canary e Incremental Rollouts. - Declarar configuración en Kubernetes: réplicas, pods y estado deseado. - Monitorear con Prometheus, Jaeger y Sentry para detectar fallos. - Aplicar SAST/DAST y escaneos de contenedores y dependencias.
¿Tienes experiencias con otras herramientas o flujos? Comparte en los comentarios tus prácticas, retos y soluciones para enriquecer el aprendizaje en comunidad.