Construir aplicaciones modernas en la nube implica conocer a fondo los componentes que conforman una arquitectura serverless. Cada pieza cumple un rol específico: desde procesar millones de eventos en tiempo real hasta proteger el acceso de los usuarios. Comprender estos elementos permite diseñar soluciones escalables, desacopladas y con costos optimizados, sin la carga de administrar servidores.
¿Qué son los streams y por qué son esenciales para el real time?
Un stream es una secuencia de eventos, mensajes o datos que se procesan en el momento en que ocurren [1:00]. La palabra clave aquí es real time: la capacidad de utilizar un evento apenas se genera.
Para ilustrarlo, piensa en una billetera digital con diez millones de usuarios. Cada pago, cada transferencia y cada compra genera un log. Esos millones de logs por minuto se envían a un stream a través de una llamada a un API o un SDK [2:48]. El stream tiene la capacidad de recibir cientos de millones de eventos en paralelo y enviarlos a un consumidor, como un dashboard de visualización en tiempo real.
- El equipo de Growth Marketing puede ver los pagos en tiempo real.
- La capacidad del stream se mide en shards, que son su unidad de medida [3:28].
- Es un servicio completamente serverless: no hay servidores que administrar.
¿Cómo las colas protegen tu aplicación de colapsar?
Las colas son un método para retrasar el trabajo y desacoplar componentes [4:08]. La analogía es sencilla: cuando vas al banco y hay muchas personas, todas deben formarse por orden de llegada para no saturar al cajero.
Imagina que cien mil usuarios solicitan un certificado al mismo tiempo. Sin una cola, el microservicio colapsa. Con una cola, todas esas solicitudes se van encolando y la aplicación las procesa a medida que puede [5:05]. El resultado es doble:
- Todos los usuarios reciben su certificado.
- La aplicación nunca se cae.
¿Qué es un bucket y qué almacena?
Un bucket es una estructura para almacenar objetos [5:48]. Su costo se basa en la cantidad de información almacenada y la cantidad de requests que recibe. Un ejemplo clásico: cada usuario sube su foto de perfil a un bucket y esa imagen es un objeto.
¿Por qué un API es la puerta de entrada a tu aplicación?
API significa Application Programming Interface y funciona como la puerta de entrada a cualquier aplicación [6:18]. Permite comunicar dos componentes de software a través de definiciones y protocolos. En los cloud providers se encuentran distintos tipos:
- API REST.
- API HTTPS.
- API WebSocket.
- API GraphQL.
Todos suelen ser servicios serverless, lo que elimina la necesidad de administrar servidores.
¿Qué papel juegan los datastores y los servicios de identidad?
Un Datastore es un espacio para almacenar información, con énfasis en bases de datos no relacionales: llave-valor, en memoria, por grafos y documentales [6:53].
Los servicios de identidad (Identity Services) gestionan dos conceptos fundamentales: autenticación y autorización [7:15]. La autenticación responde a "¿quién eres?", como cuando preguntas quién toca la puerta y reconoces a tu vecino. La autorización responde a "¿qué puedes hacer?": quizá te registraste en la aplicación, pero no puedes hacer un pago hasta que agregues una tarjeta de crédito o dinero a tu cuenta [8:05]. Son conceptos diferentes y ambos son serverless.
¿Cómo funcionan los motores de consultas y los balanceadores de carga?
Un motor de consultas basado en tecnologías como Presto puede ejecutar queries SQL contra múltiples fuentes: almacenamiento por objetos, bases de datos llave-valor, documentales o relacionales [8:28]. Lo destacable es que solo cobran por la cantidad de datos escaneados, lo que optimiza costos al centralizar consultas de distintas fuentes.
Los balanceadores de carga distribuyen las solicitudes entre las zonas de disponibilidad para evitar que la aplicación colapse [9:05].
- El balanceador de aplicaciones trabaja en la capa 7 del modelo OSI, balanceando tráfico HTTP y HTTPS.
- El balanceador de red opera en las capas 3 y 4, manejando tráfico IP, UDP y TCP.
En la práctica, los usuarios hacen solicitudes y el balanceador las distribuye: un request a la zona uno, otro a la zona dos, garantizando estabilidad.
Cada uno de estos componentes —streams, colas, buckets, APIs, datastores, servicios de identidad, motores de consultas y balanceadores— resuelve un problema concreto. Cuando los combinas en una arquitectura serverless, te liberas de una carga de administración enorme y puedes enfocarte en lo que realmente importa: tu producto. Piensa en tu propia aplicación, identifica cuáles de estos componentes necesitas y atrévete a dibujar un primer borrador de tu arquitectura. Comparte tu diseño en los comentarios y cuéntanos qué componentes elegiste y por qué.