Domina la entrega moderna de software con Auto DevOps, GitLab CI y GitLab Container Registry. Aquí entenderás cómo las imágenes de Docker impulsan tu CI/CD, por qué el registro privado integrado de GitLab marca la diferencia y cómo gestionar tus imágenes para evitar límites de almacenamiento. Todo, claro y directo.
¿Cómo se integra Auto DevOps con CI/CD en contenedores?
El pipeline de Auto DevOps encapsula los elementos esenciales de ser DevOps en una sola vista. Ya se domina el uso de issue trackers, la configuración de GitLab CI y la habilitación de Auto DevOps. Además, se comprenden las fases de Continuous Integration, Continuous Deployment y Continuous Delivery, claves para llevar código a producción con rapidez y seguridad.
La industria se mueve al modelo de contenedores. Si aún no lo haces, es buen momento para explorar llevar tu aplicación a un contenedor con Docker y orquestarla con Kubernetes: así tu código viaja rápido, seguro y sin fricción.
¿Qué habilidades y conceptos refuerzas aquí?
Uso de issue trackers para planear y dar seguimiento.
Configuración de GitLab CI para pipelines reproducibles.
Habilitación de Auto DevOps para automatizar etapas clave.
Comprensión de CI/CD: integración, entrega y despliegue continuos.
Trabajo con contenedores: imágenes de Docker y orquestación con Kubernetes.
¿Qué ventajas da esta automatización en GitLab?
Integración nativa: Auto DevOps habilita el Container Registry al instante.
Conexión end-to-end: cluster, CI y Registry quedan enlazados sin pasos extra.
Velocidad y consistencia: mismos artefactos para pruebas, seguridad y deploy.
¿Qué es y por qué importa GitLab Container Registry?
Cada build genera una imagen de Docker. Esa imagen se reutiliza para deploy, pruebas de seguridad y como paquete autocontenido de tu aplicación. Los Container Registry son un concepto de Docker, no exclusivos de GitLab: existen en Google, Amazon, Azure y el Registry público de Docker. La ventaja de GitLab: está completamente integrado y se habilita con Auto DevOps, lo que posibilita el deploy sin configuraciones externas.
En la vista de Registry verás: tag asignado (SHA), ID de la imagen, tamaño y fecha de creación.
Se listan imágenes por rama: por ejemplo, para master y para el branch "modificar aplicación". Así identificas artefactos por contexto.
¿Qué operaciones básicas puedes hacer?
Es un registry privado, por lo que requiere credenciales. GitLab las gestiona cuando trabajas dentro de su ecosistema. Si colaboras con otros registries, tendrás que administrar esas credenciales. Con un registry puedes hacer login, build, push y ejecutar imágenes localmente.
# iniciar sesión en el registro privado de GitLabdocker login registry.gitlab.com
# construir una imagen etiquetada con un tag (por ejemplo, SHA o rc)docker build -t registry.gitlab.com/grupo/proyecto/app:sha-abcdef .# enviar la imagen al registrydocker push registry.gitlab.com/grupo/proyecto/app:sha-abcdef
# ejecutar la imagen de forma localdocker run --rm registry.gitlab.com/grupo/proyecto/app:sha-abcdef
¿Cómo gestionar imágenes y cuotas de almacenamiento sin problemas?
A medida que el equipo crece, se generan cientos de imágenes para distintos branches y momentos del código. Aunque podrías “ver” la historia en esas imágenes, no están para eso. GitLab tiene límites de almacenamiento por proyecto y las imágenes cuentan para esa cuota: si la superas, tu proyecto puede dejar de funcionar hasta liberar espacio.
Borra imágenes por branch completo o de forma específica.
Controla el uso de tags: latest, rc y el SHA te ayudan a identificar.
Observa tamaño y antigüedad para decidir qué limpiar.
Mantén el Registry organizado para evitar exceder la cuota.
¿Usas registries públicos como el de Docker o cuentas con registries privados en tu empresa? Comparte en comentarios cómo gestionas tus imágenes, tags y limpieza en tu flujo diario.
como puedo empezar a mudarme a contenedores si el backed es java y la base de datos es oracle.
En la empresa todavía no usamos contenedores. Habrá que empezar a evangelizar!
En mi pipiline de jenkins yo tengo que hacer los pasos para logearme, construir, publicar y desplegar mi imagen manualmente y tarde mucho en entender y construir todo me parece bueno que gitlab lo haga automagicamente, pero seguramente deja las imagenes muy pesadas porque instala tanto las dependecias de dev como las de producción y copia las carpetas de test en las imágenes, por esta razón no me termina de convencer que se haga automáticamente.
Los contenedores son una tecnología esencial para trabajar en entornos de desarrollo colaborativo hoy en día. En mi empresa hace ya varios años tenemos dockerizados todos nuestros entornos y nos ha facilitado muchísimo todos nuestros procesos de desarrollo y despliegue.
Como puede habilitar el container registry, en un gitlab instalado en un servidor propio.
por defecto viene desactivado
Yo tengo una duda sobre el uso de gitlab en un servidor propio, cuales serían las características de esta máquina para poder soportar el procesamiento de todos estos servicios que ofrece gitlab, así como el almacenamiento recomendado?
Buen clase
Cada vez me está gustando gitlab!
Pues yo solo había utilizado el container registry de Docker, y miro a GitLab sumamente conveniente para cuando trabajas con Docker
Empezando la evangelización y la migración de los apps a contenedores.
Porque funciona tan mal la reproducción de los cursos, se para todo el rato. Es muy molesto
En este caso, deberías contactar con el soporte de Platzi!!, la comunidad no tiene control de ello :)
cómo puedo configurar un runner en kubernetes para usar mi propio registry? sin morir en el intento 😅
Aunque gitlab ya la mayoría de sus features están pensados en que uses kubernetes como el orquestador de tus contenedores... no de esta de mal aprenderlo es bueno solo que para usar toda la potencia de gitlab es un requisito usar kubernetes.
Docker Swarm es también muy bueno yo lo uso y lo tengo integrado con gitlab solo que varias cosas me toca hacerlas manualmente como monitereo, escaneos etc cosa que gitlab y kuebernetes ya lo tiene activado de manera más fácil.
Para dejar claro para empaquetar aplicaciones con contenedores Docker es la mejor opción para controlar un cluster de contenedores gitlab tiene como requisito usar kubernetes.
excelente!!!
En nuestra compañia se usan aún máquinas virtuales.
Maquinas virtuales con el hypervisor VMware, registro publicos de hub.docker.com, images hechas por mi mismo de apps que la hice publicas, y el docker swarm para manejar algunos experimentos que ando haciendo internamente.
Ya conocía Docker y he experimentado con él pero este concepto y uso es nuevo para mi por lo que apenas es mi acercamiento y la verdad lo veo tan útil. Seguiré profundizando en el tema.
Es la primera vez que lo uso, siempre habia usado VM
una pregunta:
Esta sección de containers tampoco la voy a poder hacer si no tengo Google Cloud Platform??
porque no me aparece esa sección registry en el proyecto platzi-devops creado anteriormente.
Artifactory de JFrog sería una herramienta como GitLab container registry?
Te dejo una liga sobre más información acerca del Artifactory, espero te pueda servir.
Cada vez aprendo más y comprendo el proyecto en el cual estoy trabajando.