Mecanismos Avançados de Estabilidade e Tolerância a Falhas do Apache APISIX

January 20, 2024

Technology

Ao selecionar gateways de API, estabilidade e tolerância a falhas são fatores cruciais, juntamente com funcionalidade, escalabilidade e segurança. No design do Apache APISIX em 2019, estabilidade e tolerância a falhas foram consideradas essenciais, dado o potencial de incidentes significativos de produção ao lidar com solicitações de tráfego internas e externas.

Para fornecer uma compreensão abrangente para pesquisadores, vamos nos aprofundar nos principais recursos de estabilidade e tolerância a falhas do Apache APISIX.

Separação do Plano de Controle e Plano de Dados

O Apache APISIX adota uma arquitetura separada com um plano de controle (ou seja, etcd, Admin API) e um plano de dados sem estado (ou seja, o gateway de API pode escalar conforme a demanda). Não há dependência entre eles. Isso significa que, mesmo que o plano de controle experimente anomalias (como interrupções de rede ou saídas anormais), o plano de dados pode continuar a operar normalmente, lidando com novas solicitações de tráfego. Essa separação garante a alta disponibilidade do APISIX.

Arquitetura Técnica do APISIX

Mecanismo de Sincronização de Dados

Existe um mecanismo eficiente de sincronização de dados entre o plano de dados e o plano de controle. O plano de dados atua como um etcd Watcher, sendo notificado ativamente pelo etcd sobre mudanças de dados. Ele atualiza sua configuração e regras de acordo. Portanto, quando um administrador escreve configuração no etcd via Admin API, o plano de dados recebe rapidamente notificações de mudança e armazena a configuração na memória. Esse mecanismo evita a necessidade de buscar configuração do etcd para cada solicitação recebida, reduzindo a carga do sistema. No entanto, é importante notar que, durante anomalias no plano de controle, reiniciar instâncias do plano de dados deve ser evitado para prevenir a perda de configurações na memória.

Anomalias no Plano de Controle

Interrupção de Comunicação de Rede

No caso de uma interrupção de rede entre o gateway de API e o etcd, as configurações escritas no etcd via Admin API não chegarão ao gateway. No entanto, o gateway continua a usar a configuração salva anteriormente na memória para lidar com novas solicitações de tráfego, prevenindo saídas anormais devido à perda de conexão com o etcd. Uma vez que a conexão entre o gateway e o etcd é restaurada, o gateway recebe a configuração mais recente e retoma a operação normal.

Falha Anormal do etcd

Se o etcd sofrer uma falha anormal, os administradores não poderão escrever configurações via Admin API. No entanto, isso não afeta a operação do gateway, que continua a funcionar e lidar com solicitações de tráfego. Nesse cenário, o comportamento do gateway é semelhante à situação após uma interrupção de rede.

Implantação de Múltiplos Nós e Balanceamento de Carga

Para garantir alta disponibilidade, é recomendado implantar várias instâncias de gateway e configurar um balanceador de carga (como AWS Load Balancer ou F5) entre eles. Esses balanceadores de carga possuem mecanismos de verificação de saúde para avaliar o estado de saúde das instâncias de gateway. Se uma instância de gateway falhar, o balanceador de carga a remove prontamente do serviço e pode adicionar novos nós de gateway. Essa estratégia de implantação de múltiplos nós e balanceamento de carga ajuda a prevenir interrupções de negócios causadas pela falha de um único nó.

Conclusão

Em resumo, o Apache APISIX demonstra estabilidade e tolerância a falhas excepcionais quando o plano de controle e o plano de dados estão desconectados. Sua arquitetura de separação, mecanismo eficiente de sincronização de dados e estratégia de implantação de múltiplos nós garantem alta disponibilidade mesmo em circunstâncias excepcionais. O design do Apache APISIX leva em consideração várias anomalias de rede e componentes, fazendo com que ele se destaque no tratamento de solicitações de tráfego em nível empresarial.

Tags: