Mecanismos avanzados de estabilidad y tolerancia a fallos de Apache APISIX

January 20, 2024

Technology

Al seleccionar puertas de enlace API, la estabilidad y la tolerancia a fallos son factores cruciales junto con la funcionalidad, la escalabilidad y la seguridad. En el diseño de Apache APISIX en 2019, la estabilidad y la tolerancia a fallos se consideraron esenciales, dado el potencial de incidentes significativos en producción al manejar solicitudes de tráfico tanto internas como externas.

Para proporcionar una comprensión completa a los investigadores, profundicemos en las características clave de estabilidad y tolerancia a fallos de Apache APISIX.

Separación del Plano de Control y el Plano de Datos

Apache APISIX adopta una arquitectura separada con un plano de control (es decir, etcd, Admin API) y un plano de datos sin estado (es decir, la puerta de enlace API puede escalar según la demanda). No hay dependencia entre ellos. Esto significa que incluso si el plano de control experimenta anomalías (como interrupciones de red o salidas anormales), el plano de datos puede continuar operando normalmente, manejando nuevas solicitudes de tráfico. Esta separación garantiza la alta disponibilidad de APISIX.

Arquitectura Técnica de APISIX

Mecanismo de Sincronización de Datos

Existe un mecanismo eficiente de sincronización de datos entre el plano de datos y el plano de control. El plano de datos actúa como un etcd Watcher, siendo notificado activamente por etcd sobre cambios en los datos. Actualiza su configuración y reglas en consecuencia. Por lo tanto, cuando un administrador escribe configuración en etcd a través de la API de administración, el plano de datos recibe rápidamente notificaciones de cambios y almacena la configuración en memoria. Este mecanismo evita la necesidad de obtener la configuración de etcd para cada solicitud entrante, reduciendo la carga del sistema. Sin embargo, es importante tener en cuenta que durante anomalías en el plano de control, se debe evitar reiniciar instancias del plano de datos para prevenir la pérdida de configuraciones en memoria.

Anomalías en el Plano de Control

Interrupción de la Comunicación de Red

En caso de una interrupción de la red entre la puerta de enlace API y etcd, las configuraciones escritas en etcd a través de la API de administración no llegarán a la puerta de enlace. Sin embargo, la puerta de enlace continúa utilizando la configuración previamente guardada en memoria para manejar nuevas solicitudes de tráfico, evitando salidas anormales debido a la pérdida de conexión con etcd. Una vez que se restablece la conexión entre la puerta de enlace y etcd, la puerta de enlace recibe la última configuración y reanuda su funcionamiento normal.

Caída Anormal de etcd

Si etcd experimenta una caída anormal, los administradores no podrán escribir configuraciones a través de la API de administración. Sin embargo, esto no afecta la operación de la puerta de enlace, que continúa funcionando y manejando solicitudes de tráfico. En este escenario, el comportamiento de la puerta de enlace es similar a la situación después de una interrupción de red.

Implementación de Múltiples Nodos y Equilibrio de Carga

Para garantizar la alta disponibilidad, se recomienda implementar múltiples instancias de puerta de enlace y configurar un equilibrador de carga (como AWS Load Balancer o F5) entre ellas. Estos equilibradores de carga tienen mecanismos de verificación de salud para evaluar el estado de salud de las instancias de la puerta de enlace. Si una instancia de la puerta de enlace falla, el equilibrador de carga la elimina rápidamente del servicio y puede agregar nuevos nodos de puerta de enlace. Esta estrategia de implementación de múltiples nodos y equilibrio de carga ayuda a prevenir interrupciones del negocio causadas por la falla de un solo nodo.

Conclusión

En resumen, Apache APISIX demuestra una estabilidad y tolerancia a fallos sobresalientes cuando el plano de control y el plano de datos están desconectados. Su arquitectura separada, mecanismo eficiente de sincronización de datos y estrategia de implementación de múltiples nodos garantizan una alta disponibilidad incluso en circunstancias excepcionales. El diseño de Apache APISIX tiene en cuenta diversas anomalías de red y componentes, lo que lo hace destacar en el manejo de solicitudes de tráfico a nivel empresarial.

Tags: