4. Infraestructuras de despliegue y recursos en la nube
Para que una aplicación web pueda utilizarse desde otros equipos necesitamos desplegarla en una infraestructura accesible por red.
Esa infraestructura puede ser una máquina que administramos nosotros mismos o estar formada por recursos proporcionados por un proveedor.
Al elegir dónde desplegar una aplicación debemos valorar, entre otras cuestiones:
- Los recursos que necesita.
- El nivel de control que queremos tener.
- Quién administrará el sistema.
- Cómo puede crecer si aumenta el número de usuarios.
- El coste y la disponibilidad necesarios.
Desplegar una aplicación significa preparar y poner en funcionamiento todo lo necesario para que pueda ejecutarse y ser utilizada en el entorno de destino.
4.1. Dónde podemos alojar una aplicación web
No existe una única forma de publicar una aplicación web. Algunas alternativas habituales son:
| Alternativa | Características principales | Nivel de control |
|---|---|---|
| Servidor propio | La organización dispone y administra el hardware, el sistema operativo, la red y los servicios. | Muy alto. |
| Hosting compartido | Varios clientes comparten un servidor gestionado por un proveedor. Normalmente ofrece un entorno previamente configurado. | Bajo. |
| VPS | Máquina virtual alojada en un proveedor que podemos administrar de forma similar a un servidor propio. | Alto. |
| Servidor dedicado | Máquina física reservada para un único cliente o proyecto. | Muy alto. |
| Cloud | Recursos que pueden aprovisionarse y modificarse bajo demanda. | Variable según el servicio. |
Un VPS resulta especialmente fácil de relacionar con nuestro entorno de trabajo: se parece a una máquina virtual Debian que, en lugar de ejecutarse en nuestro ordenador, se encuentra en la infraestructura de un proveedor.

La infraestructura responde principalmente a:
¿dónde se ejecuta nuestra aplicación?
El stack tecnológico responde a:
¿qué tecnologías utilizamos para ejecutarla?
Por ejemplo, sobre un VPS podríamos instalar un sistema operativo, un servidor web, una base de datos y el entorno necesario para nuestra aplicación.
4.2. Recursos en la nube
La computación en la nube (cloud computing) permite utilizar recursos informáticos proporcionados a través de la red y adaptarlos a las necesidades del servicio.
No significa simplemente disponer de un servidor remoto. Una infraestructura cloud se caracteriza por ofrecer recursos que pueden gestionarse con flexibilidad y, habitualmente, bajo demanda.
Entre sus características principales encontramos:
- Autoservicio bajo demanda. Podemos crear o modificar recursos cuando los necesitamos.
- Acceso mediante red. Los servicios se utilizan a través de mecanismos de red.
- Recursos compartidos. La infraestructura física puede atender a múltiples clientes manteniendo separados sus recursos.
- Elasticidad. Podemos aumentar o reducir capacidad.
- Servicio medido. El consumo puede supervisarse y utilizarse para controlar el coste.
Recursos habituales
En una plataforma cloud podemos encontrar, entre otros:
| Recurso | Utilidad |
|---|---|
| Cómputo | Ejecutar máquinas virtuales o aplicaciones. |
| Almacenamiento | Guardar archivos y copias de seguridad. |
| Redes | Conectar recursos y controlar su acceso. |
| Bases de datos gestionadas | Utilizar una base de datos sin administrar toda la infraestructura que la ejecuta. |
| Balanceadores de carga | Distribuir peticiones entre varias instancias. |
| Monitorización | Observar el estado y consumo de los recursos. |

El uso de cloud puede aportar:
- Aprovisionamiento rápido.
- Posibilidad de ampliar o reducir recursos.
- Acceso a servicios gestionados.
- Menor necesidad de adquirir hardware propio.
- Medición del consumo.
También debemos valorar:
- El coste de los recursos utilizados.
- La seguridad y los permisos.
- La protección de los datos.
- La dependencia de la conexión y de los servicios contratados.
- La necesidad de monitorizar el consumo.
Utilizar un proveedor cloud no significa automáticamente que una aplicación nunca vaya a fallar.
La disponibilidad depende también de cómo diseñemos y configuremos la infraestructura.
4.3. IaaS, PaaS y SaaS
Según la parte del entorno que administra el proveedor, podemos distinguir tres modelos habituales:
| Modelo | Qué recibimos | Qué administramos principalmente |
|---|---|---|
| IaaS | Infraestructura como máquinas virtuales, redes y almacenamiento. | Sistema operativo, servicios y aplicación. |
| PaaS | Una plataforma preparada para ejecutar aplicaciones. | Principalmente la aplicación y sus datos. |
| SaaS | Una aplicación ya desplegada y disponible como servicio. | Su uso y configuración dentro de las opciones permitidas. |
Para este módulo, IaaS es el modelo más fácil de relacionar con nuestra máquina Debian: seguimos administrando el sistema operativo y los servicios, aunque la máquina se ejecute en la infraestructura de un proveedor.
En PaaS administramos menos infraestructura y nos centramos más en desplegar la aplicación.
En SaaS normalmente somos usuarios de una aplicación que ya ha sido desplegada por el proveedor.

4.4. Escalabilidad
El número de usuarios de una aplicación puede cambiar con el tiempo. Si aumenta la carga, puede ser necesario aumentar también los recursos disponibles.
La escalabilidad es la capacidad de un sistema para adaptarse a esos cambios.
Escalabilidad vertical
Consiste en aumentar los recursos de una misma máquina:
- Más CPU.
- Más memoria RAM.
- Almacenamiento más rápido o de mayor capacidad.
Podemos resumirlo como:
servidor → servidor más potente
Escalabilidad horizontal
Consiste en utilizar varias máquinas o instancias para realizar una misma función:
1 servidor → varios servidores
Cuando varios servidores pueden atender las mismas peticiones, un balanceador de carga puede distribuir el trabajo entre ellos.
De forma simplificada:
clientes → balanceador → servidor 1 / servidor 2 / servidor 3

Escalar verticalmente significa aumentar los recursos de una máquina.
Escalar horizontalmente significa aumentar el número de máquinas o instancias.
Elegir una alternativa
No existe una infraestructura adecuada para todos los proyectos.
Antes de decidir dónde desplegar una aplicación podemos preguntarnos:
- ¿Qué nivel de control necesitamos?
- ¿Quién administrará el sistema operativo y los servicios?
- ¿Qué recursos necesita la aplicación?
- ¿Puede variar mucho el número de usuarios?
- ¿Qué disponibilidad necesitamos?
- ¿Qué coste podemos asumir?
Durante el desarrollo podemos ejecutar una aplicación en nuestra máquina virtual local.
Para publicarla podríamos utilizar un VPS si queremos administrar nuestro propio sistema.
Si necesitamos crear o eliminar recursos con rapidez, una infraestructura cloud puede facilitar el crecimiento.
Si además queremos administrar menos infraestructura, podríamos utilizar una plataforma PaaS.
4.5. Para saber más
Si quieres ampliar algunos de los conceptos de este apartado, puedes consultar:
- Definición de computación en la nube — NIST SP 800-145.
- Evaluación de servicios cloud — NIST SP 500-322.
- Conceptos de rendimiento web — MDN.
Estos recursos son complementarios y no es necesario estudiarlos en profundidad para seguir la unidad.