El cloud computing (computación en la nube) es la entrega bajo demanda de recursos informáticos (servidores, almacenamiento, bases de datos, red, software) a través de Internet, con un modelo de pago por uso. En lugar de comprar, instalar y mantener hardware propio en un centro de datos físico, una empresa alquila esos recursos a un proveedor (AWS, Microsoft Azure, Google Cloud, etc.) y los consume como un servicio. Esto es relevante porque cambia radicalmente el modelo de costes (de inversión CAPEX a gasto operativo OPEX), permite escalar en minutos en lugar de meses y traslada parte de la responsabilidad operativa al proveedor. Comprender los modelos de servicio, los modelos de despliegue y, sobre todo, el reparto de responsabilidades es la base de cualquier decisión arquitectónica en la nube.
Contenido
- Qué problema resuelve la nube y características esenciales.
- Modelos de servicio: IaaS, PaaS y SaaS.
- Modelos de despliegue: público, privado, híbrido y multinube.
- El modelo de responsabilidad compartida.
- Geografía de la nube: regiones, zonas de disponibilidad y edge.
- Errores comunes y consejos.
- Ejercicios y soluciones.
- Qué problema resuelve la nube
Antes de la nube, desplegar una aplicación implicaba comprar servidores, esperar semanas a su entrega, instalarlos en un rack, configurar red y refrigeración, y mantenerlos durante años aunque la demanda fuera variable. La nube resuelve esto con cinco características esenciales (definidas por el NIST, el instituto de estándares estadounidense):
- Autoservicio bajo demanda: el usuario aprovisiona recursos por sí mismo, sin intervención humana del proveedor.
- Acceso amplio por red: los recursos están disponibles a través de la red mediante mecanismos estándar.
- Agrupación de recursos (resource pooling): el proveedor sirve a múltiples clientes con infraestructura compartida (multi-tenant).
- Elasticidad rápida: la capacidad escala hacia arriba o hacia abajo de forma automática según la demanda.
- Servicio medido (measured service): el consumo se mide y se factura de forma transparente (pago por uso).
- Modelos de servicio: IaaS, PaaS y SaaS
Los tres modelos clásicos se diferencian por cuánto gestiona el proveedor y cuánto gestionas tú. Una analogía útil es la pizza: hacerla en casa (on-premises), comprar la masa congelada (IaaS), pedirla a domicilio (PaaS) o ir a un restaurante (SaaS).
| Aspecto | On-premises | IaaS | PaaS | SaaS |
|---|---|---|---|---|
| Qué obtienes | Nada, lo montas todo | Máquinas virtuales, red, disco | Plataforma para desplegar código | Aplicación lista para usar |
| Tú gestionas | Todo | SO, runtime, app, datos | App y datos | Solo tus datos/config |
| El proveedor gestiona | Nada | Hardware, virtualización, red | Hasta el runtime | Todo |
| Ejemplos | Servidor en tu sala | AWS EC2, Azure VM, GCE | Heroku, App Engine, Azure App Service | Gmail, Salesforce, Microsoft 365 |
| Control | Máximo | Alto | Medio | Bajo |
| Esfuerzo operativo | Máximo | Alto | Medio | Mínimo |
- IaaS (Infraestructura como Servicio): alquilas los bloques básicos (CPU, RAM, disco, red) normalmente como máquinas virtuales. Tú instalas el sistema operativo, el runtime y la aplicación. Máxima flexibilidad, máxima responsabilidad.
- PaaS (Plataforma como Servicio): subes tu código y el proveedor se encarga del sistema operativo, los parches, el escalado y el balanceo. Ideal para acelerar el desarrollo sin gestionar servidores.
- SaaS (Software como Servicio): consumes una aplicación completa por suscripción. No gestionas nada de la infraestructura; solo usas y configuras.
Existen modelos más recientes como FaaS (Funciones como Servicio, base del serverless) y CaaS (Contenedores como Servicio), que veremos en lecciones posteriores.
- Modelos de despliegue
El modelo de servicio responde a "qué nivel de abstracción consumo"; el modelo de despliegue responde a "dónde y para quién vive esa nube".
| Modelo | Dónde reside | Quién lo usa | Ventaja principal | Inconveniente |
|---|---|---|---|---|
| Público | Infraestructura del proveedor | Multiples clientes | Escala y coste por uso | Menos control y soberanía del dato |
| Privado | Dedicada a una organización | Una sola organización | Control y cumplimiento | Coste y mantenimiento elevados |
| Híbrido | Mezcla pública + privada | Una organización | Flexibilidad y transición | Complejidad de integración |
| Multinube | Varios proveedores públicos | Una organización | Evita dependencia (lock-in) | Complejidad operativa alta |
- Nube pública: recursos compartidos del proveedor. Es el modelo más común por su elasticidad y coste.
- Nube privada: infraestructura dedicada (en tu CPD o alojada), habitual en sectores muy regulados como banca o seguros cuando hay requisitos estrictos de soberanía del dato.
- Nube híbrida: combina ambas, por ejemplo manteniendo datos sensibles en privado y desbordando picos de carga a la pública (cloud bursting).
- Multinube: se usan varios proveedores públicos a la vez, para evitar dependencia de uno solo o aprovechar lo mejor de cada uno.
- El modelo de responsabilidad compartida
Este es el concepto más importante y peor entendido de la seguridad en la nube. La idea: el proveedor es responsable de la seguridad de la nube (el hardware, la red física, la virtualización) y el cliente es responsable de la seguridad en la nube (sus datos, su configuración, sus accesos). La frontera se mueve según el modelo de servicio.
graph TD
subgraph IaaS
A1[Cliente: Datos, App, Runtime, SO] --- B1[Proveedor: Virtualizacion, Red, HW]
end
subgraph PaaS
A2[Cliente: Datos, App] --- B2[Proveedor: Runtime, SO, Virt, Red, HW]
end
subgraph SaaS
A3[Cliente: Datos y accesos] --- B3[Proveedor: Casi todo]
endExplicación del diagrama: a medida que pasamos de IaaS a SaaS, la caja del proveedor crece y la del cliente se reduce. Pero hay una constante: la responsabilidad sobre los datos y el control de accesos casi nunca se delega del todo. En IaaS tú parcheas el sistema operativo; en PaaS lo hace el proveedor; en SaaS gestionas únicamente quién accede y qué datos introduces.
Un error clásico es asumir que "está en la nube, luego es seguro". Si configuras mal un bucket de almacenamiento y lo dejas público, la fuga de datos es responsabilidad tuya, no del proveedor. En sectores regulados (por ejemplo aseguradoras sujetas a normativa como GDPR/LOPDGDD o DORA), entender esta frontera es crítico para el cumplimiento; cualquier diseño concreto debe validarse con el equipo de compliance correspondiente.
- Geografía de la nube: regiones y zonas
Los proveedores organizan su infraestructura física en una jerarquía geográfica:
- Región (region): una zona geográfica amplia (ej.
eu-west-1en Irlanda,eu-south-2en España). Eliges región por latencia (cercanía a usuarios), soberanía del dato (que los datos no salgan de la UE) y coste (los precios varían por región). - Zona de disponibilidad (Availability Zone, AZ): dentro de una región hay varias zonas, que son centros de datos físicamente separados pero conectados por red de baja latencia. Sirven para tolerancia a fallos: si una AZ cae (incendio, corte eléctrico), las otras siguen funcionando.
- Edge / puntos de presencia (PoP): ubicaciones cercanas al usuario final para cachear contenido (CDN) y reducir latencia.
# Ejemplo: listar regiones disponibles con la CLI de AWS aws ec2 describe-regions --query "Regions[].RegionName" --output table # Ejemplo: listar las zonas de disponibilidad de una region concreta aws ec2 describe-availability-zones --region eu-west-1 \ --query "AvailabilityZones[].ZoneName" --output table
Explicación de los comandos:
aws ec2 describe-regions: pide al proveedor el catálogo de regiones. El parámetro--queryfiltra la respuesta JSON para mostrar solo el nombre, y--output tablela presenta en tabla legible.aws ec2 describe-availability-zones --region eu-west-1: lista las zonas dentro de la región de Irlanda. Verás algo comoeu-west-1a,eu-west-1b,eu-west-1c. Distribuir tus servidores entre varias AZ es la práctica básica de alta disponibilidad.
La regla de oro de la resiliencia: despliega en al menos dos zonas de disponibilidad para sobrevivir a la caída de un centro de datos, y considera multi-región solo si necesitas recuperación ante desastres a escala geográfica (es más caro y complejo).
Errores Comunes y Consejos
- Confundir modelo de servicio con modelo de despliegue. Son ejes ortogonales: puedes tener IaaS en nube privada o SaaS en nube pública. No son lo mismo.
- Creer que "todo lo gestiona el proveedor". El modelo de responsabilidad compartida deja siempre los datos y los accesos de tu lado. Configura cifrado y permisos mínimos.
- Ignorar la región por descuido. Desplegar en EE. UU. datos de clientes europeos puede infringir normativa de protección de datos. Elige región consciente de la soberanía del dato.
- No usar varias zonas de disponibilidad. Un despliegue en una sola AZ no es alta disponibilidad: es un punto único de fallo con factura mensual.
- Subestimar el lock-in. Usar servicios propietarios acelera al principio pero ata a un proveedor. Valora el coste de migrar antes de comprometerte.
- Consejo: empieza por PaaS o servicios gestionados cuando puedas; baja a IaaS solo cuando necesites un control que la plataforma no te da.
Ejercicios
- Una startup quiere lanzar una API web rápido, sin equipo de operaciones, y prefiere no gestionar servidores ni parches. ¿Qué modelo de servicio recomendarías y por qué?
- Tu empresa almacena datos sensibles de clientes europeos. Explica dos decisiones de diseño relacionadas con regiones y responsabilidad compartida que debas tomar.
- Clasifica estos servicios en IaaS, PaaS o SaaS: (a) una máquina virtual Linux vacía, (b) Gmail, (c) una plataforma donde subes tu código y se despliega sola.
Soluciones
- PaaS. Al no tener equipo de operaciones y querer velocidad, lo ideal es subir el código a una plataforma gestionada (tipo App Service, App Engine o Heroku) que se ocupe del sistema operativo, los parches y el escalado. IaaS exigiría administrar servidores; SaaS no aplica porque desarrollan su propio software.
- (a) Elegir una región dentro de la UE (ej. España o Irlanda) para respetar la soberanía y la normativa de protección de datos, evitando que los datos residan fuera del territorio permitido. (b) Asumir la responsabilidad sobre el cifrado y los controles de acceso, ya que el modelo de responsabilidad compartida deja siempre la protección del dato del lado del cliente; el proveedor solo garantiza la seguridad de la infraestructura. Cualquier decisión concreta debe revisarla el equipo de compliance.
- (a) IaaS (te dan la infraestructura desnuda), (b) SaaS (aplicación lista para usar), (c) PaaS (plataforma para desplegar tu código).
Conclusión
Hemos visto qué es la nube, sus tres modelos de servicio (IaaS, PaaS, SaaS) y cómo se diferencian por el reparto de gestión, los modelos de despliegue (público, privado, híbrido, multinube), el crítico modelo de responsabilidad compartida y la geografía de regiones y zonas de disponibilidad. Estos fundamentos son la base sobre la que se construye todo lo demás. En la siguiente lección bajaremos un nivel de abstracción para empaquetar y ejecutar aplicaciones de forma portable y reproducible con contenedores y orquestación mediante Docker y Kubernetes.
Curso de Arquitectura de Aplicaciones
Módulo 1: Fundamentos de la Arquitectura de Aplicaciones
- ¿Qué es la Arquitectura de Aplicaciones?
- El Rol del Arquitecto de Software
- Atributos de Calidad y Requisitos No Funcionales
- Decisiones Arquitectónicas y Compromisos (Trade-offs)
- Documentación de Arquitectura: Vistas y el Modelo C4
Módulo 2: Principios y Tácticas de Diseño
- Acoplamiento, Cohesión y Separación de Responsabilidades
- Principios SOLID Aplicados a la Arquitectura
- DRY, KISS, YAGNI y Otros Principios de Diseño
- Tácticas Arquitectónicas para los Atributos de Calidad
- Gestión de la Deuda Técnica
Módulo 3: Estilos y Patrones Arquitectónicos
- Arquitectura Monolítica
- Arquitectura en Capas (N-Tier)
- Arquitectura Cliente-Servidor
- Arquitectura Hexagonal (Puertos y Adaptadores)
- Arquitectura Limpia y Cebolla (Clean & Onion)
Módulo 4: Arquitecturas Distribuidas y Microservicios
- Introducción a los Sistemas Distribuidos
- Arquitectura de Microservicios
- Descomposición de Servicios y Bounded Contexts
- API Gateway, Service Discovery y Comunicación entre Servicios
- Patrones de Resiliencia: Circuit Breaker, Retry y Bulkhead
- El Teorema CAP y la Consistencia de Datos
Módulo 5: Arquitecturas Dirigidas por Eventos y Mensajería
- Fundamentos de la Arquitectura Orientada a Eventos
- Mensajería Asíncrona: Colas y Brokers
- Patrones de Eventos: Event Sourcing y CQRS
- Gestión de Transacciones Distribuidas: Patrón Saga
- Streaming de Datos en Tiempo Real
Módulo 6: Diseño Dirigido por el Dominio (DDD)
- Conceptos Fundamentales del DDD
- Diseño Estratégico: Bounded Contexts y Lenguaje Ubicuo
- Diseño Táctico: Entidades, Agregados y Repositorios
- Mapeo de Contextos (Context Mapping)
Módulo 7: Datos y Persistencia
- Estrategias de Persistencia: SQL vs NoSQL
- Patrones de Acceso a Datos: Repository, Unit of Work y DAO
- Base de Datos por Servicio y Gestión de Datos Distribuidos
- Caché y Estrategias de Invalidación
Módulo 8: Arquitectura en la Nube y Despliegue
- Fundamentos del Cloud Computing (IaaS, PaaS, SaaS)
- Contenedores y Orquestación con Docker y Kubernetes
- Arquitectura Serverless
- Patrones de Diseño Cloud-Native
- Infraestructura como Código (IaC)
Módulo 9: Calidad, Seguridad y Observabilidad
- Escalabilidad: Horizontal vs Vertical y Balanceo de Carga
- Alta Disponibilidad y Tolerancia a Fallos
- Seguridad por Diseño y Autenticación/Autorización
- Observabilidad: Logging, Métricas y Trazabilidad
- Rendimiento y Pruebas de Carga
