Apache APISIX Impulsiona o WPS Office a Lidar com Milhões de QPS com Facilidade

Yilia Lin

Yilia Lin

September 28, 2021

Case Study

Visualização

Sobre a Kingsoft e o WPS Office

A Kingsoft Office é uma subsidiária da Kingsoft, uma empresa líder em software e serviços de Internet com sede na China, listada na bolsa de valores de Hong Kong. O produto principal — WPS Office — é um pacote de escritório completo que inclui Writer, Planilha, Apresentação e PDF para gerenciar tarefas de escritório. Até 2022, o WPS Office atingiu mais de 494 milhões de usuários ativos mensais e mais de 1,2 bilhão de instalações.

Inicialmente, a Kingsoft usava o NGINX como um gateway de API para lidar com desafios operacionais. A versão original possuía apenas funcionalidades essenciais, como upstream dinâmico, funcionalidade de lista negra e firewall de aplicação web (WAF). No entanto, à medida que as demandas aumentaram, a Kingsoft Office começou a explorar soluções alternativas de gateway de API que pudessem atender melhor às suas necessidades em evolução.

Desafios

  • O sistema anterior tinha limitações em atender às necessidades básicas de operação e manutenção, faltando a capacidade de escalar dinamicamente.
  • O sistema lida com um volume significativo de tráfego e exige um gateway de API robusto para um desempenho ideal.
  • Faltava a capacidade de carregar alterações dinamicamente, exigindo recarregamento para que as modificações entrassem em vigor.

Resultados

  • Implementou uma solução que oferece atualizações dinâmicas de alto desempenho e baixa latência, permitindo personalização e extensão contínuas.
  • Aumentou significativamente a capacidade do sistema de lidar facilmente com milhões de consultas por segundo (QPS), garantindo estabilidade inabalável dos negócios.
  • Estabeleceu com sucesso medidas de alta disponibilidade e melhorou a segurança do sistema para proteger operações críticas.

Contexto

Nos estágios iniciais, a Kingsoft Office empregou um gateway de API para resolver problemas operacionais e desenvolveu sua própria solução baseada em OpenResty e Lua. Essa solução permitia funcionalidades de gerenciamento dinâmico de upstream, lista negra e firewall de aplicação web (WAF). No entanto, havia algumas desvantagens na fase 1.0.

Por exemplo,

  • Apenas o upstream era dinâmico.
  • Era necessário recarregar para atualizar e refletir novos nomes de domínio, o que sobrecarregava a equipe com a necessidade de alterar domínios e rotas diariamente.
  • A arquitetura subjacente foi projetada para gerenciamento e operação eficientes, sendo simplista com funcionalidades e escalabilidade limitadas.

Ao mesmo tempo, à medida que seus negócios cresciam, a Kingsoft enfrentava um número crescente de requisitos para a funcionalidade do gateway de API. Como resultado, eles começaram a buscar uma nova solução de gateway de API.

Por que a Kingsoft Office optou pelo APISIX?

No final de 2019, quando a Kingsoft Office começou a pesquisar produtos de gateway de API, havia muitas opções populares. No entanto, testes subsequentes revelaram que o desempenho dos gateways de API avaliados não atendia aos seus requisitos.

Buscando uma solução mais robusta, a Kingsoft Office aprofundou sua pesquisa e foi então que descobriram o Apache APISIX.

Alguns outros gateways de API dependiam do PostgreSQL como centro de configuração, o que significava que a atualização de rotas só poderia ser alcançada por métodos não orientados a eventos, exigindo o recarregamento das rotas em cada nó.

A Kingsoft Office escolheu o APISIX com base em três considerações principais: desempenho, arquitetura técnica e comunidade.

Arquitetura Técnica do APISIX

1. Desempenho Ultra-Alto

O Apache APISIX oferece o melhor desempenho entre outros gateways de API, com um QPS de 18.000 por núcleo e uma latência média de 0,2 ms. Testes rigorosos e benchmarking dentro da Kingsoft Office confirmaram consistentemente o desempenho superior do APISIX, garantindo que a Kingsoft Office pudesse lidar com cargas altas e oferecer experiências de usuário ideais.

2. Arquitetura Escalável, Resiliente e de Alta Disponibilidade

O APISIX, utilizando o etcd como seu centro de configuração, permite o gerenciamento eficiente e dinâmico de rotas, plugins e outros componentes críticos. Esse armazenamento distribuído de chave-valor aumentou a flexibilidade do APISIX, permitindo atualizações contínuas e reduzindo a sobrecarga operacional associada a mudanças manuais de configuração. Com o Apache APISIX, a Kingsoft Office pôde aproveitar a abordagem orientada a eventos, eliminando a necessidade de recarregamento manual de rotas em nós individuais.

3. Comunidade Ativa e de Apoio

A Kingsoft Office reconheceu o valor de uma comunidade vibrante e de apoio para impulsionar a inovação e fornecer recursos. O APISIX contava com uma comunidade ativa e engajada que contribuía para seu desenvolvimento, compartilhava melhores práticas e oferecia assistência. Esse ambiente orientado pela comunidade promoveu inovação e colaboração, alinhando-se perfeitamente com o compromisso da Kingsoft Office de permanecer na vanguarda dos avanços tecnológicos.

Arquitetura etcd Otimizada na Kingsoft Office

Devido a inúmeras configurações estáticas do NGINX na arquitetura original da Kingsoft Office, a equipe optou por não utilizar a CLI do APISIX para gerar configurações automaticamente. Em vez disso, empregaram o Apache APISIX como um fallback e migraram gradualmente as configurações para o APISIX, garantindo uma transição suave.

Durante a implementação, a equipe da Kingsoft Office fez algumas personalizações com base no APISIX, como otimizar a arquitetura do etcd. Geralmente, várias máquinas estão envolvidas na arquitetura de gateway de API dentro das empresas, às vezes chegando a centenas. Além disso, o número de workers sobrecarrega as máquinas.

Consequentemente, quando várias máquinas monitoram a mesma chave, isso coloca uma pressão significativa no etcd. Nessas circunstâncias, para consistência de dados, o etcd exige que todos os eventos sejam retornados às solicitações de escuta antes de processar novas solicitações. Quando várias máquinas estão escutando simultaneamente, ocorrem problemas como timeout do etcd e erros de sobrecarga.

Para resolver esse problema, a Kingsoft Office desenvolveu um proxy etcd, como ilustrado na parte direita do diagrama de arquitetura abaixo. Funcionando entre o Apache APISIX e o etcd, o proxy etcd monitora as chaves e retorna os resultados ao APISIX após recebê-los. Desde o lançamento da versão 3.2 do APISIX, o número de conexões não é mais afetado pelos recursos, reduzindo significativamente a pressão sobre o etcd.

Arquitetura etcd Otimizada na Kingsoft Office

Além disso, à medida que a empresa cresce, o número de rotas também aumenta. Quando as rotas são atualizadas com frequência, o gateway experimenta um aumento no uso da CPU e perda de pacotes. A equipe da Kingsoft Office corrigiu o problema da ineficiência do uso de table.sort em ambientes de código Lua. O Apache APISIX também resolveu esse problema em suas versões atualizadas.

Benefícios após a Adoção do APISIX

1. Suportando Milhões de QPS com Facilidade

No nível de negócios, a Kingsoft Office opera um ecossistema complexo composto por milhares de serviços meticulosamente conteinerizados e implantados em uma plataforma interna nativa da nuvem. Dentro desse ambiente dinâmico, o Apache APISIX desempenha um papel central como o gateway principal, facilitando a comunicação e interação perfeitas entre vários serviços e usuários. Especificamente adaptado para atender às demandas do Departamento de Plataforma Média, o APISIX gerencia eficientemente o vasto influxo de solicitações, lidando facilmente com milhões de consultas por segundo com precisão e confiabilidade notáveis.

2. Gerenciamento de API Escalável e Flexível

Ao adotar o APISIX, a Kingsoft Office superou as limitações de suas soluções anteriores de gerenciamento de API, alcançando escalabilidade e flexibilidade que estabeleceram a base para crescimento e inovação futuros.

Ao migrar para o APISIX, a Kingsoft Office ganhou a capacidade de escalar sua infraestrutura de API sem esforço para atender às demandas de uma base de usuários em rápida expansão e um cenário de negócios em evolução. A arquitetura modular do APISIX permitiu a integração contínua com sistemas e serviços existentes, permitindo que a empresa estendesse suas capacidades de gerenciamento de API sem interromper operações em andamento.

Além disso, o APISIX capacitou a Kingsoft Office com flexibilidade incomparável no gerenciamento de APIs, oferecendo controle granular sobre roteamento, tráfego e políticas de autenticação. Essa nova flexibilidade permitiu que a empresa adaptasse suas estratégias de gerenciamento de API a casos de uso específicos, otimizando o desempenho e melhorando a experiência do usuário.

3. Melhoria na Alta Disponibilidade e Segurança do Sistema

Além disso, a Kingsoft Office implementou vários recursos para melhorar a alta disponibilidade e a segurança do sistema, incluindo distribuição proporcional de tráfego entre vários data centers e uma capacidade de bloqueio de rotas com um clique.

Ao configurar proporções, a distribuição de tráfego ou solicitações entre diferentes data centers é otimizada com base em proporções predefinidas. Isso garante a utilização eficiente dos recursos do sistema e mitiga o impacto de falhas em um único data center, resultando em balanceamento de carga, maior disponibilidade do sistema e maior tolerância a falhas.

No caso de problemas com uma rota específica ou a necessidade de bloqueio temporário, os administradores podem empregar rapidamente o recurso de bloqueio de rotas com um clique para interromper instantaneamente a transmissão de tráfego ou o acesso para essa rota específica. Isso protege o sistema contra atividades maliciosas, ao mesmo tempo que oferece uma abordagem conveniente e contínua para gerenciar o tráfego e as rotas da rede.

Conclusão

Durante a aplicação prática, a equipe da Kingsoft Office descobriu a excepcional flexibilidade e poder do Apache APISIX. A estabilidade e confiabilidade do APISIX conquistaram a confiança da Kingsoft Office, enquanto sua capacidade de acomodar modificações de plugins e compilações personalizadas oferece amplo espaço para personalização.

A equipe acompanha diligentemente as mudanças de produto do APISIX, garantindo que sua versão permaneça sincronizada com as atualizações mais recentes. Com o APISIX em vigor, a Kingsoft Office lida facilmente com milhões de consultas por segundo, demonstrando a robustez da solução e sua capacidade de atender às demandas de uma base de usuários em rápida expansão. Ao adotar o Apache APISIX, a Kingsoft Office atende efetivamente às suas necessidades em evolução, melhora a eficiência operacional e se posiciona para o crescimento futuro no dinâmico cenário de produtos de rede.

Tags: