CI/CD: de «en mi ordenador funcionaba» al despliegue automático
Publicado el 14.11.2025
Guía sencilla para principiantes: Jenkins → GitLab → GitHub → GitOps
¡Hola!
¿Acabas de empezar en DevOps o ya estás cansado de oír «y en nuestra empresa tenemos CI/CD» en las entrevistas? ¿Quieres finalmente entender por qué el código que funciona en tu portátil falla en el servidor?
Este artículo es tu primer paso hacia la automatización. Y será realmente sencillo.
Lo desglosaremos todo, sin términos cargados y con ejemplos.
¿Qué es CI/CD (muy simple)
CI/CD — es cuando presionas
git pushy todo lo demás sucede automáticamente.
Veámoslo por partes:
| Abreviatura | Qué significa | Para qué sirve |
|---|---|---|
| CI (Continuous Integration) | Integración continua | Para que el código de distintos desarrolladores no se rompa entre sí |
| CD (Continuous Delivery / Deployment) | Entrega continua | Para que las actualizaciones se puedan desplegar con un botón — o incluso sin botón |
Ejemplo de la vida real
Tú y un amigo escriben un sitio web.
- Sin CI: el viernes intentan fusionar el código → cientos de errores → adiós fin de semana.
- Con CI: cada
git pushactiva los tests → los errores se ven de inmediato.
Herramientas: del «abuelo» a las «de moda»
Jenkins — «el abuelo del CI/CD»
Jenkins es como una máquina industrial vieja pero potente. Se puede hacer prácticamente cualquier cosa, pero tendrás que aprender a convivir con él.
Cómo funciona
- Instalas Jenkins en un servidor
- Escribes instrucciones en
Jenkinsfile - Jenkins vigila Git y ejecuta los pipelines
Ventajas
- Máxima flexibilidad
- Miles de plugins
Desventajas
- Soporte, actualizaciones y mantenimiento — a tu cargo
- La interfaz no ha cambiado en muchos años
Para quién
Empresas grandes o proyectos con legado histórico.
GitLab CI/CD — «todo en uno»
GitLab no es solo un reemplazo de GitHub. Es una especie de cosechadora DevOps: CI/CD, Registry, monitorización, seguridad.
Cómo empezar en 5 minutos
- Crea un repositorio
- Añade el archivo
.gitlab-ci.yml:
stages:
- test
- build
test:
stage: test
script:
- echo "Ejecutando pruebas..."
build:
stage: build
script:
- echo "Construyendo la imagen Docker..."
- Haz
git push— y el pipeline se ejecutará automáticamente.
Ventajas
- No necesitas desplegar nada
- Todo en un mismo panel: código → compilación → contenedor → despliegue
- Generosas minutos gratuitos de CI
Desventajas
- Si el equipo ya usa GitHub, migrar será complicado
Para quién Equipos que necesitan todo listo para usar.
GitHub Actions — CI/CD directamente en GitHub
¿Tienes el código en GitHub? Entonces CI/CD ya te espera.
Crea la carpeta .github/workflows/.
Ejemplo: ejecutar tests en cada push
name: Pruebas
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Ejecutar pruebas
run: echo "Aquí podría estar pytest"
Ventajas
- Marketplace con una gran cantidad de acciones listas
- Gratis para repositorios públicos
- Integración sencilla con nubes y servicios
Desventajas
- Límites de minutos para repositorios privados
Para quién Para todos los que ya usan GitHub. Estándar de facto.
Runner — quién ejecuta las tareas
El pipeline es la receta.
El Runner es el cocinero que prepara según la receta.
| Plataforma | Tipos de Runners |
|---|---|
| GitLab | Shared (compartidos) y Self-hosted |
| GitHub | Hosted (máquinas de GitHub) y Self-hosted |
GitOps — nivel «Profesional»
GitOps es un enfoque en el que Git es la única fuente de la verdad.
Principio sencillo
- Cambias un YAML en Git → el clúster se actualiza automáticamente
- Ejecutar
kubectl applymanualmente → se considera mala práctica
Por qué es potente
- Las configuraciones son reproducibles
- Siempre hay registros e historial de cambios
- El servidor siempre representa el “estado desde Git”
Herramientas GitOps
| Instrumento | Descripción |
|---|---|
| Argo CD | Panel bonito. Se ven el estado Desired y Actual. |
| Flux CD | Minimalismo. Todo se gestiona vía Git, casi sin UI. |
Qué herramienta elegir
| Situación | Elección |
|---|---|
| Almacenas el código en GitHub | GitHub Actions |
| Quieres todo en uno | GitLab CI |
| Infraestructura histórica compleja | Jenkins |
| Kubernetes + automatización | GitHub/GitLab + Argo/Flux |
Configura tu primer pipeline (5 minutos)
- Crea un repositorio privado en GitHub
- Añade el archivo
.github/workflows/ci.yml:
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "¡Hola, CI/CD! 👋"
- run: echo "Pruebas aprobadas ✅"
- Haz
git pushy abre la pestaña Actions
Listo — tu primer CI/CD está funcionando.
Consejos útiles
- Empieza por lo básico:
build → test. - No guardes contraseñas en el repositorio — usa Secrets.
- Ejecuta el despliegue solo desde la rama
main. - Los pipelines deben ser cortos y claros.
Conclusión
Ya has dado el primer paso.
Hoy — CI simple.
En una semana — ejecución de tests.
En un mes — construcción de imágenes Docker.
En medio año — GitOps y despliegues automáticos.
CI/CD no es magia. Es simplemente la automatización de tus pasos habituales de desarrollo.
Y seguro que lo lograrás.
Reseñas relacionadas
Hubo varios problemas, tanto en la parte técnica como en la comprensión general. Mijaíl respondió rápido a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos; por ello, muchas gracias. Estoy satisfecho con el resultado.
abazawolf · Configuración de VPS, configuración del servidor
18.02.2026 · ⭐ 5/5
Hubo varios problemas relacionados tanto con la parte técnica como con la comprensión en general. Mijaíl respondió rápidamente a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos, por lo que le doy las gracias por ello. Estoy satisfecho con el resultado.
Todo se hizo de manera rápida y precisa. Lo recomiendo.
Akelebra · Configuración de VPS, configuración del servidor
17.01.2026 · ⭐ 5/5
Todo se hizo rápido y con precisión. Lo recomiendo.
Todo salió bien, el profesional respondió rápidamente a las preguntas y ayudó a resolver el problema. ¡Gracias!
visupSTUDIO · Configuración de VPS, configuración del servidor
16.12.2025 · ⭐ 5/5
Todo fue bien, el profesional respondió rápidamente a las preguntas y ayudó a resolver el problema. ¡Gracias!
Lo hicieron todo con rapidez. Seguiremos acudiendo. ¡Lo recomiendo!
rotant · Configuración de VPS, configuración del servidor
10.12.2025 · ⭐ 5/5
Todo lo hicieron con rapidez. Seguiremos acudiendo. ¡Lo recomiendo!
Hicieron todo rápidamente. Mijaíl siempre está disponible. Seguiremos recurriendo a él.
samstiray · Configuración de VPS, configuración del servidor
10.12.2025 · ⭐ 5/5
Todo se hizo con rapidez. Михаил siempre está en contacto. Seguiremos recurriendo a él
¡Mijaíl es un profesional! Ya no es la primera vez que lo demuestra en la práctica.
Vadim_U · Configuración de VPS, configuración del servidor
Cliente acostumbrado03.12.2025 · ⭐ 5/5
Михаил, ¡un profesional! Ya lo ha demostrado en la práctica más de una vez.