Solução API7: Alta Disponibilidade para Serviços B2B
January 3, 2024
No curso da comunicação com clientes, uma pergunta-chave frequentemente surge: "Vocês oferecem alta disponibilidade? E como?"
O API7 Enterprise fornece os componentes necessários para implantações de alta disponibilidade gerenciadas pelo cliente. A disponibilidade depende da arquitetura de implantação, das dependências de infraestrutura e das operações do cliente; o API7 Enterprise auto-hospedado não inclui um percentual de disponibilidade no nível do produto.
No ambiente de negócios, a alta disponibilidade dos serviços de API é particularmente crítica, pois impacta diretamente a continuidade e a confiabilidade do cliente. Por que a alta disponibilidade é tão crucial para os negócios B2B? Porque, como uma métrica-chave, qualquer interrupção ou falha dos serviços de API em momentos críticos pode impactar severamente os negócios do cliente, resultando não apenas em perdas financeiras, mas também potencialmente danificando a reputação e a credibilidade do cliente.
Como o API7 oferece suporte a implantações de alta disponibilidade?
A alta disponibilidade é um objetivo de arquitetura e operações, não uma propriedade que um produto possa garantir sozinho. As seções a seguir descrevem os componentes que o API7 Enterprise fornece para ajudar os clientes a criar implantações de alta disponibilidade. O resultado efetivo depende do número de instâncias, do design de failover, das dependências de infraestrutura e das operações do cliente.
Plano de Controle Sem Estado
O plano de controle do API7 Enterprise usa um design sem estado para gerenciar configurações de API. Isso permite que o cliente ou uma plataforma de orquestração execute várias instâncias e substitua as que não estejam íntegras sem transferir o estado da aplicação entre elas. O design pode reduzir o impacto da perda de uma instância, desde que o cliente configure a redundância, as verificações de integridade, a distribuição de tráfego e a capacidade de substituição adequadas.
PostgreSQL como Centro de Configuração Padrão
O API7 Enterprise usa o PostgreSQL para armazenar dados de configuração. O PostgreSQL pode ser implantado com os padrões de replicação e failover selecionados pelo cliente, para que uma instância em espera possa assumir o serviço se a instância principal falhar. O cliente ou o provedor de infraestrutura configura, monitora e testa o failover do banco de dados; portanto, a disponibilidade dos dados de configuração depende da arquitetura de PostgreSQL, armazenamento, rede e operações utilizada.

Plano de Dados Sem Estado
O plano de dados é baseado no APISIX, e as instâncias do gateway não mantêm estado para o processamento do tráfego. Isso permite executar, escalar e substituir várias instâncias por meio de um balanceador de carga ou de uma plataforma de orquestração. O design pode reduzir o impacto da perda de uma instância, mas não garante a continuidade do serviço se houver falha de capacidade, rede, serviços dependentes ou distribuição de tráfego.
Plano de Dados e Plano de Controle Independentes
O API7 Enterprise separa o processamento de tráfego no plano de dados do gerenciamento de configurações no plano de controle. O plano de dados usa a configuração sincronizada e não precisa consultar o plano de controle para cada solicitação. Se o plano de controle ficar indisponível em determinados cenários, uma instância do plano de dados poderá processar solicitações com a última configuração conhecida, mas não receberá novas atualizações até que a conexão seja restabelecida. O resultado continua dependendo da integridade das instâncias do gateway, de suas dependências e da arquitetura do cliente.
Cenários de Uso e Benefícios da Arquitetura de Alta Disponibilidade
Em implantações com Docker ou em uma máquina virtual, os clientes podem executar várias instâncias do API7 Gateway atrás de um balanceador de carga com verificações de integridade e usar as ferramentas operacionais escolhidas para remover e substituir instâncias não íntegras. No Kubernetes, réplicas, verificações de prontidão e vivacidade e controladores podem substituir pods não íntegros. Esses mecanismos só são eficazes quando o cliente configura adequadamente o número de réplicas, a capacidade, o agendamento, o armazenamento, a rede e os testes de failover.
Quando esses mecanismos são projetados, operados e testados adequadamente, eles podem reduzir o impacto de determinadas falhas, acelerar a recuperação e ajudar a continuar o processamento de parte do tráfego. No entanto, eles não evitam todas as interrupções de negócios nem garantem menores custos de manutenção. Os resultados dependem dos objetivos de recuperação, da redundância, das dependências externas, do monitoramento e dos procedimentos operacionais do cliente.
Conclusão
O API7 Enterprise fornece mecanismos de alta disponibilidade para implantações gerenciadas pelo cliente. Esses mecanismos podem reduzir o impacto de falhas, mas a disponibilidade de serviço alcançada depende da arquitetura de implantação, das dependências de infraestrutura e das operações do cliente.


