Blog

Cómo establecer políticas de Throttling para tu API para Sanidad

por | 13 May 2019 | 0 Comentarios

por | May 13, 2019 | Howtos | 0 Comentarios

Si ofreces tu servicio o API para Sanidad a terceros, o si estás considerando hacerlo, o si quieres suscribirte a APIs para Sanidad para integrarlas fácilmente en tu software, te interesa conocer una característica muy importante en Nubentos. En concreto, nuestra plataforma se encarga de detectar y rechazar las peticiones que no sigan determinadas políticas de control de tráfico definidas para tu API. En este artículo te contamos cómo establecer políticas de Throttling para tu API para Sanidad.

¿Qué es una política de Throttling?

Las políticas de Throttling te permiten limitar el número de peticiones válidas en un determinado periodo de tiempo. También se puede establecer el límite de ancho de banda, en lugar de número de peticiones, por ejemplo cuando hay archivos implicados en la petición a la API.

Como proveedor de APIs, estos controles te permiten garantizar la estabilidad y la continuidad de tu servicio. Nubentos lo gestiona por ti, y tus servidores ni se enteran.

Como consumidor de APIs, estos controles te permiten mantener los costes de desarrollo bajo control.

Algunas de las situaciones en que te interesa establecer estos límites son:

  1. Proteger tu API para Sanidad frente a determinados ciberataques conocidos, como los ataques de denegación de servicio (DoS).
  2. Regular el tráfico que recibes de acuerdo a la capacidad que ofrece la infraestructura disponible.
  3. Hacer que tu servicio o API esté disponible a tus clientes en diferentes niveles de consumo, como parte de tu estrategia de monetización.

¿Qué límites de Throttling puedes establecer?

Throttling settings nubentos

Nubentos te permite establecer límites de Throttling en varios niveles:

  1. Suscripción, limitando el número de peticiones permitidas para el suscriptor de la API para Sanidad en un determinado periodo de tiempo.
  2. Aplicación, en el lado del consumidor de la API, limitando el número de peticiones permitidas a todas las APIs suscritas en la aplicación, en un determinado periodo de tiempo.
  3. API, limitando el número de peticiones permitidas en un determinado periodo de tiempo.
  4. Recurso, limitando el número de peticiones permitidas a ese recurso de la API en un determinado periodo de tiempo.

Burst control nubentos

Además podremos establecer un control para evitar ráfagas de peticiones muy concentradas en breves periodos de tiempo, habitualmente un segundo. Estos picos de tráfico son peligrosos para la estabilidad del servicio y pueden ser síntoma de un uso indebido que debe ser bloqueado.

Ejemplo práctico

Un ejemplo ayudará a entender todos estos controles.

Supongamos una API para Sanidad que tiene un límite establecido de 1000 peticiones por minuto y ningún límite a nivel de recursos.

Dos usuarios se suscriben a la API usando una misma aplicación, App1.

Ambos eligen suscribirse al nivel Gold, que establece un límite de consumo de 20 peticiones por minuto.

La aplicación App1 establece también un límite de 20 peticiones por minuto.

Cuando ambos usuarios estén consumiendo la API, estarán dentro del límite global de la API (1000 peticiones por minuto).

Pero la aplicación App1 que ambos comparten establece un límite de 20, por lo que cuando ambos usuarios alcancen esa cantidad de peticiones, ya no podrán enviar más aunque no hayan consumido el límite de sus respectivas suscripciones al nivel Gold.

En el siguiente minuto todos los contadores vuelven a cero.

De esta forma puede controlarse el tráfico que recibe la API en distintos niveles de la transacción.

Vamos a ver cada uno con un poco más de detalle.

Throttling a nivel de Suscripción

Para el Proveedor de la API

Cuando publicas tu API en Nubentos, debes seleccionar de los planes de suscripción definidos, los que ofrecerás a los posibles suscriptores de tu API.

Subscription tiers nubentos

 

La configuración de estos planes de suscripción la realizamos desde Nubentos, siguiendo las instrucciones que nos facilita cada proveedor de APIs.

Estos tramos de consumo habitualmente implementan la estrategia de monetización de tu API, cuya definición es un importante paso en la gestión de la API por parte del proveedor.

Los umbrales de consumo que definen estos niveles de suscripción establecen límites de Throttling que afectan a cada suscriptor de cada API.

Al definir estos niveles de suscripción se establecen los controles de ráfagas de peticiones que pueden suponer un riesgo para la estabilidad del servicio. Por ejemplo, puedes establecer un límite de ráfagas de 5 peticiones en un segundo. Toda petición que, en ese mismo segundo, supere la quinta petición, será rechazada como errónea.

Observa cómo este tipo de controles permite “repartir” el tráfico de manera uniforme en el tiempo.

Para el Consumidor de la API

Cuando un usuario del API Store se suscribe a la API, selecciona el nivel de consumo que mejor se adapta a sus casos de uso, número de usuarios finales, etc. Desde su lado, es una forma de optimizar los costes de desarrollo, al ajustarlos al uso real que vaya a tener la API en su producto software.

Subscriptor tier selection nubentos

El consumidor de la API puede definir otro control de Throttling adicional, a nivel de aplicación. ¿Y qué es una aplicación en Nubentos? Es una entidad lógica que sirve para organizar las distintas suscripciones a APIs y compartir entre ellas los mismos tokens de autorización.

Si una empresa se suscribe a varias APIs, o a distintos niveles de consumo de una misma API, puede hacerlo bajo una misma aplicación o en diferentes aplicaciones.

Per token quota nubentos

El desarrollador puede definir un límite adicional a nivel de aplicación, llamado Límite por Token, que determina el máximo número de peticiones acumuladas entre todas las suscripciones bajo esa aplicación, en un determinado periodo de tiempo.

Throttling avanzado

Al publicar la API, un proceso que por cierto es mucho más rápido de lo que piensas, puedes establecer también límites de Throttling avanzado.

Advanced API level throttling nubentos

En concreto puedes establecer un límite de peticiones para la API completa, contando para ello todas las peticiones a todos sus recursos, o para cada recurso de la API, contando entonces para cada límite únicamente las peticiones a ese recurso de la API.

Estos parámetros avanzados de Throttling los define el proveedor de la API durante su publicación.

Advanced Resource level throttling nubentos

Existen más opciones de Throttling avanzado, como listas blancas y listas negras de IPs, usuarios, aplicaciones, etc. Pero hablaremos de ellas en futuras entradas.

Conclusiones

En este artículo hemos hecho un rápido recorrido por las distintas opciones disponibles en Nubentos para que tus APIs para Sanidad, o tus suscripciones a APIs para Sanidad, distribuyan sus peticiones en el tiempo de forma equilibrada y segura.

Throttled requests analytics nubentos

 

Como proveedor de APIs, tus servidores estarán más protegidos y las analíticas de Nubentos te permitirán detectar situaciones con las que podrás tomar decisiones adecuadas para la gestión de tus recursos.

Como consumidor de APIs, podrás monitorizar el uso que tus productos software hacen de tus suscripciones y así optimizar tus costes de desarrollo.

Y recuerda que, en ambos casos, todas estas facilidades y herramientas están a tu disposición sin coste alguno en Nubentos.

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Your competitors know, don’t be left out.

Receive in your mail all the news about Nubentos: articles, eBooks, new APIs, interviews, guides, etc. in our Newsletter with the best of each month.