Integración de APISIX Declarative CLI con API7 Enterprise

March 20, 2024

Products

¿Qué es ADC?

ADC (APISIX Declarative CLI), introducido por API7.ai, es una herramienta de configuración declarativa diseñada para ayudar a los usuarios a implementar capacidades de GitOps en entornos que no son Kubernetes. Los usuarios pueden integrarlo sin problemas en sus pipelines de CI/CD para gestionar el ciclo de vida de las APIs, facilitando actualizaciones y lanzamientos.

En su iteración actual, ADC se ha integrado con APISIX para facilitar la exportación y sincronización de recursos de APISIX.

¿Qué es API7 Enterprise?

API7 Enterprise está construido sobre APISIX, ofreciendo capacidades mejoradas de gestión de APIs, incluyendo agrupación de gateways y versionado de servicios, con el objetivo de proporcionar una solución integral de gestión de APIs para empresas. Existen algunas diferencias en comparación con la gestión de APIs basada en GitOps, ya que los usuarios pueden gestionar fácilmente las funcionalidades de API7 Enterprise a través de una interfaz Web UI.

Algunos usuarios desean adoptar el modo GitOps en API7 Enterprise para gestionar mejor el ciclo de vida completo de las APIs. Su objetivo es almacenar todas las definiciones de APIs como archivos de configuración declarativos y garantizar la corrección de las declaraciones de APIs mediante mecanismos de revisión de código en Pull Requests. También utilizan CI en el repositorio para previsualizar implementaciones de APIs en el entorno de desarrollo antes de lanzarlas al entorno de producción.

ADC ha establecido un marco para gestionar configuraciones declarativas y ha completado tareas de detección de cambios y sincronización en recursos de APIs. Por lo tanto, es evidente que el soporte de ADC en API7 Enterprise se convertirá en una dirección de desarrollo.

API7 enterprise integra ADC

Nuevas características de la versión 0.7 de ADC

Para soportar API7 Enterprise, se han introducido varias mejoras clave en ADC, como se describe a continuación.

Backend de API7 Enterprise

Hemos lanzado una nueva versión de ADC con soporte preliminar para su uso en el backend de API7 Enterprise. Funcionalidades principales como dump, diff y sync ya están disponibles en el backend de API7 Enterprise.

Con este nuevo soporte de backend, los usuarios pueden exportar directamente recursos de APIs desde APISIX y sincronizarlos con API7 Enterprise, facilitando la migración de configuraciones antiguas desde APISIX para aprovechar al máximo las potentes características empresariales proporcionadas por API7 Enterprise.

Grupo de Gateways

API7 Enterprise ofrece capacidades avanzadas de gestión para múltiples instancias de gateways. Los usuarios pueden asignar instancias de gateways a diferentes grupos de gateways para lograr el aislamiento de configuraciones en diferentes entornos. Por ejemplo, se pueden crear diferentes clústeres de gateways para desarrollo y producción, permitiendo que un servicio se publique por separado en diferentes grupos de gateways para satisfacer diferentes requisitos. Además de los servicios, los plugins globales y los certificados TLS también se gestionan a través de grupos de gateways.

La gestión de grupos de gateways es una característica clave nueva de API7 Enterprise, y ADC proporciona soporte para ello. Al usar comandos principales de ADC, los usuarios pueden especificar una bandera de línea de comandos llamada gateway-group, que indica a ADC que recupere y sincronice los recursos especificados por el usuario desde ese grupo de gateways.

Filtrado de Recursos Basado en Etiquetas

En versiones anteriores de ADC, las configuraciones de APIs se extraían y sincronizaban completamente desde la API de Administración. Sin embargo, incluso si realizábamos modificaciones menores en las configuraciones de APIs, el sistema aún requería que proporcionáramos todos los archivos de configuración declarativos, incluso si algunos de ellos no habían cambiado. Si no se proporcionaban estos archivos de configuración inalterados, el sistema consideraría que los recursos listados en la API de Administración pero no proporcionados en la línea de comandos habían sido eliminados, lo que resultaría en su eliminación del entorno de producción. Esto podría comprometer el estado de configuración esperado y afectar el procesamiento del tráfico, lo cual no es deseable.

Para abordar este problema, ahora proporcionamos un filtro de recursos basado en etiquetas. Este filtro permite a los usuarios especificar uno o más pares clave-valor de etiquetas que deben cumplir los recursos a través de una bandera de línea de comandos llamada label-selector. Cualquier recurso local y remoto que no cumpla con los requisitos de este filtro de etiquetas será ignorado, evitando efectivamente la interrupción accidental de las configuraciones del gateway.

Perspectivas de Nuevas Características

Además de las nuevas características mencionadas anteriormente, seguimos explorando nuevas áreas para mejorar la funcionalidad de ADC y proporcionar un mayor valor a los usuarios. Algunos ejemplos incluyen:

  • Proporcionar un mecanismo de plugins para permitir a los usuarios personalizar backends de gateways de APIs. Los usuarios pueden exportar configuraciones declarativas de ADC desde cualquier gateway de API y definir configuraciones de APIs a través de ADC para implementarlas en cualquier gateway de API.

  • Ofrecer capacidades de programación scriptable para proporcionar hooks que permitan a los usuarios inspeccionar y modificar configuraciones de ADC en etapas específicas. Esto ayudará a implementar verificaciones de línea base de seguridad para ciertas APIs y prevenir escenarios inseguros comunes.

  • Proporcionar convertidores de definiciones de APIs además de OpenAPI para enriquecer el ecosistema de herramientas de APIs que ADC puede aprovechar.

ADC 0.7 solo está disponible para uso interno dentro de API7 Enterprise y no ha sido lanzado públicamente. Esta característica se contribuirá a la comunidad de código abierto Apache APISIX en el segundo trimestre de este año.

Tags: