Conceptos clave de arquitectura y servicios en la nube: IaaS, PaaS, SaaS, escalabilidad y tolerancia a fallos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,74 KB
Modelos de despliegue y servicios
On-prem: infraestructura instalada físicamente en la organización y gestionada por ella. La empresa se encarga de hardware, software, seguridad, mantenimiento y escalado.
- IaaS (Infrastructure as a Service): el proveedor cloud ofrece recursos básicos como máquinas virtuales, red y almacenamiento. El cliente gestiona el sistema operativo, middleware y aplicaciones.
- PaaS (Platform as a Service): el proveedor ofrece infraestructura, sistema operativo y entorno de desarrollo. El usuario solo se centra en desarrollar y desplegar aplicaciones.
- SaaS (Software as a Service): aplicaciones completas accesibles por Internet (ej., correo, CRM). El proveedor gestiona toda la pila; el usuario solo usa el software.
Patrones de rendimiento y disponibilidad
Estos patrones ayudan a mejorar rendimiento, disponibilidad y tolerancia a fallos:
- Load balancing: distribuye las peticiones entrantes entre varios servidores. Mejora rendimiento, disponibilidad y permite tolerar fallos de nodos.
- Caching: guarda datos frecuentemente accedidos en memoria rápida. Reduce latencia, tráfico y carga sobre bases de datos o servicios backend. Riesgo: inconsistencia de datos.
- Database sharding: divide una base de datos en fragmentos horizontales distribuidos. Cada shard contiene una parte de los datos, mejorando escalabilidad.
- Replication: mantiene copias de los datos en múltiples nodos. Aumenta disponibilidad, tolerancia a fallos y rendimiento de lectura.
- CAP theorem: en presencia de una partición de red, un sistema debe elegir entre consistencia o disponibilidad. Nunca puede garantizar simultáneamente Consistencia, Disponibilidad y Tolerancia a particiones.
- Consistent hashing: distribuye datos entre nodos usando un anillo hash. Minimiza el movimiento de datos cuando cambian los nodos del sistema.
Comunicación y desacoplamiento
- Message queues: permiten comunicación asíncrona entre servicios. Los productores envían mensajes y los consumidores los procesan cuando pueden. Ventaja: desacoplamiento entre servicios.
- Rate limiting: limita el número de peticiones permitidas por usuario o sistema. Protege servicios de sobrecarga, abusos o ataques.
- API Gateway: punto de entrada único para clientes en arquitecturas de microservicios. Gestiona autenticación, enrutado, control de tráfico y seguridad. Función que NO es: descubrimiento de servicios.
- Microservices: arquitectura basada en servicios pequeños e independientes. Cada servicio se desarrolla, despliega y escala de forma autónoma.
- Service Discovery: sistema que permite a los servicios localizar otros servicios dinámicamente. Evita configuraciones estáticas y facilita el escalado automático.
- CDNs (Content Delivery Networks): red de servidores distribuidos geográficamente. Sirven contenido desde el nodo más cercano al usuario, reduciendo latencia.
Bases de datos y consistencia
- DB indexing: estructuras adicionales que aceleran búsquedas en bases de datos. Mejoran lecturas pero aumentan espacio y coste en escrituras.
- Partitioning: divide tablas o datos en partes más pequeñas según algún criterio. Mejora rendimiento y facilita la gestión de grandes volúmenes.
- Eventual consistency: modelo donde los datos pueden ser temporalmente inconsistentes. Con el tiempo, todas las réplicas convergen al mismo valor.
Protocolos, escalabilidad y tolerancia
- WebSocket: protocolo que mantiene una conexión persistente y bidireccional. Permite comunicación en tiempo real entre cliente y servidor.
- Scalability: capacidad de un sistema para manejar más carga añadiendo recursos. Puede ser vertical (más potencia) u horizontal (más nodos).
- Fault tolerance: capacidad de seguir funcionando pese a fallos de componentes. Se logra mediante redundancia, replicación y diseño distribuido.
Observabilidad y seguridad
- Monitoring: recogida y análisis de métricas, logs y eventos del sistema. Permite detectar fallos, cuellos de botella y degradaciones.
- AuthN (Authentication): verifica la identidad del usuario.
- AuthZ (Authorization): define qué acciones puede realizar.