Apache APISIX impulsa a WPS Office para manejar millones de QPS con facilidad
September 28, 2021
Vista previa
Acerca de Kingsoft y WPS Office
Kingsoft Office es una subsidiaria de Kingsoft, una empresa líder en software y servicios de Internet con sede en China, cotizada en la bolsa de Hong Kong. Su producto principal, WPS Office, es una suite de oficina todo en uno que incluye Writer, Spreadsheet, Presentation y PDF para gestionar tareas de oficina. Para 2022, WPS Office alcanzó más de 494 millones de usuarios activos mensuales y más de 1.200 millones de instalaciones.
Inicialmente, Kingsoft utilizó NGINX como puerta de enlace API para abordar desafíos operativos. La versión original solo tenía funcionalidades básicas como upstream dinámico, listas negras y un firewall de aplicaciones web (WAF). Sin embargo, a medida que los requisitos crecieron, Kingsoft Office comenzó a explorar soluciones alternativas de puerta de enlace API que pudieran satisfacer mejor sus necesidades en evolución.
Desafíos
- El sistema anterior tenía limitaciones para satisfacer las necesidades operativas y de mantenimiento básicas, careciendo de la capacidad de escalar dinámicamente.
- El sistema maneja un volumen sustancial de tráfico y requiere una puerta de enlace API robusta para un rendimiento óptimo.
- Carecía de la capacidad de cargar cambios dinámicamente, requiriendo recargas para que las modificaciones surtieran efecto.
Resultados
- Implementó una solución que ofrece actualizaciones dinámicas de alto rendimiento y baja latencia, permitiendo personalización y extensión sin problemas.
- Aumentó significativamente la capacidad del sistema para manejar millones de consultas por segundo (QPS) sin esfuerzo, garantizando una estabilidad empresarial inquebrantable.
- Estableció con éxito medidas de alta disponibilidad y mejoró la seguridad del sistema para proteger operaciones críticas.
Antecedentes
En las primeras etapas, Kingsoft Office empleó una puerta de enlace API para abordar problemas operativos y desarrolló su propia solución basada en OpenResty y Lua. Esta solución permitía características como la gestión dinámica de upstream, listas negras y un firewall de aplicaciones web (WAF). Sin embargo, hubo algunos inconvenientes en la fase 1.0.
Por ejemplo:
- Solo el upstream era dinámico.
- Se requería recargar para actualizar y reflejar nuevos nombres de dominio, lo que sobrecargaba al equipo con cambios diarios de dominios y rutas.
- La arquitectura subyacente estaba diseñada para una gestión y operación eficientes, pero era simplista con características y escalabilidad limitadas.
Al mismo tiempo, a medida que su negocio crecía, Kingsoft enfrentó un número creciente de requisitos para la funcionalidad de la puerta de enlace API. Como resultado, comenzaron a buscar una nueva solución de puerta de enlace API.
¿Por qué Kingsoft Office optó por APISIX?
A finales de 2019, cuando Kingsoft Office comenzó a investigar productos de puerta de enlace API, había muchas opciones populares. Sin embargo, las pruebas posteriores revelaron que el rendimiento de las puertas de enlace API evaluadas no cumplía con sus requisitos.
Buscando una solución más robusta, Kingsoft Office profundizó en su investigación y fue entonces cuando descubrieron Apache APISIX.
Algunas otras puertas de enlace API dependían de PostgreSQL como centro de configuración, lo que significaba que la actualización de rutas solo podía lograrse mediante métodos no basados en eventos, requiriendo la recarga de rutas en cada nodo.
Kingsoft Office eligió APISIX basándose en tres consideraciones clave: rendimiento, arquitectura técnica y la comunidad.
1. Rendimiento Ultra Alto
Apache APISIX ofrece el mejor rendimiento entre otras puertas de enlace API, con un QPS de 18,000 por núcleo y un retardo promedio de 0.2 ms. Las pruebas rigurosas y los benchmarks dentro de Kingsoft Office confirmaron consistentemente el rendimiento superior de APISIX, asegurando que Kingsoft Office pudiera manejar cargas altas y ofrecer experiencias de usuario óptimas.
2. Arquitectura Escalable, Resiliente y de Alta Disponibilidad
APISIX, utilizando etcd como su centro de configuración, permite una gestión eficiente y dinámica de rutas, plugins y otros componentes críticos. Este almacén de clave-valor distribuido mejoró la flexibilidad de APISIX, permitiendo actualizaciones sin problemas y reduciendo la carga operativa asociada con cambios manuales de configuración. Con Apache APISIX, Kingsoft Office pudo aprovechar el enfoque basado en eventos, eliminando la necesidad de recargas manuales de rutas en nodos individuales.
3. Comunidad Activa y de Apoyo
Kingsoft Office reconoció el valor de una comunidad vibrante y de apoyo para impulsar la innovación y proporcionar recursos. APISIX contaba con una comunidad activa y comprometida que contribuía a su desarrollo, compartía mejores prácticas y ofrecía asistencia. Este entorno impulsado por la comunidad fomentó la innovación y la colaboración, alineándose perfectamente con el compromiso de Kingsoft Office de mantenerse a la vanguardia de los avances tecnológicos.
Arquitectura Optimizada de etcd en Kingsoft Office
Debido a las numerosas configuraciones estáticas de NGINX en la arquitectura original de Kingsoft Office, el equipo optó por no utilizar la CLI de APISIX para generar configuraciones automáticamente. En su lugar, emplearon Apache APISIX como respaldo y migraron gradualmente las configuraciones a APISIX, asegurando una transición fluida.
Durante la implementación, el equipo de Kingsoft Office realizó algunas personalizaciones basadas en APISIX, como optimizar la arquitectura de etcd. En general, varias máquinas están involucradas en la arquitectura de la puerta de enlace API dentro de las empresas, a veces cientos. Además, el número de trabajadores sobrecarga las máquinas.
En consecuencia, cuando múltiples máquinas monitorean la misma clave, ejerce una presión significativa sobre etcd. En tales circunstancias, para la consistencia de datos, etcd requiere que todos los eventos se devuelvan a las solicitudes de escucha antes de procesar nuevas solicitudes. Cuando múltiples máquinas escuchan simultáneamente, surgen problemas como tiempos de espera de etcd y errores de sobrecarga.
Para abordar este problema, Kingsoft Office desarrolló un proxy de etcd, como se ilustra en la parte derecha del diagrama de arquitectura a continuación. Funcionando entre Apache APISIX y etcd, el proxy de etcd monitorea las claves y devuelve los resultados a Apache APISIX después de recibirlos. Desde la versión 3.2 de APISIX, el número de conexiones ya no se ve afectado por los recursos, reduciendo significativamente la presión sobre etcd.
Además, a medida que la empresa crece, el número de rutas también aumenta. Cuando las rutas se actualizan con frecuencia, la puerta de enlace experimenta un aumento en el uso de CPU y pérdida de paquetes. El equipo de Kingsoft Office solucionó el problema de la ineficiencia del uso de table.sort
en entornos de código Lua. Apache APISIX también abordó este problema en sus versiones actualizadas.
Beneficios después de Adoptar APISIX
1. Soporte para Millones de QPS sin Esfuerzo
A nivel empresarial, Kingsoft Office opera un ecosistema complejo que comprende miles de servicios meticulosamente contenerizados y desplegados en una plataforma nativa de la nube interna. Dentro de este entorno dinámico, Apache APISIX juega un papel central como puerta de enlace principal, facilitando la comunicación e interacción entre varios servicios y usuarios. Específicamente diseñado para satisfacer las demandas del Departamento de Plataforma Intermedia, APISIX gestiona eficientemente el vasto flujo de solicitudes, manejando sin esfuerzo millones de consultas por segundo con notable precisión y confiabilidad.
2. Logró una Gestión de API Escalable y Flexible
Al adoptar APISIX, Kingsoft Office superó las limitaciones de sus soluciones anteriores de gestión de API, logrando una escalabilidad y flexibilidad que sentó las bases para el crecimiento y la innovación futuros.
Al migrar a APISIX, Kingsoft Office obtuvo la capacidad de escalar su infraestructura de API sin esfuerzo para satisfacer las demandas de una base de usuarios en rápida expansión y un panorama empresarial en evolución. La arquitectura modular de APISIX permitió una integración sin problemas con los sistemas y servicios existentes, permitiendo a la empresa extender sus capacidades de gestión de API sin interrumpir las operaciones en curso.
Además, APISIX empoderó a Kingsoft Office con una flexibilidad sin precedentes en la gestión de API, ofreciendo un control granular sobre el enrutamiento, el tráfico y las políticas de autenticación. Esta nueva flexibilidad permitió a la empresa adaptar sus estrategias de gestión de API a casos de uso específicos, optimizando el rendimiento y mejorando la experiencia del usuario.
3. Mejoró la Alta Disponibilidad y Seguridad del Sistema
Además, Kingsoft Office ha implementado varias características para mejorar la alta disponibilidad y seguridad del sistema, incluyendo la distribución proporcional del tráfico en múltiples centros de datos y una capacidad de bloqueo de rutas con un solo clic.
Al configurar proporciones, la distribución del tráfico o las solicitudes en diferentes centros de datos se optimiza según proporciones predefinidas. Esto asegura una utilización eficiente de los recursos del sistema y mitiga el impacto de fallos en un solo centro de datos, resultando en un equilibrio de carga, una mayor disponibilidad del sistema y una mayor tolerancia a fallos.
En caso de problemas con una ruta específica o la necesidad de un bloqueo temporal, los administradores pueden emplear rápidamente la función de bloqueo de rutas con un solo clic para detener instantáneamente la transmisión de tráfico o el acceso para esa ruta en particular. Esto protege el sistema contra actividades maliciosas mientras proporciona un enfoque fluido y conveniente para gestionar el tráfico y las rutas de la red.
Conclusión
Durante la aplicación práctica, el equipo de Kingsoft Office descubrió la excepcional flexibilidad y potencia de Apache APISIX. La estabilidad y confiabilidad de APISIX han ganado la confianza de Kingsoft Office, mientras que su capacidad para acomodar modificaciones de plugins y compilaciones personalizadas ofrece un amplio espacio para personalizaciones a medida.
El equipo sigue diligentemente los cambios de producto de APISIX, asegurando que su versión esté sincronizada con las últimas actualizaciones. Con APISIX en su lugar, Kingsoft Office maneja sin esfuerzo millones de consultas por segundo, demostrando la robustez de la solución y su capacidad para satisfacer las demandas de una base de usuarios en rápida expansión. Al adoptar Apache APISIX, Kingsoft Office aborda eficazmente sus requisitos en evolución, mejora la eficiencia operativa y se posiciona para el crecimiento futuro en el dinámico panorama de productos de redes.