APISIX capacita a rede de um grande provedor de serviços de CDN em nuvem
January 31, 2023
Visão Geral
Sobre a UPYUN
A UPYUN, uma das principais provedoras de serviços em nuvem para empresas na China, especializa-se em soluções de CDN (Content Delivery Network) baseadas em cenários. Com 10 centros de processamento de dados, mais de 1000 nós de CDN domésticos, quase 100 nós de CDN globais, 40.000 servidores e 10TB de largura de banda reservada, a UPYUN oferece soluções seguras para diversos cenários, lidando com um volume diário de requisições que ultrapassa 150 bilhões.
Desafios
-
A UPYUN enfrentou desafios ao gerenciar conexões de tráfego com o Kong, que funcionava como seu gateway para a rede pública.
-
Em termos do controlador de entrada (ingress controller), o Ingress-Nginx apresentou problemas para a UPYUN, incluindo dependências complexas de componentes, baixa portabilidade e capacidades semânticas limitadas, dificultando a manutenção do gateway.
Resultados
-
O APISIX se destaca no tratamento de tráfego, atendendo às necessidades de backup e balanceamento de carga por meio de sua capacidade de roteamento dinâmico. A UPYUN também melhorou a uniformidade dos componentes com a ajuda do APISIX, resultando em maior eficiência no processamento de tráfego e registro de logs.
-
Com o uso de plugins do APISIX, a UPYUN implementou com sucesso a autenticação de identidade de funcionários e a integração com o Lark, melhorando a funcionalidade de seu gateway para a rede pública.
-
O APISIX avançou no monitoramento e verificação de saúde do sistema da UPYUN, suportando Prometheus e SkyWalking.
Contexto
Características do Negócio da UPYUN
Os gateways são indispensáveis no ecossistema de negócios da UPYUN. Eles podem coordenar, otimizar e garantir a operação suave de vários serviços, fornecendo à UPYUN soluções eficientes, seguras e estáveis. Portanto, a UPYUN tem trabalhado na melhoria de sua arquitetura interna de gateway.
Cenários de Negócios da UPYUN
Internamente, a UPYUN utiliza o APISIX como seu gateway para a rede pública e seu controlador de entrada (ingress controller).
-
O gateway para a rede pública foca no processamento de tráfego da internet, servindo como o gateway para serviços externos.
-
O controlador de entrada especializa-se em gerenciar o acesso externo a serviços dentro do cluster Kubernetes, permitindo roteamento e controle flexível de tráfego por meio da configuração de recursos de entrada.
Pontos de Dificuldade Antes de Usar o APISIX
Antes de adotar o APISIX, a UPYUN utilizava o Kong como seu gateway para a rede pública e empregava o Ingress-Nginx como controlador de entrada. No entanto, a UPYUN rapidamente encontrou vários problemas.
-
Alta Carga nas Conexões do Banco de Dados: Conectar-se ao banco de dados PostgreSQL dentro da arquitetura do Kong na UPYUN pode levar a um número considerável de conexões, potencialmente degradando o desempenho do banco de dados.
-
Complexidade no Controle do Sistema de Conexões: Apesar da adição de proxies no front-end, a UPYUN enfrenta desafios para gerenciar efetivamente o sistema de conexões durante atualizações ou reinicializações do sistema, aumentando a complexidade da manutenção.
-
Complexidade Operacional com o Ingress-Nginx: O Ingress-Nginx apresenta desafios para a UPYUN no desenvolvimento de plugins devido a dependências complexas, dificultando a portabilidade e aumentando a complexidade no desenvolvimento e manutenção. Além disso, ele exibe fraquezas em capacidades semânticas, impactando a flexibilidade para cenários de negócios complexos. A necessidade de uma operação de recarregamento a cada modificação de regra de entrada introduz aspectos desfavoráveis, especialmente para cenários que dependem de conexões persistentes.
Ao navegar pelas complexidades de manter a lógica existente, esses problemas apresentaram à UPYUN um desafio substancial. Consequentemente, a equipe iniciou uma busca por alternativas mais simplificadas e avançadas em gateways para melhorar a eficiência operacional.
Por que a UPYUN Escolheu o APISIX
Flexibilidade Elevada com Arquitetura de Plugins Robusta
Utilizando o sistema de plugins do Apache APISIX, a UPYUN projetou um conjunto de plugins internos, abrangendo recursos como validação do sistema de permissões internas e limitação de taxa precisa. Essa iniciativa estratégica não apenas capacitou a empresa com uma personalização de funcionalidades mais adaptável, mas também infundiu suporte interno diversificado nos clusters de gateway.
Estabilidade Estelar
No âmbito das operações baseadas em nuvem, a estabilidade é prioridade, especialmente para empresas menores ou com equipes de operações limitadas. Optar pelo APISIX como solução de gateway não apenas garante uma experiência de usuário estável para usuários externos, mas também gerencia efetivamente os custos operacionais da implantação interna de negócios.
Comunidade de Código Aberto de Apoio
Para a equipe técnica da UPYUN, decidir se um gateway é de código aberto tornou-se uma consideração crucial. O APISIX, sendo uma solução de código aberto, aproveita o suporte de sua vibrante comunidade, garantindo respostas rápidas e resoluções para bugs relatados.
Escalabilidade Impressionante
Diferente de softwares de código fechado, a escalabilidade impressionante do APISIX oferece aos desenvolvedores uma maneira suave de adaptação e integração. A extensão multi-idioma do APISIX, por exemplo, capacita a UPYUN a criar funcionalidades adicionais adaptadas às suas necessidades de negócios no contexto da expansão empresarial. Esse recurso não apenas aumenta significativamente a eficiência de desenvolvimento da UPYUN, mas também traz maior conveniência para iterações e manutenção de funcionalidades subsequentes.
Integração Contínua e Personalização Simplificada
A UPYUN integrou o Ingress-Nginx em alguns clusters Kubernetes. Na ausência de um sistema de plugins no Ingress-Nginx anteriormente, eles personalizaram plugins específicos. Com uma sobreposição funcional notável entre o Apache APISIX e o NGINX nos gateways de data centers internos e ambientes conteinerizados, a UPYUN está pronta para substituir todos os gateways conteinerizados anteriormente utilizados do Ingress-Nginx pelo Controlador de Entrada Apache APISIX. Esse passo visa harmonizar componentes no nível do gateway, mitigando possíveis redundâncias em futuros esforços de desenvolvimento e operacionais.
Suporte Aprimorado para Recarregamento
O Controlador de Entrada APISIX vem com suporte para recarregamento, elevando a eficiência operacional a novos patamares. Esse recurso permite atualizações dinâmicas de configurações sem interrupções de serviço, possibilitando implantações rápidas e manobras operacionais flexíveis. O resultado é um aumento substancial na eficiência operacional, simplificando a manutenção do sistema para maior conveniência e velocidade.
Implementação do APISIX
A arquitetura interna atual de gateway da UPYUN é ilustrada no diagrama a seguir. O tráfego externo é inicialmente direcionado através do Apache APISIX, depois para o Controlador de Entrada APISIX via APISIX e, finalmente, para os serviços de backend para processamento subsequente de negócios.
Gateway para a Rede Pública
Controle de Tráfego
O gateway da rede pública atua como a principal entrada para o tráfego externo, assumindo uma responsabilidade significativa que exige controle preciso e gerenciamento de cada fluxo de entrada no data center interno. Nesse aspecto crucial, o APISIX ofereceu à UPYUN uma variedade de serviços de controle de tráfego por meio de seus recursos poderosos.
Para começar, o gateway APISIX gerenciou o tráfego ao lidar com o acesso à API a partir de nós de borda do CDN. Essa assistência não apenas ajudou a otimizar o desempenho dos nós do CDN, mas também estabeleceu a base para o subsequente gerenciamento de tráfego. Além disso, o APISIX lidou habilmente com o tráfego relacionado às páginas estáticas do site oficial e ao suporte técnico, demonstrando suas capacidades versáteis de controle de tráfego. Essa abordagem direcionada ao tratamento de tráfego capacitou a UPYUN a lidar de forma flexível com diversas necessidades de acesso, aumentando a eficiência geral do sistema.
Autenticação de Identidade
Os plugins desempenham um papel fundamental na UPYUN, especialmente no contexto de acesso de funcionários à plataforma interna. Atualmente, os funcionários passam por autenticação usando métodos como e-mail e Lark. Graças ao robusto plugin openid-connect
do Apache APISIX, foi alcançada uma integração perfeita com essas plataformas, facilitando a autenticação conveniente das identidades dos funcionários. Essa aplicação inovadora demonstrou vividamente as capacidades poderosas dos plugins do APISIX, fornecendo à UPYUN uma solução eficiente e unificada de autenticação de identidade para acessar a plataforma de gerenciamento.
Coordenação Inteligente e Proteção de Segurança
Em cenários mais específicos, a UPYUN aproveitou o plugin openid-connect
em conjunto com o plugin serverless-post-function
para alcançar coordenação inteligente com o aplicativo Feishu. Por meio da ação colaborativa desses plugins, informações relevantes do usuário, como nome de usuário, e-mail ou identificador único dentro do Lark, foram transmitidas ao serviço após passar pelo gateway da rede pública. Uma vez que o gateway obtém as informações de identificador pertinentes, ele as encaminha eficientemente ao servidor, permitindo funcionalidades como notificações e menções do Lark. Notavelmente, durante esse processo, o plugin consumer-restriction
também pode impor restrições de permissões específicas aos usuários, aumentando a segurança e a controlabilidade geral do sistema.
Controlador de Entrada
Mudança na Arquitetura Interna
Após a integração do Controlador de Entrada Apache APISIX, a arquitetura interna da UPYUN agora apresenta a seguinte estrutura.
Diferente da estrutura mencionada anteriormente do Ingress-Nginx, o plano de dados básico foi substituído por um cluster Apache APISIX. O controlador de nível superior monitora ativamente as mudanças no API Server, subsequentemente disseminando recursos de configuração em todos os nós do cluster Apache APISIX por meio do etcd.
Uma distinção crucial surge na capacidade do Apache APISIX para modificações dinâmicas de rotas, diferenciando-o da configuração do Ingress-Nginx à direita. No Apache APISIX, todo o tráfego de negócios converge por meio de um local unificado, com a seleção de rotas executada por meio de código Lua. Essa eficiência resulta em uma implantação de código simplificada e facilmente gerenciável. Em contraste, o arquivo de configuração nginx.conf à direita para o Ingress-Nginx é intrincado, exigindo uma operação de recarregamento para cada alteração de Ingress.
Roteamento Dinâmico e Configuração Declarativa
Aproveitando a capacidade de roteamento dinâmico do Apache APISIX, o Controlador de Entrada Apache APISIX implementou efetivamente suas funcionalidades. Seu papel principal gira em torno de monitorar mudanças de recursos dentro do APIServer, executando transformações meticulosas de estruturas de dados, validação e cálculo do DIFF crucial. O passo final envolve aplicar essas mudanças à API de Administração do Apache APISIX. Além disso, o Controlador de Entrada Apache APISIX introduz uma solução de alta disponibilidade diretamente por meio do mecanismo de eleição de líder do Kubernetes, eliminando a necessidade de componentes externos.
Em termos de configuração declarativa, a UPYUN optou pelo Recurso CRD, apreciado por sua semântica robusta. Essa abordagem estruturada de configuração de dados capacita a implementação de qualquer capacidade suportada pelo Apache APISIX.
Conquistas Após o Uso do APISIX
Melhorando o Gerenciamento de Tráfego
O Apache APISIX aumentou significativamente a eficiência de tratamento de tráfego da UPYUN. Seus mecanismos robustos de backup e capacidades excepcionais de balanceamento de carga garantem a estabilidade da UPYUN, especialmente ao lidar com grandes volumes de tráfego. Por meio de controle meticuloso de tráfego, o APISIX aborda efetivamente os desafios associados ao backup e gerenciamento de tráfego, fornecendo suporte confiável aos negócios da UPYUN e otimizando o desempenho do sistema.
Simplificando Integração e Autenticação
O APISIX se destaca na autenticação de identidade e integração de plugins. Usando o plugin openid-connect
, o APISIX acomoda eficientemente diversos métodos de autenticação, oferecendo à UPYUN uma solução eficaz de autenticação de identidade. A funcionalidade combinada de plugins como serverless-post-function
e consumer-restriction
facilita a transmissão inteligente de dados e um controle robusto de acesso, aumentando significativamente as capacidades de integração do sistema.
Aumentando a Eficiência do Processamento de Logs
Em relação ao processamento de logs, a UPYUN implementou vários clusters Apache APISIX internamente, garantindo uso unificado em gateways de data centers e gateways conteinerizados. Essa coerência estabelece uma lógica padronizada para o subsequente processamento e consumo de logs. Notável é a funcionalidade robusta do Apache APISIX para o plugin de logs. Internamente, a UPYUN escolheu o Kafka-Logger
, um plugin que suporta formatos de logs personalizados.
Otimizando Monitoramento e Verificações de Saúde
Quanto ao monitoramento, a UPYUN utiliza ferramentas como Prometheus
e SkyWalking
, com Prometheus
sendo a opção preferida. Funcionando como um proxy fundamental, o Apache APISIX pode monitorar códigos de status de aplicativos e requisições.
Resumo
Como um player proeminente no setor de serviços de CDN em nuvem, a UPYUN integrou o Apache APISIX em sua infraestrutura, particularmente no gateway para sua rede pública e no controlador de entrada. O robusto sistema de plugins e as capacidades excepcionais de gerenciamento de tráfego do APISIX foram fundamentais para melhorar significativamente a qualidade e eficiência operacional da UPYUN.
Olhando para o futuro, a UPYUN espera colaborar ainda mais com o APISIX para capacitar o CDN baseado em cenários, oferecendo um conjunto de serviços que incluem armazenamento em nuvem, processamento em nuvem, segurança em nuvem e marketing de tráfego.