¿Cómo determinar los recursos necesarios para tu API Gateway?
January 25, 2024
Antecedentes
El gateway API sirve como una entrada unificada para los servicios externos de una empresa, lo que subraya su importancia innegable. Cualquier interrupción en la disponibilidad del propio gateway API afecta directamente a todos los servicios proporcionados por la empresa, una catástrofe que es inaceptable. Por lo tanto, es crucial determinar la escala de implementación adecuada para el gateway API en los escenarios de producción.
Determinar los recursos necesarios es esencial para garantizar el rendimiento, la disponibilidad y la estabilidad del gateway API, optimizando la utilización de recursos y la rentabilidad. Los recursos insuficientes pueden provocar problemas como tiempos de espera de solicitudes, congestión y pérdida de paquetes, lo que afecta la experiencia del usuario y la calidad del servicio. Por el contrario, los recursos excesivos pueden resultar en un desperdicio de recursos, un aumento de la complejidad operativa, incrementando los costos y los riesgos.
Por lo tanto, determinar los recursos necesarios para el gateway API es un paso crucial, que requiere una planificación cuidadosa y ajustes basados en los requisitos comerciales, las previsiones de tráfico y las pruebas de rendimiento. Este artículo, basándose en las mejores prácticas de varias industrias, describe un proceso de tres pasos como referencia:
- Selección del Gateway: QPS de un solo núcleo
- Tipos de Negocios: Servicios financieros o no financieros
- Requisitos de Alta Disponibilidad
Selección del Gateway
El cuello de botella para los componentes básicos del gateway API suele estar en la CPU, no en la red, el disco o la memoria. El procesamiento de un solo núcleo de CPU de un gateway API indica significativamente si es excelente o no. Cuando el consumo de recursos es menor para el mismo tráfico de solicitudes API, implica que se necesitan menos máquinas, simplificando la gestión operativa y mejorando la disponibilidad del servicio.
Apache APISIX, un gateway API de código abierto, estima conservadoramente que un solo núcleo de CPU puede soportar al menos 10,000 QPS cuando se habilitan plugins empresariales comunes para monitoreo, limitación de tasa, etc. Las empresas pueden realizar pruebas específicas para recopilar resultados considerando las diferencias en los plugins habilitados, el entorno de hardware, las condiciones de red y las características de las solicitudes API.
Tipos de Negocios
La mayoría de las empresas no financieras pueden controlar el uso de recursos de CPU en el gateway API en el rango de 20-30% en un entorno de producción, lo cual es un escenario ideal. Incluso con un aumento de 3-5 veces en las llamadas de servicio, pueden manejarlo eficazmente. Industrias como noticias, entretenimiento e internet pueden utilizar esta carga.
Sin embargo, para industrias como banca, finanzas y valores, donde el valor de la API es alto, mantener la carga diaria de CPU en 5-10% es ideal. Esto permite que el gateway API maneje picos de tráfico repentinos 10-20 veces mayores de lo habitual.
Requisitos de Alta Disponibilidad
Para requisitos más altos de disponibilidad, las instancias proxy del gateway API deben tener un mínimo de 2 nodos.
Ejemplos Prácticos
Usuario del Sector de Servicios Financieros
Ejemplo de empresa:
- QPS para las llamadas API diarias es de 100,000
- Carga diaria del gateway API es del 10%
- Selección del gateway: Apache APISIX (QPS de un solo núcleo: 10,000)
Basándose en la información anterior, el número de CPUs requerido es 100,000 / 10,000 / 10% = 100. Si se utilizan máquinas con 4 núcleos de CPU, se necesitan 25 máquinas; con 8 núcleos de CPU, se necesitan 13 máquinas.
Usuario del Sector de Servicios No Financieros
Ejemplo de empresa:
- QPS para las llamadas API diarias es de 100,000
- Carga diaria del gateway API es del 25%
- Selección del gateway: Apache APISIX (QPS de un solo núcleo: 10,000)
Basándose en la información anterior, el número de CPUs requerido es 100,000 / 10,000 / 25% = 40. Si se utilizan máquinas con 4 núcleos de CPU, se necesitan 10 máquinas; con 8 núcleos de CPU, se necesitan 5 máquinas.
Conclusión
En el uso práctico, el tráfico es complejo y variable, requiriendo ajustes flexibles a los promedios. Al adoptar gateways API excelentes como APISIX y configurar juiciosamente los recursos de hardware, las empresas pueden equilibrar mejor los costos y los requisitos del servicio, garantizando una exposición segura, estable y eficiente de las API empresariales a los usuarios finales.