Como Determinar os Recursos Necessários para o Seu API Gateway?
January 25, 2024
Contexto
O gateway de API serve como um ponto de entrada unificado para os serviços externos de uma empresa, destacando sua importância inegável. Qualquer interrupção na disponibilidade do próprio gateway de API impacta diretamente todos os serviços oferecidos pela empresa—um cenário catastrófico que é inaceitável. Portanto, é crucial determinar a escala de implantação adequada para o gateway de API em cenários de produção.
Determinar os recursos necessários é essencial para garantir o desempenho, a disponibilidade e a estabilidade do gateway de API, otimizando a utilização de recursos e a relação custo-benefício. Recursos insuficientes podem levar a problemas como timeouts de solicitação, congestionamento e perda de pacotes, afetando a experiência do usuário e a qualidade do serviço. Por outro lado, recursos excessivos podem resultar em desperdício de recursos, aumento da complexidade operacional, elevação de custos e riscos.
Portanto, determinar os recursos necessários para o gateway de API é uma etapa crucial, exigindo planejamento cuidadoso e ajustes com base nas necessidades do negócio, previsões de tráfego e testes de desempenho. Este artigo, baseado nas melhores práticas de diversos setores, descreve um processo de três etapas para referência:
- Seleção do Gateway: QPS por núcleo
- Tipos de Negócio: Serviços financeiros ou não financeiros
- Requisitos de Alta Disponibilidade
Seleção do Gateway
O gargalo para os componentes básicos do gateway de API geralmente está na CPU, não na rede, disco ou memória. O processamento de CPU de núcleo único de um gateway de API é um indicador significativo de sua qualidade. Quando o consumo de recursos é menor para o mesmo tráfego de solicitações de API, isso implica em menos máquinas necessárias, simplificando a gestão operacional e aumentando a disponibilidade do serviço.
Apache APISIX, um gateway de API de código aberto, estima conservadoramente que uma CPU de núcleo único pode suportar pelo menos 10.000 QPS quando plugins comuns de monitoramento, limitação de taxa, etc., estão habilitados. As empresas podem realizar testes específicos para coletar resultados considerando diferenças nos plugins habilitados, ambiente de hardware, condições de rede e características das solicitações de API.
Tipos de Negócio
A maioria das empresas não financeiras pode controlar o uso de recursos de CPU no gateway de API na faixa de 20-30% em um ambiente de produção, o que é um cenário ideal. Mesmo com um aumento de 3-5 vezes nas chamadas de serviço, elas podem lidar com isso de forma eficaz. Setores como notícias, entretenimento e internet podem usar essa carga.
No entanto, para setores como bancos, finanças e valores mobiliários, onde o valor da API é alto, manter a carga diária da CPU em 5-10% é ideal. Isso permite que o gateway de API lide com picos de tráfego repentinos 10-20 vezes maiores que o normal.
Requisitos para Alta Disponibilidade
Para requisitos mais altos de disponibilidade, as instâncias de proxy do gateway de API devem ter no mínimo 2 nós.
Exemplos Práticos
Usuário do Setor de Serviços Financeiros
Exemplo de Empresa:
- QPS para as chamadas diárias de API é 100.000
- Carga diária do gateway de API é 10%
- Seleção do gateway: Apache APISIX (QPS por núcleo: 10.000)
Com base nas informações acima, o número necessário de CPUs é 100.000 / 10.000 / 10% = 100. Se forem usadas máquinas com 4 núcleos de CPU, serão necessárias 25 máquinas; com 8 núcleos de CPU, serão necessárias 13 máquinas.
Usuário do Setor de Serviços Não Financeiros
Exemplo de Empresa:
- QPS para as chamadas diárias de API é 100.000
- Carga diária do gateway de API é 25%
- Seleção do gateway: Apache APISIX (QPS por núcleo: 10.000)
Com base nas informações acima, o número necessário de CPUs é 100.000 / 10.000 / 25% = 40. Se forem usadas máquinas com 4 núcleos de CPU, serão necessárias 10 máquinas; com 8 núcleos de CPU, serão necessárias 5 máquinas.
Conclusão
No uso prático, o tráfego é complexo e variável, exigindo ajustes flexíveis nas médias. Ao adotar gateways de API excelentes como o APISIX e configurar judiciosamente os recursos de hardware, as empresas podem equilibrar melhor os custos e os requisitos de serviço, garantindo a exposição segura, estável e eficiente das APIs da empresa aos usuários finais.