Desarrollo de productos SaaS
¿Qué es la Limitación de Tasa de API en SaaS?
¿Qué es la Limitación de Tasa de API en SaaS?
La API de SaaS de una aplicación basada en la nube limita el número de llamadas a la API a un servicio durante un período determinado para un dispositivo cliente, un usuario, una IP, una clave o un inquilino. El cliente está configurado para enviar un número específico de solicitudes. Este tipo de limitación de la API tiene implicaciones para la capacidad de la infraestructura del servicio, ya que también ayuda con la limitación del acceso de usuarios y contribuye a la gestión del gasto en la nube.
Dentro de los mecanismos de limitación de tasa, el monitoreo de mensajes ‘429 Too Many Requests’ es una práctica común, que ocurre cuando los servidores los transmiten a los clientes una vez que se ha alcanzado su umbral de solicitudes. En muchos casos, los servidores usan el encabezado “Retry-After” para informar a los clientes qué retraso se recomienda entre reintentos de solicitudes.
¿Cómo funciona la limitación de tasa de API?
| Algoritmo | Comportamiento |
| Ventana fija | Sencillo, pero puede generar ráfagas en los límites de la ventana |
| Ventana deslizante | Más justo, a costa de mayor coordinación y memoria |
| Token bucket | Permite ráfagas controladas a la vez que impone una tasa promedio |
| Leaky bucket | Ajusta la salida para mantener la consistencia de la tasa |
¿En qué se diferencian la limitación de tasa de API y la regulación?
| Técnica | Para |
| Regulación | Suavizar las ráfagas |
| Limitación de tasa | Garantizar la equidad y proteger los recursos compartidos |
¿Por qué es esencial la Limitación de Tasa de API para los proveedores de SaaS?
Esto es lo que hace específicamente la limitación de tasa:
- Se asocia con la resolución de posibles problemas operativos del sistema que pueden surgir de un alto volumen de solicitudes de un origen imprevisto.
- Evita actividades como el web scraping o el hacking de fuerza bruta.
- Aborda el coste derivado del autoescalado o del uso de recursos por parte de sistemas descendentes.
¿Cuáles son las mejores prácticas del lado del cliente para manejar los límites de la tasa de solicitudes de API?
- Sigue las instrucciones dadas en los encabezados Retry-After.
- Prueba la retirada exponencial con un componente aleatorio.
- Pon en cola las solicitudes o distribuye la carga en alta concurrencia.
- Puedes implementar un token bucket para la gestión del tráfico y la cola en el lado del cliente para cargas de trabajo que requieran paralelismo.
El comportamiento de reintento se asocia con los efectos de estampida y la fiabilidad bajo carga.
¿Qué herramientas, marcos de trabajo o patrones de diseño se recomiendan para implementar la limitación de tasas de API?
Una solución típica implica varias capas: gateway API, plataforma de seguridad perimetral y sistema de control de servicios o cuotas. Los siguientes patrones pueden ser aplicables:
- Límites por clave
- Límites por inquilino
- Límites específicos de punto final
- Planes escalonados
Un enfoque por capas suele ser el mejor para SaaS, la protección perimetral, la limitación de velocidad del gateway y las reglas de negocio a nivel de aplicación.
¿Cómo pueden los proveedores de SaaS comunicar eficazmente los retrasos del límite de tasa a los usuarios?
En los casos en que la limitación de la tasa contribuya a un mayor número de contactos de clientes para el personal de soporte, es aconsejable explicar el motivo de las limitaciones de solicitudes. Se debe aconsejar a los proveedores que:
· Utilicen códigos de estado HTTP distintos.
· Muestren los encabezados Retry-After y de límite de tasas.
· Las limitaciones especificadas en los documentos deben comunicarse a los desarrolladores.
· Cuando sea factible, muestren las estadísticas de uso del cliente o su cuota restante.
La experiencia del usuario implica mensajes de error legibles para humanos, metadatos legibles por máquina y una opción de autoservicio para las solicitudes de aumento de cuota.
¿Cuáles son las limitaciones del límite de tasa de la API y qué estrategias complementarias existen?
La limitación de tasa gestiona el abuso, el costo y la equidad, pero su eficacia para resolver problemas en sistemas distribuidos puede tener límites. La integración de la limitación de tasa con otros controles merece consideración:
- Cuotas
- WAF o protección contra bots
- Autenticación e idempotencia
- Monitoreo
Conclusión
Limitación de tasa de SaaS API es una medida vital utilizada para salvaguardar Infraestructura en la nube, mantener el servicio en funcionamiento y disponible, y monitorear las operaciones. Este método utiliza varios algoritmos con limitación y se basa en la comunicación con el cliente y ajustes de límites adecuados.