Prácticas Financieras para Facilitar la Transformación Cloud-Native Utilizando APISIX como API Gateway
Yonghui Lu
January 13, 2023
Este artículo proviene de la presentación en ApacheCon Asia 2022 de Yonghui Lu, Director de API Gateway en Essence Securities. Yonghui compartió la práctica de Essence Securities sobre la puerta de enlace API basada en Apache APISIX en un entorno nativo de la nube.
Resumen
Desafíos
- La pila tecnológica original era complicada, compuesta por NGINX, Spring Cloud Gateway y sistemas desarrollados internamente.
- Dificultad en la gestión del sistema debido a la falta de una pila tecnológica unificada.
- Trabajo duplicado y altos costos en varios proyectos empresariales.
Objetivos
- Nube nativa y fácil integración con los sistemas empresariales de Essence Securities.
- Gestionar la implementación, monitoreo y alertas.
- Alto rendimiento y capacidad de escalabilidad.
- Personalización de funciones e integración rápida con los sistemas.
- Habilitar funciones potentes y abundantes como gobernanza de tráfico, seguridad, conversión de protocolos, autorización, autenticación, etc.
Resultados
- Promovió la gobernanza del tráfico, gestionando de manera segura los picos de tráfico.
- Mejoró la eficiencia y conveniencia en el desarrollo.
- Impulsó el desarrollo nativo de la nube en Essence Securities.
- Mejoró la seguridad de los datos y la gestión de permisos al establecer dominios independientes.
Sobre Essence Securities
Essence Securities Co., Ltd. (Essence Securities) es una de las principales empresas de valores en China. Desde su fundación en 2006, Essence Securities se ha convertido rápidamente en una de las 15 principales empresas de valores de China con un historial comprobado de proporcionar los servicios más altos tanto al sector privado como al público. Cuenta con cuatro subsidiarias independientes y más de 120 sucursales minoristas en 25 provincias principales del país.
Los negocios principales de Essence Securities incluyen corretaje de valores, consultoría de inversión en valores, servicios de asesoramiento financiero relacionados con operaciones e inversiones en valores, suscripción y patrocinio de valores, inversión en valores, gestión de activos y otros negocios aprobados por la Comisión Reguladora de Valores de China.
¿Por qué elegir APISIX?
Desde 2021, Essence Securities comenzó a migrar aplicaciones a la nube y llevó a cabo un plan de puerta de enlace API. En 2022, comenzó a trabajar en la creación de una puerta de enlace API. Después de una cuidadosa comparación, Essence Securities eligió Apache APISIX entre una amplia gama de soluciones de puerta de enlace API por varias ventajas cruciales:
Alto Rendimiento
Las empresas de valores tienen una característica típica: habrá picos de tráfico durante las horas pico. Apache APISIX es la puerta de enlace API de mayor rendimiento con un QPS de 23,000 por núcleo, con un retraso promedio de solo 0.6 milisegundos.
“Necesitamos que la puerta de enlace API maneje picos de tráfico y no se convierta en nuestro próximo cuello de botella. Después de comparar algunas puertas de enlace API basadas en OpenResty u otras pilas tecnológicas, Apache APISIX se destaca con su ventaja competitiva de alto rendimiento y puede cumplir con nuestros requisitos para la puerta de enlace API.” dijo Yonghui.
Escalable y Amigable para Desarrolladores
APISIX ofrece a sus usuarios funciones ricas. En Essence Securities, limitación de tasa, cortocircuito, autorización y autenticación, y lanzamiento canario son los más utilizados.
Para esto, Essence Securities desarrolló internamente algunos complementos para satisfacer las necesidades internas de los grupos de negocios. APISIX oficialmente admite muchos lenguajes de programación, incluyendo Java, Golang, Python, y Lua. Manteniéndose alineado con la comunidad, Essence Securities eligió Lua. Como resultado, todo el proceso de desarrollo fue muy fluido. Essence Securities también considerará contribuir con sus complementos desarrollados internamente a la comunidad.
Escenarios de Máquina Virtual y Contenedores
Actualmente, migrar la aplicación a la nube es una estrategia crucial de Essence Securities. Sin embargo, hay varios escenarios que se implementan en máquinas virtuales.
“Necesitamos considerar la compatibilidad de estas aplicaciones en dos estados al seleccionar la puerta de enlace API, aunque nuestro plan se centra más en contenedores. APISIX ofrece mucho soporte en la compatibilidad de escenarios.” dijo Yonghui.
Desarrollo Nativo de la Nube
Apache APISIX es excelente en el soporte de escenarios nativos de la nube, mientras que Essence Securities está siguiendo la tendencia nativa de la nube. Utilizando APISIX, APISIX Ingress Controller y Service Mesh, Essence Securities también espera los nuevos avances y desarrollos de APISIX.
Comunidad Activa
Como proyecto de código abierto, APISIX es activo en su comunidad. Los problemas pueden discutirse y resolverse a tiempo. En 2022, se organizaron casi 40 eventos comunitarios de APISIX en persona y en línea. Las personas familiarizadas con APISIX están entusiasmadas con estas actividades.
¿Cómo se beneficia Essence Securities al usar APISIX?
A continuación se muestra la arquitectura de microservicios de Essence Securities, comúnmente vista en escenarios nativos de la nube.
-
Autoridad y Autenticación: Antes de usar APISIX, la autoridad y autenticación eran controladas por múltiples microservicios, lo que resultaba en mucho trabajo de desarrollo repetitivo.
-
Gobernanza del Tráfico: Essence Securities logró la gobernanza del tráfico al integrarse con APISIX, entre los cuales los escenarios más típicos son la limitación de tasa y el lanzamiento canario. Antes de usar APISIX, estas funciones se realizaban con NGINX, lo que requería modificar el archivo de configuración y reiniciar los nodos. En contraste, el panel de control visible de APISIX y la función de recarga en caliente brindan una gran conveniencia a la gobernanza del tráfico de Essence Securities.
-
Lanzamiento Canario: APISIX es flexible en el lanzamiento canario, que se puede lograr por porción y características de tráfico, cubriendo el encabezado de la solicitud, el parámetro de la solicitud, la cookie, etc. Por ejemplo, Essence Securities necesita redirigir el tráfico del usuario a servidores de versión canaria por ID de usuario.
-
Observabilidad: Antes, Essence Securities necesitaba realizar la gestión observable mediante métricas, trazabilidad y registros. Es un desafío hacer realidad la gobernanza multidimensional. Sin embargo, solo habilitando tres complementos con configuraciones simples se puede lograr el mismo efecto después de usar APISIX. ¡Qué progreso tan notable!
Innovaciones Basadas en APISIX
Inicio de sesión único CAS
Essence Securities utiliza CAS (Servicio de Autenticación Central) como su método estándar de autenticación, lo cual es adecuado para colocar la autenticación en la puerta de enlace.
Essence Securities extiende APISIX y agrega una nueva función, inicio de sesión único CAS. Hay varias ventajas al hacerlo.
Colocar CAS en la capa de la puerta de enlace permite acceder a CAS e introducir sus funciones convenientemente. Por ejemplo, existen servicios de certificación unificados para obtener la información de los usuarios.
Además, CAS establece la información del usuario en el encabezado de la solicitud y la lleva al servicio ascendente para guardar el estado de inicio de sesión del usuario. Por lo tanto, no es necesario iniciar sesión repetidamente en otros sistemas, ahorrando mucho tiempo a los usuarios y mejorando la conveniencia.
Complemento de autenticación authz - casbin
El complemento de autenticación authz-casbin
de APISIX es un complemento de autorización basado en Lua Casbin. Este complemento admite escenarios de autorización potentes basados en el modelo RBAC (control de acceso basado en roles).
Admite almacenamiento en archivos CSV, configuración de complementos de APISIX y almacenamiento de políticas mediante la configuración de metadatos.
A continuación se muestra un ejemplo.
En Essence Securities, hay un concepto importante: dominio. Los usuarios tendrán diferentes permisos en varios dominios. Por ejemplo, el empleado A es un gerente del dominio A, pero podría ser solo un espectador en el dominio B.
Al definir solicitudes, políticas y roles, se debe apuntar al dominio. Por lo tanto, Essence Securities modificó el casbin para adaptarse a este escenario. El complemento depende del repositorio Lua, que admite RBAC con dominios. En consecuencia, el requisito anterior se puede satisfacer simplemente llamando a la interfaz correspondiente del repositorio Lua, lo cual es muy sencillo. Esta forma puede mejorar enormemente la seguridad de los datos y la gestión de permisos.
Observabilidad
APISIX proporciona monitoreo multidimensional como métricas, trazabilidad y recopilación de registros. Todas estas funciones se pueden lograr con configuraciones simples.
Después de habilitar el complemento Prometheus, métricas como el retraso de la solicitud, el ancho de banda y la tasa de transmisión del código de estado HTTP pueden ser observables. Estas pueden ser útiles en la resolución de problemas.
En cuanto al análisis de trazabilidad, cuando el servicio ascendente se conecta con Skywalking, se puede rastrear la trazabilidad completa de la llamada una vez que se habilita Skywalking.
Essence Securities está planeando extraer más valor de la recopilación de registros. Enviar los registros de acceso a kafka puede ayudar a Essence Securities a analizar y contar datos.
Planes Futuros
Multitenencia
Anteriormente, los sistemas de Essence Securities tenían sus propios clústeres independientes para reducir los riesgos de errores y separar la información del usuario. Apache APISIX utiliza etcd para su centro de configuración, lo cual es adecuado para la etapa actual.
Los clústeres compartidos son útiles para la gestión unificada de recursos y mejorar la eficiencia de O&M. Essence Securities combinaría clústeres independientes con multitenencia para ampliar sus capacidades de gestión.
Mercado de Aplicaciones
Essence Securities proporcionaría muchos microservicios como productos a los usuarios, como plataformas de registro, monitoreo, alertas y centro de datos, cuya gestión centralizada se puede realizar mediante APISIX.
Después de introducir la capa de puerta de enlace, se agregaron muchas gobernanzas de puerta de enlace API, como autenticación, autorización y gobernanza del tráfico.
Monitoreo de Datos Observables
El complemento kafka-logger de APISIX puede ayudar a Essence Securities a enviar el registro de acceso de la puerta de enlace a kafka. Kafka puede limpiar, formatear y contar la información y luego obtener estadísticas más valiosas, como el Top N de llamadas, solicitudes anormales y retrasos de solicitudes.
“O podemos obtener la distribución del código de estado, la distribución de IP del cliente, estadísticas de tráfico, picos de tráfico, distribución de horas de menor actividad, detección de tráfico anormal, etc. Esta parte es de gran importancia para extender las capacidades observables de nuestro sistema.” dijo Yonghui.
Essence Securities también espera más cooperación con APISIX Ingress Controller y Service Mesh.
¿Buscas Soporte de APISIX?
Apache APISIX es una puerta de enlace API nativa de la nube, dinámica, escalable y de alto rendimiento para todas tus APIs y microservicios. Donado a la Fundación Apache Software por API7.ai, APISIX ha crecido hasta convertirse en un proyecto de código abierto de nivel superior de Apache.
¿Quieres acelerar tu desarrollo con confianza como Essence Securities? Para maximizar el soporte de APISIX, necesitas API7. ¡Ofrecemos soporte profundo para APISIX y soluciones de gestión de API basadas en tus necesidades!
Contáctanos ahora: https://api7.ai/contact.