Práticas Financeiras para Facilitar a Transformação Cloud-Native Usando o APISIX como Gateway de API
Yonghui Lu
January 13, 2023
Este artigo é proveniente da palestra no ApacheCon Asia 2022 por Yonghui Lu, Diretor de API Gateway na Essence Securities. Yonghui compartilhou a prática do gateway de API nativo em nuvem da Essence Securities baseado no Apache APISIX.
Visão Geral
Desafios
- A pilha tecnológica original era complicada, consistindo em NGINX, Spring Cloud Gateway e sistemas desenvolvidos internamente
- Dificuldade na gestão do sistema devido à falta de uma pilha tecnológica unificada
- Trabalho duplicado e custos elevados em vários projetos de negócios
Objetivos
- Nativo em nuvem e fácil de integrar com os sistemas de negócios da Essence Securities
- Gerenciar a implantação, monitoramento e alertas
- Alta performance e capacidade de escalabilidade
- Personalização de funções e integração rápida com os sistemas
- Habilitar funções poderosas e abundantes como governança de tráfego, segurança, conversão de protocolos, autorização, autenticação, etc.
Resultados
- Promoveu a governança de tráfego, gerenciando com segurança picos de tráfego
- Melhorou a eficiência e conveniência de P&D
- Fortaleceu o desenvolvimento nativo em nuvem da Essence Securities
- Melhorou a segurança dos dados e a gestão de permissões ao estabelecer domínios independentes
Sobre a Essence Securities
A Essence Securities Co., Ltd. (Essence Securities) é uma das principais corretoras de valores da China. Desde sua fundação em 2006, a Essence Securities rapidamente se tornou uma das 15 maiores corretoras da China com um histórico comprovado de fornecer os mais altos serviços aos setores público e privado. Possui quatro subsidiárias independentes e mais de 120 filiais de varejo em 25 províncias principais em todo o país.
Os principais negócios da Essence Securities variam desde corretagem de valores, consultoria de investimentos em valores, serviços de consultoria financeira relacionados a operações e investimentos em valores, subscrição e patrocínio de valores, investimentos em valores e gestão de ativos até outros negócios aprovados pela Comissão Reguladora de Valores Mobiliários da China.
Por que Escolher o APISIX?
Desde 2021, a Essence Securities começou a migrar aplicações para a nuvem e realizou um plano de gateway de API. Em 2022, começou a se envolver na criação de um gateway de API. Após uma cuidadosa comparação, a Essence Securities escolheu o Apache APISIX entre uma ampla gama de soluções de gateway de API por várias vantagens cruciais:
Alta Performance
As corretoras têm uma característica típica: haverá picos de tráfego durante os horários de pico. O Apache APISIX é o gateway de API de maior desempenho com um QPS de 23.000 por núcleo, com uma latência média de apenas 0,6 milissegundos.
“Precisamos que o gateway de API suporte picos de tráfego e não se torne nosso próximo gargalo. Após compararmos alguns gateways de API baseados em OpenResty ou outras pilhas tecnológicas, o Apache APISIX se destacou com sua vantagem competitiva de alta performance e pode atender às nossas necessidades de gateway de API.” disse Yonghui.
Escalável e Amigável para Desenvolvedores
O APISIX suporta seus usuários com funções ricas. Na Essence Securities, limitação de taxa, circuit breaker, autorização e autenticação, e lançamento canário são os mais amplamente utilizados.
Para isso, a Essence Securities desenvolveu internamente alguns plugins para atender às necessidades internas dos grupos de negócios. O APISIX oficialmente suporta muitas linguagens de programação, incluindo Java, Golang, Python e Lua. Mantendo-se consistente com a comunidade, a Essence Securities escolheu Lua. Como resultado, todo o processo de desenvolvimento foi muito suave. A Essence Securities também considerará contribuir com nossos plugins desenvolvidos internamente para a comunidade.
Cenários de Máquina Virtual e Contêiner
Atualmente, migrar a aplicação para a nuvem é uma estratégia crucial da Essence Securities. No entanto, há vários cenários que são implantados em máquinas virtuais.
“Precisamos considerar a compatibilidade dessas aplicações em dois estados ao selecionar o gateway de API, embora nosso plano seja mais focado em contêineres. O APISIX fornece muito suporte na compatibilidade de cenários.” disse Yonghui.
Trilha de Desenvolvimento Nativo em Nuvem
O Apache APISIX é maravilhoso em suportar cenários nativos em nuvem, enquanto a Essence Securities está acompanhando a tendência de nuvem nativa. Usando APISIX, APISIX Ingress Controller e Service Mesh, a Essence Securities também aguarda novos avanços e desenvolvimentos do APISIX.
Comunidade Ativa
Como um projeto de código aberto, o APISIX é ativo em sua comunidade. Problemas podem ser discutidos e resolvidos em tempo hábil. Em 2022, quase 40 eventos presenciais e online da comunidade APISIX foram realizados pelo APISIX. Pessoas familiarizadas com o APISIX ficam entusiasmadas com as atividades.
Como a Essence Securities está se Beneficiando do Uso do APISIX?
Abaixo está a arquitetura de microsserviços da Essence Securities, comumente vista em cenários nativos em nuvem.
-
Autoridade e Autenticação: Antes de usar o APISIX, a autoridade e autenticação eram controladas por vários microsserviços, resultando em muito trabalho de desenvolvimento repetitivo.
-
Governança de Tráfego: A Essence Securities realizou a governança de tráfego ao integrar com o APISIX, entre os quais os cenários mais típicos são limitação de taxa e lançamento canário. Antes de usar o APISIX, essas funções eram realizadas pelo NGINX, o que exigia modificar o conf e reiniciar os nós. Em contraste, o dashboard visível do APISIX e o recurso de recarregamento a quente trazem uma conveniência significativa para a governança de tráfego da Essence Securities.
-
Lançamento Canário: O APISIX é flexível no lançamento canário, que pode ser alcançado por porção e características de tráfego, cobrindo cabeçalho de solicitação, parâmetro de solicitação, cookie e assim por diante. Por exemplo, a Essence Securities precisa direcionar o tráfego do usuário para servidores de versão de lançamento canário por ID do usuário.
-
Observabilidade: Antes, a Essence Securities precisava realizar a gestão observável por métricas, rastreamento e logs. É desafiador fazer a governança multidimensional se tornar realidade. No entanto, apenas habilitando três plugins com configurações simples pode alcançar o mesmo efeito após usar o APISIX. Que progresso notável!
Inovações Baseadas no APISIX
Single Sign-On CAS
A Essence Securities usa CAS (Central Authentication Service) como seu método padrão de autenticação, que é adequado para colocar a autenticação no gateway.
A Essence Securities estende o APISIX e adiciona uma nova função, single sign-on CAS. Há várias vantagens em fazer isso.
Colocar o CAS na camada do gateway pode acessar o CAS e introduzir suas funções convenientemente. Por exemplo, existem serviços de certificação unificados para buscar informações dos usuários.
Além disso, o CAS define as informações do usuário no cabeçalho da solicitação e as leva ao serviço upstream para salvar o status de login dos usuários. Assim, não é necessário fazer login repetidamente em outros sistemas, economizando muito tempo dos usuários e melhorando a conveniência.
Plugin de Autenticação authz - casbin
O plugin de autenticação authz-casbin
do APISIX é um plugin de autorização baseado em Lua Casbin. Este plugin suporta cenários de autorização poderosos baseados no modelo RBAC (controle de acesso baseado em função).
Ele suporta armazenamento de arquivos CSV, configuração de plugin APISIX e armazenamento de política por configuração de metadados.
Abaixo está um exemplo.
Na Essence Securities, há um conceito importante: domínio. Os usuários terão diferentes permissões em vários domínios. Por exemplo, o funcionário A é um gerente do domínio A, mas pode ser apenas um visualizador no domínio B.
Ao definir solicitações, políticas e funções, o domínio deve ser apontado. Portanto, a Essence Securities modificou o casbin para corresponder a esse cenário. O plugin depende do repositório Lua, que suporta RBAC com domínios. Consequentemente, o requisito acima pode ser satisfeito apenas chamando a interface correspondente do repositório Lua, o que é fácil. Dessa forma, pode-se melhorar muito a segurança dos dados e a gestão de permissões.
Observabilidade
O APISIX fornece monitoramento multidimensional, como métricas, rastreamento e coleta de logs. Todas essas funções podem ser alcançadas com configurações simples.
Após habilitar o plugin Prometheus, métricas como atraso de solicitação, largura de banda e taxa de transmissão de código de status HTTP podem ser observáveis. Isso pode ser útil na solução de problemas.
Em relação à análise de rastreamento, quando o upstream se conecta com Skywalking, o rastreamento completo de chamadas pode ser rastreado uma vez que o Skywalking é habilitado.
A Essence Securities está planejando explorar mais o valor da coleta de logs. Enviar os logs de acesso para kafka pode ajudar a Essence Securities a analisar e contar dados.
Plano Futuro
Multitenancy
Anteriormente, os sistemas da Essence Securities tinham clusters independentes para reduzir riscos de erro e separar informações do usuário. O Apache APISIX usa etcd para seu centro de configuração, o que é adequado para o estágio atual.
Clusters compartilhados são úteis na gestão unificada de recursos e na melhoria da eficiência de O&M. A Essence Securities combinaria clusters independentes com multitenancy para ampliar suas capacidades de gestão.
Mercado de Aplicações
A Essence Securities forneceria muitos microsserviços como produtos para os usuários, como plataformas de log, monitoramento, alertas e centro de dados, cuja gestão centralizada pode ser realizada pelo APISIX.
Após a introdução da camada de gateway, muitas governanças de gateway de API foram adicionadas, como autenticação, autorização e governança de tráfego.
Monitoramento de Dados Observáveis
O plugin kafka-logger do APISIX pode ajudar a Essence Securities a enviar o log de acesso do gateway para o kafka. O kafka pode limpar, formatar e contar as informações e, em seguida, obter estatísticas mais valiosas, como os Top N de chamadas, solicitações anormais e atrasos de solicitação.
“Ou podemos obter distribuição de código de status, distribuição de IP do cliente, estatísticas de tráfego, pico de tráfego, distribuição de horários de pico, detecção de tráfego anormal, etc. Esta parte é de grande importância para estender as capacidades observáveis do nosso sistema.” disse Yonghui.
A Essence Securities também espera mais cooperação com o APISIX Ingress Controller e Service Mesh.
Procurando Suporte para o APISIX?
O Apache APISIX é um gateway de API nativo em 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 Essence Securities? Para maximizar o suporte do APISIX, você precisa da API7. Fornecemos suporte aprofundado para o APISIX e soluções de gerenciamento de API com base em suas necessidades!
Entre em contato conosco agora: https://api7.ai/contact.