Su API Express falla en producción: ECONNRESET intermitente. A nivel local nada. En Railway, los registros muestran el error pero no el enchufe ascendente. En Docker Compose en preparación, se reproduce adjuntando docker exec y tcpdump. El joven pregunta: "¿Deberíamos migrar todo PaaS o todo Docker? »
La respuesta depende de dónde pierdes el tiempo hoy, no del dogma de los doce factores.
PaaS: depuración mediante observabilidad del editor
Beneficios: Registros agregados, métricas básicas, implementación de reversión con un solo clic, sin sistema operativo que parchear.
Límites de depuración: shell limitado o ausente, sistema de archivos efímero (volcados de núcleo perdidos), plazos impuestos (30 s, 60 s), "funciona en mi máquina" si buildpack ≠ Dockerfile local.
Railway, Render, Clever Cloud, Heroku: el mismo compromiso.
Docker: depurar mediante control de contenedor
Ventajas: docker logs, exec, misma imagen local/de producción, versión de Nodo congelada, reproducción de CI, tcpdump y sysctl personalizado si es VPS.
Límites: reúnes, compones, haces contactos, secretos; periódicos dispersos sin Loki o ELK; bad Dockerfile = producción frágil.
Tabla de decisiones de depuración
| Ubicación | Lean PaaS | VPS eficiente con Docker |
|---|---|---|
| Equipo sin explotación | ✓ | |
| Incidentes de red oscuros | ✓ | |
| Medio ambiente Vista previa PR | ✓ | Posible IC |
| WebSocket largo | Consultar plano | ✓ |
| Presupuesto ajustado a largo plazo | ✓ a menudo |
Prácticas comunes esenciales
Mapas fuente cargados en producción (Sentry). ID de correlación por consulta. Healthcheck /health + preparación separada. Preproducción = mismo resumen de imagen que en producción. Sin eso, PaaS y Docker tienen las mismas dificultades.
Costo y acceso al shell en producción.
PaaS a menudo cobra retención de registros y puestos de APM más allá de un umbral; el presupuesto se simulará durante doce meses. Docker en VPS ofrece tcpdump y strace, útiles para incidentes de red oscuros, pero requieren habilidad y tiempo. En una reunión de selección, pregunte: “¿Cuántos minutos se necesitan para reproducir el producto en una computadora portátil junior? » La respuesta destaca más que el logo de Railway o Docker.
Observabilidad común a ambos modelos.
Ya sea que elija PaaS o Docker, instale ID de correlación, verifique el estado por separado (en vivo o listo) y exporte métricas RED en rutas críticas. Los incidentes de nodo más prolongados provienen de tiempos de espera ascendentes (base, API de terceros) ocultos por un mensaje genérico "ECONNRESET". Realice un seguimiento de las llamadas salientes con OpenTelemetry o Sentry spans: el modelo de alojamiento importa menos que la visibilidad del gráfico de llamadas.
En Docker, congele la imagen mediante resumen en producción; en PaaS, documente la pila de paquete de compilación equivalente para que el desarrollador local reproduzca la misma versión de Nodo y las mismas variables.
Mida el tiempo promedio de resolución de incidentes durante seis meses antes de migrar.
Decide y avanza sin puntos ciegos
Instrument Sentry u OpenTelemetry antes de cualquier cambio de alojamiento para tener una línea de base. Adjunte un único comando de reproducción documentado en el archivo README (docker compose up o comando PaaS equivalente). Se requieren plazos de documentación, WebSocket y almacenamiento persistente. Compare PaaS y VPS a través del directorio y el comparador en cuanto a costos de registro y acceso al shell.
Preguntas frecuentes
¿Dónde ver los seguimientos de pila reales en producción?
PaaS: panel de registro + APM si está activado. Docker: contenedor + archivo registra el volumen, pero los mapas de origen y NODE_ENV deben estar alineados. Ambos requieren Sentry u OpenTelemetry para el contexto de consulta.
¿Docker reproduce mejor la producción localmente?
Sí, si la misma imagen/etiqueta, las mismas variables y composición están cerca de la producción. PaaS reproducida a través de contenedores de paquetes de compilación, que a veces divergen del Mac M1 local sin prestar atención a las arquitecturas.
PaaS Node gratis o barato, ¿obstáculos?
Dyno Sleep, sistema de archivos efímero, breve retraso en la solicitud, sin WebSocket largo: errores clásicos de "funciona localmente".
¿Cuándo Docker en VPS supera a PaaS en depuración?
Incidentes de red de bajo nivel, necesidad de strace/tcpdump, versiones de nodos exóticos o costos prolongados de retención de registros sin costos adicionales de editor.
Nodo PaaS o Docker: elija el lugar donde menos se encuentra la preproducción, no el que tenga la consola de registro más bonita.
