¿Tu API funciona en tiempo real? Mide su latencia con la herramienta rtapi de NGINX

NGINX | 11 de marzo de 2020

[Editor – Esta publicación se ha actualizado con información sobre los informes revisados que se introdujeron en rtapi versión 0.2.0.]

Las API constituyen el núcleo de las aplicaciones modernas y de las arquitecturas digitales en constante evolución. Según el Informe de Akamai sobre el estado de la seguridad en Internet, las llamadas a API representan el 83 % de todo el tráfico web. En el panorama actual, en el que a los consumidores les resulta tan fácil pasarse a un competidor digital, es fundamental que disfruten de una experiencia positiva con su sitio web o aplicación. La velocidad se valora enormemente y, en última instancia, depende de unas API ágiles, robustas y adaptables. Si lo hace bien —es decir, si su API es más rápida que la de la competencia—, los desarrolladores le elegirán.

Según el informe de IDC «APIs: los factores determinantes del éxito o el fracaso de los negocios digitales», más del 90 % de las organizaciones espera una latencia inferior a 50 milisegundos (ms), mientras que casi el 60 % espera una latencia de 20 ms o menos. (La latencia se define como el tiempo que tarda la infraestructura de la API en responder a una llamada a la API, desde el momento en que una solicitud llega a la puerta de enlace de la API hasta que se devuelve al cliente el primer byte de la respuesta).

Hemos utilizado estos datos, junto con un análisis integral del ciclo de vida de las API, para definir una API en tiempo real como aquella que tiene una latencia de 30 ms o menos. Además, el umbral de latencia de 30 ms debe mantenerse hasta el percentil 99 de las solicitudes procesadas (lo que significa que, de media, solo 1 de cada 100 solicitudes tarda más de 30 ms). Para obtener más información, consulte nuestro blog sobre evaluación comparativa del rendimiento de las soluciones de gestión de API.

Para la mayoría de las empresas, procesar las llamadas a la API lo más cerca posible del tiempo real supone un gran reto, especialmente cuando se utilizan pasarelas de API con arquitecturas complejas como puntos de entrada a sus endpoints de API. Entonces, ¿qué rendimiento ofrecen tus API? ¿Son ya lo bastante rápidas como para considerarse en tiempo real o necesitan mejorar? ¿Notas que tu producto responde con cierta lentitud, pero no sabes muy bien por qué? Quizá no sepas con certeza cuál es la latencia de tus API.

Presentamos rtapi – una herramienta de evaluación comparativa de la latencia de las API en tiempo real creada por NGINX, que comprueba la capacidad de respuesta de sus puertas de enlace y endpoints de API, y genera informes que puede distribuir y compartir fácilmente con sus compañeros. Hay dos formatos de informe disponibles: un PDF con un gráfico resumen y una tabla de métricas detalladas en formato ASCII.

Ejecución de rtapi

  1. Descarga el archivo binario de rtapi desde GitHub mediante uno de estos dos métodos:
    • Si tienes Golang instalado, ejecuta este comando:
$ go get github.com/nginxinc/rtapi
  1. Especifique uno o varios endpoints de API (destinos) que desee consultar, en formato JSON o YAML, como en los ejemplos siguientes. Recomendamos guardar el contenido JSON o YAML en un archivo llamado endpoints.json o endpoints.yml. (En el caso de JSON, también puede incluir los datos en la línea de comandos de rtapi en el siguiente paso, como parámetro de la opción --data). Los únicos parámetros obligatorios para cada endpoint son target.url y target.method. Si no especifica target.body ni target.header, se mantienen vacíos. Si no especifica un parámetro en el objeto query_parameters, rtapi utiliza el valor (predeterminado) que se muestra en los ejemplos siguientes. Ejemplo de entrada JSON
[
  {
    "target": {
      "url": "https://www.example.com",
      "method": "POST",
      "body": "{\"id\":\"0\"}",
      "header": {
        "Content-Type": [
          "application/json"
        ]
      }
    },
    "query_parameters": {
      "threads": 2,
      "max_threads": 2,
      "connections": 10,
      "duration": "10s",
      "request_rate": 500
    }
  }
]
  1. Ejemplo de entrada YAML
- target:    url: https://example.com/api/id
    method: POST
    body: '{"id":"0"}'
    header:
      Content-Type:
        - application/json
  query_parameters:
    threads: 2
    max_threads: 2
    connections: 12
    duration: 10s
    request_rate: 500
  1. Ejecute el siguiente comando, donde --file especifica el archivo que contiene la lista de endpoints de API en formato JSON/YAML y --output especifica el informe PDF que generará rtapi. (Como se indicó en el paso 2, puede proporcionar la entrada JSON en la línea de comandos: sustituya --file endpoints.json por --data seguido de la cadena JSON.)
$ rtapi --file endpoints.json --output report.pdf
  1. Para mostrar en el terminal la tabla de métricas con formato ASCII, incluye la opción --print, en lugar de la opción --output (o además de ella).
$ rtapi --file endpoints.json --print

Interpretación del informe en PDF

El informe en PDF generado por rtapi contiene un histograma HDR de la latencia de respuesta como el siguiente (procedente de una puerta de enlace de API NGINX Plus configurada mediante el módulo de gestión de API de NGINX Controller). El eje Y muestra la latencia en milisegundos y el eje X muestra la proporción de llamadas procesadas en menos de una latencia determinada, expresada como percentil. (En el siguiente ejemplo, hemos comprimido el eje Y para ahorrar espacio).

Para destacar los resultados de su API, las líneas discontinuas paralelas a los ejes se cruzan para mostrar la latencia medida de su API en el percentil 99 (99 % en el gráfico). Para que su API se considere en tiempo real, la latencia en el punto de intersección debe ser inferior a 30 ms.

¿Cómo puede ayudar NGINX?

¿La latencia de tu API es inferior a 30 ms?

Si su empresa es como muchas de las que conocemos, lo más probable es que no. Con muchas soluciones de puerta de enlace y gestión de API, es habitual tener una latencia de 100 ms, e incluso una de 500 ms no es tan inusual.

Podemos ayudarle a mejorar el rendimiento de sus API: NGINX y NGINX Plus son la puerta de enlace de API más rápida del sector y, junto con NGINX Controller, pueden ayudarle a enrutar, autenticar, proteger, controlar y almacenar en caché las llamadas a las API en menos de 30 ms. Obtenga más información, hable con un experto de NGINX y descubra cómo NGINX puede ayudarle en su camino hacia las API en tiempo real en nginx.com/real-time-api.


Compartir

Sobre el autor

Artículos relacionados del blog

Únete a F5 NGINX en AppWorld 2024
NGINX | 04/01/2024

Únete a F5 NGINX en AppWorld 2024

Descubre las numerosas razones para asistir al evento insignia de F5, que incluirá un emocionante anuncio sobre la cartera de productos NGINX.

Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source
NGINX | 26/09/2023

Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source

La función de diccionario compartido permite configurar NGINX sin necesidad de reiniciarlo al renovar los certificados SSL/TLS.

Exposición de APIs en Kubernetes
NGINX | 10/03/2022

Exposición de APIs en Kubernetes

La unidad 2 de Microservices March 2022 se centra en cómo exponer tus API en Kubernetes. Aquí tienes enlaces a los recursos que necesitas: la retransmisión en directo del 14 de marzo, artículos de blog y otros recursos de preparación, y el laboratorio práctico «Protege las API de Kubernetes mediante la limitación de solicitudes».

NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto
NGINX | 23/08/2021

NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto

Hoy, en NGINX Sprint 2.0, anunciamos cómo respaldaremos nuestra visión del futuro de las aplicaciones modernas con una mayor presencia en la comunidad de código abierto, incluida la participación en el proyecto comunitario Kubernetes, nuevos proyectos de software de código abierto y la arquitectura de referencia para aplicaciones modernas.

Presentamos NGINX Plus R22
NGINX | 09/06/2020

Presentamos NGINX Plus R22

NGINX Plus R22 incorpora nuevas funcionalidades, como la compatibilidad con OCSP para verificar la revocación de certificados en TLS mutuo, el uso de varios proveedores de identidad OIDC en una configuración, el seguimiento en tiempo real de la limitación de solicitudes y conexiones en el panel de NGINX Plus y mejoras en NGINX JavaScript.

Presentamos NGINX Plus R17
NGINX | 11/12/2018

Presentamos NGINX Plus R17

NGINX Plus R17 incorpora compatibilidad con la limitación de velocidad en dos fases y con TLS 1.3, la versión más reciente del protocolo Transport Layer Security. La configuración de OpenID Connect es más sencilla y NGINX ModSecurity WAF es el doble de rápido que antes. También se ha actualizado el módulo JavaScript de NGINX.