Apuntes DAM
Tema 1 de 7DAW · 2º DAW

Despliegue de Aplicaciones Web

Arquitecturas de Despliegue y la Nube

Entornos de desarrollo, pruebas y producción, piezas de una arquitectura web (DNS, CDN, balanceador, proxy, aplicación, base de datos), escalado vertical y horizontal, y modelos de alojamiento: on-premise, IaaS, PaaS, serverless y estático.

40 min lecturaPrincipiante

1. Del «en mi ordenador funciona» a producción

Una aplicación que solo funciona en tu portátil no le sirve a nadie. Desplegar es llevarla a un servidor donde los usuarios puedan usarla, y conseguir que siga funcionando cuando haya cien veces más visitas, cuando se caiga un disco o cuando publiques una versión nueva un viernes por la tarde. Es un trabajo a medio camino entre el desarrollo y la administración de sistemas, y en las empresas lo hacen perfiles con nombres como administrador de sistemas, DevOps o SRE.

La frase «en mi ordenador funciona» resume el problema clásico: tu equipo tiene una versión de PHP, unas librerías, unas variables de entorno y unos permisos que el servidor no tiene. Buena parte de este módulo trata de eliminar esas diferencias y automatizar el camino hasta producción para que sea repetible y aburrido. En despliegue, aburrido es un elogio.

EntornoPara quéQuién lo usa
DesarrolloProgramar y probar mientras escribesCada desarrollador, en su equipo
Pruebas o stagingUna copia lo más parecida posible a producción para validar antes de publicarEl equipo, QA y el cliente
ProducciónEl sistema real, con datos y usuarios realesLos usuarios; los cambios, solo por el proceso de despliegue

2. Las piezas de una arquitectura web

Una aplicación pequeña puede vivir entera en un único servidor. A medida que crece, cada pieza se separa en su propia máquina o servicio para poder escalarla y protegerla por separado. Conocer el papel de cada pieza es lo primero para entender cualquier diagrama de arquitectura.

Una arquitectura web es como un gran restaurante

Recepción: balanceador y proxy
Recibe a todos los clientes, les asigna mesa y reparte el trabajo entre los camareros.
Camareros y cocina: servidores de aplicaciones
Varios iguales trabajando a la vez; si uno falta, los demás siguen atendiendo.
Despensa: base de datos y ficheros
Un único sitio con los ingredientes, protegido y con copias de seguridad.
PiezaFunciónEjemplos
DNSTraduce el nombre del dominio a la IP del servidorBIND, Cloudflare, Route 53
CDNCopias de los ficheros estáticos repartidas por el mundo, cerca del usuarioCloudflare, CloudFront, Fastly
Balanceador de cargaReparte las peticiones entre varios servidores y deja de enviar a los que fallanHAProxy, Nginx, balanceadores del proveedor cloud
Servidor web / proxy inversoTermina HTTPS, sirve estáticos y pasa lo dinámico a la aplicaciónNginx, Apache, Caddy, Traefik
Servidor de aplicacionesEjecuta el código de la aplicaciónPHP-FPM, Tomcat, Node.js
Base de datosGuarda los datos de forma persistenteMySQL, MariaDB, PostgreSQL
Caché y colasGuardan datos calculados y encolan tareas lentasRedis, RabbitMQ

Escalar: hacia arriba o hacia los lados

Cuando un servidor se queda corto hay dos caminos. Escalar verticalmente es darle más CPU y memoria: es sencillo, pero tiene un techo y el servidor sigue siendo un punto único de fallo. Escalar horizontalmente es añadir más servidores iguales detrás de un balanceador: no tiene techo práctico y, si uno cae, los demás siguen. Para escalar horizontalmente, la aplicación debe ser sin estado: nada de guardar sesiones o ficheros subidos en el disco local de un servidor concreto, sino en Redis, en la base de datos o en un almacenamiento compartido.

3. Dónde desplegar: de tu propio servidor a la nube

La gran decisión es cuánto quieres gestionar tú y cuánto delegas en un proveedor. Cuanto más delegas, menos trabajo y más rapidez, a cambio de menos control y, a veces, más coste y dependencia del proveedor.

ModeloTú gestionasEl proveedor gestionaEjemplos
On-premiseTodo: edificio, hardware, red, sistema, aplicaciónNadaEl CPD de la propia empresa
VPS / IaaSSistema operativo, software y aplicaciónHardware, red y virtualizaciónHetzner, OVH, AWS EC2, Azure VM
PaaSLa aplicación y su configuraciónServidores, sistema, escaladoHeroku, Render, Railway, Google App Engine
Contenedores gestionadosImágenes y su configuraciónEl clúster donde se ejecutanGoogle Cloud Run, AWS ECS, Kubernetes gestionado
Serverless / FaaSSolo funciones de códigoTodo lo demás, y cobra por ejecuciónAWS Lambda, Cloudflare Workers
Estático + edgeLos ficheros generadosSu distribución mundialVercel, Netlify, GitHub Pages

Esta web, por ejemplo, está en Vercel: las páginas se generan como HTML al construir el proyecto y se sirven desde una red mundial, mientras que la base de datos de progreso de los usuarios es un servicio gestionado aparte. Para los proyectos del ciclo, un VPS barato con Linux es la mejor escuela, porque te obliga a entender cada pieza.

La nube no es gratis ni mágica

La facilidad de crear recursos con un clic hace fácil olvidarse de ellos. Configura alertas de gasto, apaga lo que no uses y recuerda que las copias de seguridad y la seguridad siguen siendo responsabilidad tuya aunque el servidor sea de otro (el llamado modelo de responsabilidad compartida).
CLOUD COMPUTING ¿Qué es IaaS, PaaS y Saas? | Modelos de Servicio Cloud — AlbertoLopez TECH TIPS

4. Criterios para elegir una arquitectura

  1. Carga esperada: usuarios simultáneos, picos (rebajas, matrículas) y crecimiento previsto.
  2. Disponibilidad: cuánto tiempo puede estar caída. Un 99,9 % permite casi 9 horas al año; un 99,99 %, menos de una.
  3. Datos: volumen, dónde deben estar alojados (el RGPD exige garantías para salir de la UE) y cómo se hacen las copias.
  4. Seguridad: qué se expone a internet, cómo se aíslan las piezas y quién puede entrar.
  5. Coste: no solo el de los servidores, también las horas de mantenimiento.
  6. Equipo: lo que sabe gestionar. La mejor arquitectura es la que tu equipo puede mantener de madrugada.

5. Ejercicios

Ejemplo Guiado
Medio

Diseña la arquitectura

Propón una arquitectura de despliegue (piezas, dónde se alojan y cómo escala) para cada caso y dibuja el diagrama: 1. La web de una academia de 200 alumnos con un formulario de contacto. 2. Una tienda online que multiplica por 20 su tráfico en el Black Friday. 3. Una aplicación de gestión para un hospital con datos de pacientes.

Ejemplo Guiado
Fácil

Calcula la disponibilidad

Un proveedor garantiza un 99,95 % de disponibilidad mensual. ¿Cuántos minutos puede estar caído al mes (30 días) sin incumplir? Si tu aplicación depende de dos servicios en serie (servidor 99,95 % y base de datos 99,9 %), ¿cuál es la disponibilidad del conjunto?

¿Has terminado este tema?

Crea una cuenta gratis para guardar qué temas has terminado, subir de nivel y ganar medallas.

Guardar mi progreso