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.

Entradas relacionadas: