APISIX Melhorou Significativamente a Eficiência de Pesquisa e Desenvolvimento da Junrunrenli

Peng Yuan

December 12, 2022

Case Study

Visão Geral

Desafios

  1. Muitos sistemas de negócios, encaminhamento de tráfego CLB (bloco lógico configurável) e mudanças frequentes de configuração consomem muito tempo de desenvolvimento e manutenção.
  2. Negócios de alta concorrência, banco de dados instável ao exportar grandes volumes de dados, e o problema só pode ser resolvido reiniciando o serviço ou lançando uma nova versão.
  3. Falta de uma plataforma unificada para supervisionar os dados de negócios acessados.
  4. Tráfego grande e complexo, faltando uma estratégia eficiente de gerenciamento de tráfego.
  5. Há dezenas de milhões de requisições de API por dia, uma quantidade substancial de dados de log e capacidade limitada de carga do disco.

Resultados

  1. Apache APISIX fornece à Junrunrenli diversos métodos de observabilidade e proteção de segurança, suportando eficientemente dezenas de milhões de visitas por dia.
  2. Melhoria significativa na eficiência de entrega de P&D: configuração de domínio genérico entra em vigor em segundos, e o plano de controle reduz a carga de configuração do DevOps.
  3. Redução dos balanceadores de carga de mais de 200 para apenas 10+, economizando muito dinheiro.

Sobre a Junrunrenli Recursos Humanos

A Junrunrenli Recursos Humanos é uma provedora de soluções de recursos humanos impulsionada pela tecnologia, fornecendo principalmente serviços de recursos humanos de ponta a ponta para o mercado de emprego de colarinho azul.

Fundada em 2019, a Junrunrenli já atendeu mais de 1000 clientes, cobrindo mais de 300 mil trabalhadores de colarinho azul. Em três anos, a equipe de P&D cresceu de menos de 20 pessoas para mais de 250 e desenvolveu mais de 15 plataformas de serviços de recursos humanos. Além disso, a Junrunrenli construiu um ecossistema integrado de serviços de recursos humanos, incluindo aplicativos SaaS para o lado B e aplicativos para o lado C para o grupo de trabalhadores de colarinho azul.

O ritmo da inovação leva a requisitos mais altos para a arquitetura do sistema. Além de alta disponibilidade, concorrência e desempenho, a Junrunrenli requer escalabilidade elástica.

Então, como a Junrunrenli escolhe um gateway de API?

Como o APISIX se Destaca?

A equipe da Junrunrenli criou uma lista curta e subsequentemente investigou muitos gateways de API. Vários deles foram descartados, pois não atendiam completamente às necessidades da Junrunrenli. Podemos observar a imagem abaixo da seleção de gateway de API da Junrunrenli.

Seleção de gateway de API da Junrunrenli

A imagem acima indica as características do Apache APISIX, enquanto as em vermelho são os pontos que a Junrunrenli mais enfatiza porque:

  1. A Junrunrenli tem muitos sistemas de negócios internos e um ecossistema interno autoconstruído. Portanto, um gateway de API robusto é necessário para suportar as rápidas mudanças de negócios da Junrun, pois a Junrunrenli precisa configurar e modificar rotas com frequência. O APISIX permite que a Junrunrenli divida e combine diferentes métodos para controlar o acesso à API.

  2. O negócio da Junrunrenli foca em fazer a mesma coisa ao mesmo tempo, por exemplo, pagar bilhões de salários ou retirar essa quantia de fundos. Centenas de milhares de usuários de colarinho azul batem ponto, assinam contratos e recebem tarefas e salários simultaneamente. Portanto, o tráfego concorrente é enorme, especialmente durante a "Black Friday" da China, que dobra em comparação com o normal.

  3. Vários sistemas e necessidades personalizadas resultam no autodesenvolvimento da Junrunrenli. "O APISIX pode atender 99% das nossas necessidades, mas os 1% restantes precisam ser desenvolvidos por nós mesmos", disse Yuan, especialista técnico da Junrunrenli. Todos sabem que o Kong e o APISIX são desenvolvidos com base no OpenResty NGINX + Lua. Haveria um custo extra se a Junrunrenli desenvolvesse plugins com Lua. Felizmente, o plugin externo do APISIX suporta a linguagem de programação Java para economizar custos de aprendizado. Além disso, a comunidade do APISIX é particularmente ativa.

Junrunrenli Fortalece Seus Sistemas com o APISIX

Abaixo está a visão geral da arquitetura da Junrunrenli.

Diagrama de Arquitetura Geral da Junrunrenli

A Junrunrenli alcançou os quatro resultados abaixo após usar o APISIX.

1. Criou estratégias inovadoras de rotas para gerenciamento eficiente de rotas

Baseado no Radixtree e etcd, o Apache APISIX é capaz de correspondência de rotas de alta velocidade e sincronização rápida de configuração. Tudo isso é projetado para realizar desempenho rápido e resposta de latência ultrabaixa.

Durante o período de pico de uso dos sistemas, o banco de dados MySQL não conseguia responder ao exportar milhões de dados de relatórios, causando indisponibilidade do serviço, que só poderia retomar a operação normal após reinicializações. Além disso, o caso se intensificaria se a exportação continuasse e só poderia ser resolvido com novos lançamentos.

O APISIX permite o gerenciamento inteligente de rotas, suportando a Junrunrenli com configuração de prioridade de rotas e desligamento de emergência de API com o plugin serverless em alguns minutos de configuração.

Além disso, os sistemas de negócios da Junrunrenli, especialmente os sistemas SaaS, precisam suportar o acesso de domínios personalizados pelos clientes. Consequentemente, a equipe da Junrunrenli unificou a entrada configurando múltiplos domínios para o mesmo serviço. As configurações podem ser utilizadas em todos os sistemas configurando apenas uma vez.

2. Separou uma plataforma PaaS para controle geral de segurança

A Junrunrenli usa as características do APISIX, como lançamento canário, controle de segurança e reconhecimento de identidade, para configurar o gateway PaaS para o controle de segurança do sistema de negócios de nível superior.

A imagem abaixo mostra que a Junrunrenli fez uma arquitetura de gateway de duas camadas baseada no APISIX e isolou logicamente um gateway nela - a plataforma PaaS.

O usuário acessa o CLB, então o APISIX encaminha a requisição para o sistema de negócios. Se a função usada pelo usuário precisar usar a capacidade PaaS, ela será acessada através do gateway de serviço PaaS. A plataforma PaaS é uma área fechada dentro do k8s, contendo muitos serviços essenciais.

Diagrama de controle de segurança da Junrunrenli combinado com o APISIX

3. O plugin de divisão de tráfego do APISIX permitiu à Junrunrenli o gerenciamento automático de tráfego

O plugin de divisão de tráfego do APISIX concedeu à Junrunrenli a capacidade de gerenciar o tráfego de seus serviços principais, como SSO (Single Sign On), serviço PaaS e serviço de folha de pagamento.

Há dois cenários:

  • Filtragem por Tags: O tráfego de usuários de teste pode ser encaminhado para os serviços de pré-produção com base em tags como cabeçalho e outros parâmetros. Então, os engenheiros de teste podem testar primeiro no ambiente de pré-produção e depois no ambiente de produção.

Após a verificação, os engenheiros podem cortar o tráfego com base no peso e, em seguida, mudar todo o tráfego para a nova versão após um período de observação.

  • Coexistência de Múltiplas Versões: Existem muitas versões de um serviço. Dessa forma, diferentes sistemas de negócios podem acessar diferentes versões. O tráfego pode ser encaminhado para os serviços corretos utilizando tags.

Gerenciamento automático de tráfego após usar o APISIX

4. O plugin Kafka do APISIX realizou o monitoramento transparente de dados de log da Junrunrenli

Aprimoramento do processo de coleta de logs com o APISIX

Como pode ser visto nesta imagem, o APISIX e os serviços de pod são implantados no k8s, e todas as rotas de backend estão vinculadas ao mesmo serviço. O plugin Kafka do APISIX parece ser feito sob medida para coletar dados de log.

Os dados de observação demonstram que há dezenas de milhões de requisições de API todos os dias, gerando 30GB de dados de log diariamente, e o volume total de logs ultrapassa 1TB.

O Skywalking e o Sky Agent também foram configurados no script de inicialização do serviço no pod. Combinado com o plugin Kafka, todo o link de chamada no Skywalking e na nuvem de logs pode ser observado de acordo com o requestId e traceId, e os registros de log e o tempo de consumo das requisições de API de cada link tornaram-se transparentes para o monitoramento de dados de log.

Benefícios após a Junrunrenli Usar o APISIX

1. Suportou o desenvolvimento de negócios

Após usar o APISIX, os sistemas da Junrunrenli têm recursos mais ricos e o desempenho é mais poderoso. Ele fornece uma variedade de métodos de observabilidade e proteção de segurança para serviços de API, suportando eficientemente dezenas de milhões de acessos diários.

2. Melhorou a eficiência de entrega de P&D

Antes de usar o APISIX, a Junrunrenli levava 10 minutos para configurar cada resolução DNS, mas agora leva apenas segundos para configurar domínios genéricos. Há mais de 10 sistemas e mais de 100 serviços com muitas configurações. Os desenvolvedores precisavam modificar a configuração tanto no CLB quanto no NGINX. O APISIX fornece um plano de dados central para modificação de configuração, reduzindo significativamente a carga de trabalho do DevOps.

3. Economizou custos

Economizou um alto custo de balanceadores de carga e reduziu mais de 200 serviços para apenas 10+.

Plano Futuro da Junrunrenli

  • A Junrunrenli personalizará o java-plugin-runner e integrará o sentinel para habilitar o serviço de limitação de taxa dinâmica plugável e também suportar o controle de tráfego diário e mensal.

  • A equipe da Junrunrenli também está considerando armazenar os dados de log de requisições de API e, em seguida, realizar identificação de controle de risco com base no mecanismo de regras, enviando informações de alarme e intervindo rapidamente na operação e manutenção.

  • A Junrunrenli realizará governança em camadas. Atualmente, há apenas uma entrada, e mais conjuntos de clusters APISIX serão fornecidos posteriormente. Por exemplo, a plataforma aberta pode acessar os serviços internos do k8s da Junrunrenli a partir de uma entrada separada.

  • Além disso, a Junrunrenli combinará os plugins de log e sky com a análise de log de cadeia completa.

Procurando Suporte para o APISIX?

O Apache APISIX é um gateway de API nativo da nuvem de código aberto, dinâmico, escalável e de alto desempenho para todas as suas APIs e microsserviços. Sendo doado à Apache Software Foundation pela API7.ai, o APISIX cresceu para se tornar um projeto de código aberto de nível superior da Apache.

Você quer acelerar seu desenvolvimento com confiança como a Junrunrenli Recursos Humanos? Para maximizar o suporte do APISIX, você precisa da API7. Nós fornecemos suporte aprofundado para o APISIX e soluções de gerenciamento de API com base em suas necessidades!

Entre em contato conosco quando quiser: https://api7.ai/contact.

Tags: