Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Vecinos ruidosos y límites

5 tareas · 36 min · Principiante

En una plataforma compartida, un cliente que consume mucho puede dejar sin servicio a los demás sin que nadie lo ataque: es el vecino ruidoso. El aislamiento de recursos es parte de la seguridad porque la disponibilidad lo es. En Cotiza Ceibo, una plataforma de cotizaciones de ejemplo, lees cinco ventanas de latencia, el uso de siete inquilinos y la lista de recursos con y sin límite por inquilino. Buscas quién saturó, por cuánto y qué recurso sigue sin protección. Todo es lectura de un extracto de ejemplo.

0 de 5 · 0%

Objetivo de la sala

En una plataforma compartida, un cliente que consume mucho puede dejar sin servicio a los demás sin que nadie lo ataque: es el vecino ruidoso. El aislamiento de recursos es parte de la seguridad porque la disponibilidad lo es. En Cotiza Ceibo, una plataforma de cotizaciones de ejemplo, lees cinco ventanas de latencia, el uso de siete inquilinos y la lista de recursos con y sin límite por inquilino. Buscas quién saturó, por cuánto y qué recurso sigue sin protección. Todo es lectura de un extracto de ejemplo.

Un límite global dice cuánto soporta la plataforma entera. Un límite por inquilino dice cuánto puede usar cada cliente según su plan. Si solo existe el global, el primero que llegue y consuma más se queda con la parte de todos: cuando el tope se agota, el que se ve afectado es cualquiera, no el que saturó. Con límites por inquilino, el exceso de uno se frena en su propia cuota y los demás conservan la suya.

Los límites se complementan con colas separadas por inquilino y con una respuesta clara al que excede (por ejemplo, un estado 429 que indica «demasiadas peticiones»), para que el cliente sepa qué ocurre y pueda reaccionar.

Responde para continuar

¿Por qué un límite global no protege a los inquilinos pequeños de uno que consume demasiado?

Ver pista de ayuda

Un tope compartido se gasta por orden de llegada, no por justicia.

La latencia p95 es el tiempo por debajo del cual responde el 95 % de las peticiones: cuando sube de golpe, la mayoría de los usuarios lo nota. La tabla de latencias dice qué inquilino generó más peticiones en cada ventana, y la de uso, quién superó su cuota. Una cuota superada no es en sí un problema: lo es si el exceso no se frena. Hay que distinguir al inquilino que la superó y fue contenido de aquel que la superó y no lo fue.

Abre SELECT * FROM latencias y SELECT * FROM uso_por_inquilino.

Responde para continuar

¿Qué inquilino superó su cuota sin que hubiera un límite por inquilino que lo frenara?

Ver pista de ayuda

Ejecuta `SELECT inquilino, plan, cuota_peticiones_min, pico_peticiones_min, limite_por_inquilino FROM uso_por_inquilino WHERE pico_peticiones_min > cuota_peticiones_min` y descarta al que sí tenía límite aplicado.

Medir el exceso sirve para dimensionar el problema y para hablar con el cliente: no es lo mismo pasarse un diez por ciento de la cuota que multiplicarla varias veces. También ayuda a decidir qué límite poner: uno que se queda corto bloquea el uso legítimo y uno demasiado alto no frena nada.

Calcula, para el inquilino sin límite que superó su cuota, la diferencia entre su pico y su cuota en peticiones por minuto.

Responde para continuar

¿Cuántas peticiones por minuto por encima de su cuota llegó en su pico el inquilino que superó la cuota sin un límite que lo frenara? Escribe solo el número.

Ver pista de ayuda

Resta la cuota al pico en la fila de ese inquilino de la consulta anterior.

No solo las peticiones se comparten: también los trabajos en segundo plano, las exportaciones, el almacenamiento o el envío de correos. Cada recurso compartido sin límite por inquilino es una puerta por la que un cliente ruidoso puede afectar a los demás aunque la API esté bien protegida. Una cola única es la señal más clara: los trabajos de todos esperan en la misma fila y uno solo puede llenarla.

Abre SELECT * FROM limites y busca el recurso que solo tiene tope global.

Responde para continuar

¿Qué recurso compartido no tiene límite por inquilino y usa una cola única?

Ver pista de ayuda

Ejecuta `SELECT recurso, limite_global, cola FROM limites WHERE limite_por_inquilino = 'no'`.

Aumentar la capacidad de la plataforma cuando un cliente satura no resuelve el problema: sube el costo, y el siguiente que sature volverá a hacer lo mismo. La respuesta ordenada es separar lo que se comparte: una cuota por inquilino con respuesta clara al exceso, colas por inquilino para los trabajos pesados y una conversación con el cliente sobre si su uso justifica otro plan. Y alertas que avisen del consumo antes de que los demás lo noten.

Responde para continuar

¿Qué propuesta corrige la causa de la saturación?

Ver pista de ayuda

La causa es la ausencia de separación entre inquilinos, no la falta de capacidad.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad