// Engineering Log
CI/CD: de «en mi ordenador funcionaba» al despliegue automático
Publicado el 14.11.2025
// Ruta rapida
Este articulo pertenece al tema Despliegue y estabilidad.
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.
// Tarea parecida
Si estas resolviendo algo parecido
Este articulo pertenece a uno de los temas principales de trabajo. Puedes seguir leyendo sobre el tema, ir a la pagina principal para entender a que me dedico o abrir directamente los servicios.
Tema del articulo
Despliegue y estabilidad
Docker, CI/CD, despliegues, monitoreo, observabilidad y respuesta a incidentes.
Tareas frecuentes de esta tema
- Configurar despliegues sin trabajo manual ni caos
- Añadir monitoreo, alertas y observabilidad base
- Investigar incidentes y estabilizar produccion
// Siguiente paso
Si necesitas ayuda con este tema y no solo otro articulo, es mejor ir directo a la pagina del servicio. La pagina principal y la seleccion de materiales quedan como rutas secundarias.
Abrir servicios// Reviews
Reseñas relacionadas
Llegué con una solicitud costosa para la configuración de un servidor VPS, pero durante la consulta Mikhail propuso una solución mucho más sencilla y económica. Al final ahorré dinero y tiempo. Mikhail — un verdadero experto que trabaja por el resultado del cliente, no por la factura. ¡Lo recomiendo!
Llegué con una solicitud costosa para la configuración de un servidor VPS, pero durante la consulta Mikhail propuso una solución mucho más simple y económica. Al final ahorré presupuesto y tiempo. Mikhail es un …
Configuración de VPS, configuración del servidor
12.05.2026 · ★ 5/5
¡Excelente trabajo! Configuró el servidor muy rápido, instaló el panel y configuró la IP. ¡Sin duda lo recomiendo!
¡Excelente trabajo! Muy rápido configuró el servidor, instaló el panel y configuró la IP. ¡Sin duda lo recomiendo!
Configuración de VPS, configuración del servidor
19.04.2026 · ★ 5/5
Todo perfecto, ayudó de forma rápida y profesional, gracias, lo recomiendo a la comunidad
Todo perfecto, ayudó de forma rápida y profesional, gracias, lo recomiendo a la comunidad
Configuración de VPS, configuración del servidor
16.04.2026 · ★ 5/5
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.
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 …
Configuración de VPS, configuración del servidor
18.02.2026 · ★ 5/5
Todo se hizo de manera rápida y precisa. Lo recomiendo.
Todo se hizo rápido y con precisión. Lo recomiendo.
Configuración de VPS, configuración del servidor
17.01.2026 · ★ 5/5
Todo salió bien, el profesional respondió rápidamente a las preguntas y ayudó a resolver el problema. ¡Gracias!
Todo fue bien, el profesional respondió rápidamente a las preguntas y ayudó a resolver el problema. ¡Gracias!
Configuración de VPS, configuración del servidor
16.12.2025 · ★ 5/5
// Contact
¿Necesitas ayuda?
Escríbeme y te ayudaré a resolver el problema
// Related