5.4 · Despliegue y CI/CD (Render, Railway, VPS)

Nivel 5 · Nivel pro & despliegue

5.4Despliegue y CI/CD (Render, Railway, VPS)

Objetivo: llevar su aplicación a producción (despliegue en una plataforma, variables de entorno, HTTPS) y automatizar la entrega (CI/CD) — el ciclo completo, de la idea al servicio en línea fiable.
Tiempo estimado: 11 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

Lo esencial en 30 segundos

  • Desplegar = poner en línea : hacer correr la app en un servidor accesible — PaaS simple para empezar, VPS para el control.
  • CI/CD = entrega auto : en cada push, probar (CI) y luego desplegar si todo pasa (CD) — fin del despliegue manual arriesgado.
  • Secretos fuera del código : config y secretos en variables de entorno — nunca en el código ni en Git.

Mini-caso hilado — Salim pone en línea en Argel

La API contenerizada de Salim corre bien — pero solo en los puestos del equipo en Argel. La despliega en una plataforma : repositorio conectado, variables de entorno informadas en la plataforma, HTTPS activo. Luego añade un pipeline : en cada push, los tests corren, y el despliegue sigue solo si pasan. Último episodio de los casos 5.1-5.3 — Salim entrega un verdadero servicio en línea.

Último episodio de los casos 5.1-5.3 — Salim cierra tipado, rendimiento y Docker con la puesta en producción.

1. Desplegar : PaaS o VPS

El despliegue hace correr la aplicación en un servidor accesible en Internet (en vez de localhost). Las plataformas PaaS lo simplifican todo : se conecta su repositorio Git, la plataforma construye, lanza, gestiona servidor, HTTPS y escalado básico — con un nivel de entrada accesible para empezar — ideales para empezar. En el otro extremo, un VPS (servidor virtual alquilado) da más control pero más responsabilidades : instalar Node, configurar, asegurar, gestionar PM2, un reverse proxy, el HTTPS — más complejo, pero formador. Las grandes nubes ofrecen una paleta potente con curva de aprendizaje. Salim empieza por una PaaS : su API está en línea siguiendo la documentación de la plataforma, sin administrar servidor.

Recomendación : PaaS para poner sus proyectos en línea rápido, VPS para aprender la administración o ganar control, nube para necesidades avanzadas.

2. CI/CD y esenciales de producción

El CI/CD automatiza el camino código → producción. La integración continua : en cada push, un pipeline lanza los tests y el linting para detectar problemas pronto. El despliegue continuo : si todo pasa, el código se despliega automáticamente. GitHub Actions crea estos pipelines. Beneficios : automatización (más gestos manuales fastidiosos), fiabilidad (nada roto va a producción), rapidez (entregar a menudo con confianza), trazabilidad (cada despliegue ligado a un commit). Esenciales : variables de entorno (config + secretos, nunca en el código/Git), HTTPS, logs y monitorización, entornos separados (dev/staging/prod). Salim escribe su primer pipeline : instalar, probar, desplegar si verde — es la culminación, no solo crear sino entregar.

Incluso simple, un pipeline lo cambia todo : los tests ya nunca se « olvidan » antes de un despliegue.

3. Elegir sin equivocarse

El compromiso fundamental : simplicidad contra control. PaaS : simplicidad extrema, menos control fino, dependencia de la plataforma — perfecto para empezar y muchos proyectos. VPS : control total y flexibilidad, pero usted lo gestiona todo (seguridad, actualizaciones, copias) — formador, más exigente. Para un prototipo o un ejercicio, un despliegue manual basta ; en cuanto un proyecto es serio, se despliega regularmente o en equipo, incluso un CI/CD simple aporta valor real. Salim compara las ofertas de los alojadores (fórmulas y límites que cambian a menudo, verifica la documentación actual al elegir) y hace validar la elección de infraestructura sensible por su DSI antes de exponer datos reales.

En todo caso, los esenciales quedan : secretos en variables de entorno, HTTPS, logs y monitorización, entornos separados.

Error frecuente de interpretación: « Desplegar es copiar mis archivos a un servidor — y los secretos pueden quedarse en el código, es más simple ». No. Copiar a mano es el despliegue manual : fastidioso, fuente de errores, tests olvidados, versión incierta. Y secretos en el código o en Git es una falla grave : claves y contraseñas viven en las variables de entorno de la plataforma, nunca en el repositorio. Automatizar (CI/CD) + externalizar (variables de entorno), esa es la base.
Del código a producción Automatizar la entrega Push Git Una modificacióndel códigoCI Pipeline : tests+ lintingCD Despliegue autosi todo pasaEn línea PaaS/VPS + HTTPS+ monitorización
Automatizar la entrega
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Push : Salim sube su código en Argel. 2) CI : el pipeline instala, prueba y verifica — todo fallo bloquea lo siguiente. 3) CD : si todo pasa, despliegue automático hacia la plataforma. 4) En línea : la app corre con HTTPS, variables de entorno y monitorización. Lección : automatizar la entrega para no desplegar nunca más a ciegas.

🔎 Ejemplo concreto — El pipeline de Salim

En cada push : instalar, probar, desplegar si verde.

# GitHub Actions (.github/workflows/ci.yml)
# en cada push :
#   npm install → npm test → desplegar si verde
# secretos y config : variables de entorno de la plataforma
# PaaS : construye desde el repositorio, HTTPS auto

Lectura : el pipeline es la puerta : nada roto pasa.

Lección : los secretos viven en el entorno, nunca en el código.

Vocabulario de la sección

Despliegue
Hacer correr la app en un servidor accesible en Internet.

Ejemplo sencillo: La API de Salim deja localhost por una dirección pública.

Lo que no es: copiar archivos a mano sin pipeline.

Reflejo: ¿mi app es accesible fuera de mi puesto?

PaaS
Plataforma que construye y aloja la app desde el repositorio Git.

Ejemplo sencillo: Salim conecta su repositorio, la plataforma gestiona servidor y HTTPS.

Lo que no es: un servidor que se administra uno mismo.

Reflejo: ¿necesito control, o simplicidad?

VPS
Servidor virtual alquilado que se administra uno mismo.

Ejemplo sencillo: Salim instalaría ahí Node, PM2 y el HTTPS él mismo.

Lo que no es: una plataforma que gestiona la infraestructura.

Reflejo: ¿estoy listo para asumir seguridad y mantenimiento?

CI/CD
Pipeline que prueba en cada push y despliega si todo pasa.

Ejemplo sencillo: El push de Salim dispara tests y luego puesta en línea auto.

Lo que no es: un despliegue manual a base de comandos.

Reflejo: ¿un push puede ir a prod sin tests?

Variables de entorno
Config y secretos aportados por el entorno, fuera del código.

Ejemplo sencillo: La clave de Salim vive en la plataforma, nunca en Git.

Lo que no es: un secreto escrito en duro en el código.

Reflejo: ¿un secreto ronda por mi repositorio?

En la práctica — Desplegar y automatizar una aplicación

  1. Despliegue una aplicación Node en una plataforma PaaS simple : conecte su repositorio Git, la plataforma construye y lanza la aplicación, con HTTPS.
  2. Configure las variables de entorno en la plataforma (secretos, config) — nunca en el código ni Git.
  3. Ponga un pipeline CI/CD (GitHub Actions) : en cada push, lanzar los tests y desplegar automáticamente si todo pasa.
  4. Asegure los esenciales de producción : HTTPS, logs/monitorización, y entornos separados (dev/staging/prod).
Lleva su aplicación a producción (despliegue en una plataforma, variables de entorno, HTTPS) y automatiza la entrega (CI/CD) — el ciclo completo, de la idea al servicio en línea fiable.

Guion listo para decir — anunciar la puesta en línea

« Nuestra API está lista para salir de localhost : la despliego en una plataforma — repositorio conectado, secretos en variables de entorno, HTTPS activo. Añado un pipeline simple : tests en cada push, despliegue solo si todo pasa. Antes de exponer datos reales, hago validar la elección de infraestructura por la DSI. »

Para decir al responsable para hacer validar la puesta en línea y el circuito DSI en datos sensibles.

Modelo copiar-pegar — pipeline CI genérico

name: CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: npm install
      - run: npm test

Solo / presupuesto pequeño

Salim solo : una PaaS + un pipeline que prueba en cada push basta — ningún servidor que administrar.

Pyme / equipo reducido

Entornos dev y prod separados, secretos en la plataforma : cada push probado antes de la puesta en línea.

Pyme en Argel

Salim hace validar el alojador y los accesos por la DSI en Argel antes de exponer datos reales de clientes.

Equipo que empieza

Pareja : uno escribe el pipeline, el otro verifica secretos y HTTPS ; revisión antes del primer despliegue auto.

Prudencia: Secretos : no ponga nunca claves, contraseñas ni tokens en el código, el Dockerfile, la imagen o el repositorio Git — use las variables de entorno de la plataforma. Costes : las fórmulas y límites de los alojadores cambian a menudo, sin compromiso aquí — verifique la documentación actual de la plataforma al elegir, sin fiarse de cifras antiguas. Datos sensibles : haga validar la elección de infraestructura y los accesos por la DSI (y un jurista si hace falta) antes de exponer datos reales.

✓ Buenas prácticas

  • Empezar con una plataforma PaaS : simple, HTTPS gestionado.
  • Poner config y secretos en variables de entorno (nunca en Git).
  • Automatizar tests + despliegue con un pipeline CI/CD (GitHub Actions).

✗ Errores frecuentes

  • Poner secretos en el código o el repositorio Git.
  • Desplegar sin HTTPS (contraseñas y datos en claro).
  • Desplegar manual y a ciegas (sin tests automatizados previos).

Puntos clave

  • DESPLIEGUE : hacer correr la app en un servidor accesible (en vez de localhost). PaaS (simple) o VPS/nube (más control).
  • CI/CD (GitHub Actions) automatiza código → producción : CI (probar en cada push), CD (desplegar si todo pasa). Automatización, fiabilidad, rapidez, trazabilidad.
  • Esenciales de producción : VARIABLES DE ENTORNO (config + secretos, nunca en el código/Git), HTTPS, logs/monitorización, entornos separados.
  • Es la culminación del recorrido : no solo CREAR una aplicación, sino ENTREGARLA — un servicio real, en línea, fiable.

Reto 48h — aplica mañana

Despliegue 1 app en una plataforma (repositorio conectado + HTTPS) con sus secretos en variables de entorno : ¿un push dispara los tests?

Lista de salida de la sección
  • Puedo explicar CI frente a CD en una frase.
  • Mi app está en línea (HTTPS) sin secreto en Git.
  • Sé cuándo pasar de PaaS a VPS.
Autoevaluación 1-5 : ¿mi despliegue es reproducible y trazado?¿ningún secreto ronda por mi código o mi historial Git?

Preguntas frecuentes

PaaS, VPS o nube : ¿cómo elegir dónde desplegar mi aplicación Node?

Según su necesidad y su nivel. Las plataformas PaaS simplifican enormemente : se conecta su repositorio Git, la plataforma construye y lanza la aplicación, gestiona el servidor, el HTTPS y el escalado básico — ideales para empezar y para muchos proyectos. Un VPS (servidor virtual alquilado) da más control pero más responsabilidades : usted lo administra todo (Node, PM2, reverse proxy, HTTPS) — más complejo, pero formador. Las grandes nubes ofrecen una paleta potente con curva de aprendizaje. Recomendación : empiece por una PaaS para poner sus proyectos en línea ; pase al VPS para aprender la administración ; explore la nube para necesidades avanzadas. Compare las ofertas al elegir (cambian) y haga validar por la DSI antes de exponer datos sensibles.

¿Por qué poner un CI/CD, y es necesario para pequeños proyectos?

El CI/CD automatiza el camino del código a la producción : CI (en cada push, el pipeline verifica — tests, linting), CD (si todo pasa, despliegue auto). Beneficios : automatización (fin de lo manual fastidioso y arriesgado), fiabilidad (nada roto va a producción), rapidez (entregar a menudo con confianza), trazabilidad (cada despliegue ligado a un commit). Para un prototipo desechable, no estrictamente necesario. En cuanto un proyecto es serio, se despliega regularmente o en equipo, incluso un pipeline simple aporta valor real. Empiece simple : instalar, probar, desplegar si todo pasa.

Comprueba tu comprensión

¿Qué hace un pipeline CI/CD?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 5Preguntas inéditas y más difíciles para validar tus conocimientos