Integrando o APISIX Declarative CLI com o API7 Enterprise

March 20, 2024

Products

O que é ADC?

ADC (APISIX Declarative CLI), introduzido pela API7.ai, é uma ferramenta de configuração declarativa que visa auxiliar os usuários a implementar capacidades de GitOps em ambientes que não utilizam Kubernetes. Os usuários podem integrá-la facilmente em seus pipelines de CI/CD para gerenciar o ciclo de vida de APIs, facilitando atualizações e lançamentos.

Na sua iteração atual, o ADC foi integrado ao APISIX para facilitar a exportação e sincronização de recursos do APISIX.

O que é o API7 Enterprise?

API7 Enterprise é construído sobre o APISIX, fornecendo capacidades aprimoradas de gerenciamento de APIs, incluindo agrupamento de gateways e versionamento de serviços, com o objetivo de oferecer uma solução abrangente de gerenciamento de APIs para empresas. Existem algumas diferenças em comparação com o gerenciamento de APIs baseado em GitOps, pois os usuários podem gerenciar facilmente as funcionalidades do API7 Enterprise através de uma interface Web UI.

Alguns usuários desejam ardentemente adotar o modo GitOps no API7 Enterprise para gerenciar melhor o ciclo de vida completo das APIs. Eles pretendem armazenar todas as definições de APIs como arquivos de configuração declarativos e garantir a correção das declarações de APIs através de mecanismos de revisão de código em Pull Requests. Eles também utilizam CI no repositório para pré-visualizar implantações de APIs no ambiente de desenvolvimento antes de liberá-las para o ambiente de produção.

O ADC estabeleceu uma estrutura para gerenciar configurações declarativas e concluiu tarefas de detecção de alterações e sincronização em recursos de APIs. Portanto, é evidente que o suporte do ADC no API7 Enterprise se tornará uma direção de desenvolvimento.

API7 enterprise integra com ADC

Novas Funcionalidades da Versão 0.7 do ADC

Para suportar o API7 Enterprise, várias melhorias-chave foram introduzidas no ADC, conforme detalhado abaixo.

Backend do API7 Enterprise

Lançamos uma nova versão do ADC com suporte preliminar para seu uso no backend do API7 Enterprise. Funcionalidades principais como dump, diff e sync agora estão disponíveis no backend do API7 Enterprise.

Com esse novo suporte de backend, os usuários podem exportar diretamente recursos de APIs do APISIX e sincronizá-los com o API7 Enterprise, facilitando a migração de configurações antigas do APISIX para aproveitar totalmente os poderosos recursos de nível empresarial fornecidos pelo API7 Enterprise.

Grupo de Gateway

O API7 Enterprise oferece capacidades avançadas de gerenciamento para múltiplas instâncias de gateway. Os usuários podem alocar instâncias de gateway para diferentes grupos de gateway para alcançar isolamento de configurações em diferentes ambientes. Por exemplo, diferentes clusters de gateway podem ser criados para fins de desenvolvimento e produção, permitindo que um serviço seja publicado separadamente para diferentes grupos de gateway para atender a diferentes requisitos. Além de serviços, plugins globais e certificados TLS também são gerenciados através de grupos de gateway.

O gerenciamento de grupos de gateway é uma nova funcionalidade-chave do API7 Enterprise, e o ADC fornece suporte para isso. Ao usar comandos principais do ADC, os usuários podem especificar uma flag de linha de comando chamada gateway-group, que instrui o ADC a recuperar e sincronizar recursos especificados pelo usuário a partir desse grupo de gateway.

Filtragem de Recursos Baseada em Labels

Em versões anteriores do ADC, as configurações de API eram totalmente extraídas e sincronizadas a partir da Admin API. No entanto, mesmo que fizéssemos pequenas modificações nas configurações de API, o sistema ainda exigia que fornecêssemos todos os arquivos de configuração declarativos, mesmo que alguns deles não tivessem sido alterados. A falha em fornecer esses arquivos de configuração inalterados levaria o sistema a considerar os recursos listados na Admin API, mas não fornecidos na linha de comando, como excluídos, resultando em sua remoção do ambiente de produção. Isso poderia comprometer o estado de configuração esperado e afetar o processamento de tráfego, o que não é desejável.

Para resolver esse problema, agora fornecemos um filtro de recursos baseado em labels. Esse filtro permite que os usuários especifiquem um ou mais pares de chave-valor de label que devem ser atendidos pelos recursos através de uma flag de linha de comando chamada label-selector. Quaisquer recursos locais e remotos que não atendam aos requisitos desse filtro de label serão ignorados, prevenindo efetivamente a interrupção acidental das configurações do gateway.

Perspectivas para Novas Funcionalidades

Além das novas funcionalidades mencionadas acima, ainda estamos explorando novas áreas para aprimorar a funcionalidade do ADC e fornecer maior valor aos usuários. Alguns exemplos incluem:

  • Fornecer um mecanismo de plugin para permitir que os usuários personalizem backends de gateway de API. Os usuários podem exportar configurações declarativas do ADC de qualquer gateway de API e definir configurações de API através do ADC para implantação em qualquer gateway de API.

  • Oferecer capacidades de programação scriptável para fornecer hooks que permitam aos usuários inspecionar e modificar configurações do ADC em estágios específicos. Isso ajudará a implementar verificações de linha de base de segurança para certas APIs e prevenir cenários comuns de insegurança.

  • Fornecer conversores de definição de API além do OpenAPI para enriquecer o ecossistema de ferramentas de API que o ADC pode aproveitar.

O ADC 0.7 está disponível apenas para uso interno no API7 Enterprise e não foi lançado publicamente. Essa funcionalidade será contribuída para a comunidade de código aberto Apache APISIX no segundo trimestre deste ano.

Tags: