Mais de um ano depois de ter trocado o Nginx por este software interno, Cloudflare está abrindo o código fonte do Framework Pingora.
Em 2022, a Cloudflare anunciou que estava trocando o Nginx por um software interno escrito em Rust chamado Pingora.
Agora, a Cloudflare está abrindo o código fonte do Framework Pingora.
Cloudflare está abrindo o código fonte do Framework Pingora
A Cloudflare anunciou hoje que abriu o código-fonte do Pingora sob uma licença Apache 2.0. Pingora é uma estrutura multithread assíncrona Rust para a construção de serviços de rede programáveis.
O Pingora é usado internamente há muito tempo na Cloudflare e é capaz de sustentar muito tráfego, enquanto agora o Pingora está sendo de código aberto para ajudar a construir infraestrutura fora da Cloudflare.
O Framework Pingora é descrita pela Cloudflare como:
“Pingora fornece bibliotecas e APIs para construir serviços sobre HTTP/1 e HTTP/2, TLS ou apenas TCP/UDP. Como proxy, ele suporta HTTP/1 e HTTP/2 ponta a ponta, gRPC e proxy websocket. (O suporte a HTTP/3 está no roteiro.) Ele também vem com estratégias personalizáveis de balanceamento de carga e failover. Para conformidade e segurança, ele oferece suporte às bibliotecas OpenSSL e BoringSSL comumente usadas, que vêm com conformidade FIPS e criptografia pós-quântica.
Além de disponibilizar essas funcionalidades, o Pingora disponibiliza filtros e callbacks para permitir que seus usuários personalizem totalmente a forma como o serviço deve processar, transformar e encaminhar as solicitações. Essas APIs serão especialmente familiares aos usuários do OpenResty e NGINX, já que muitas mapeiam intuitivamente os retornos de chamada “*_by_lua” do OpenResty.
Operacionalmente, o Pingora fornece reinicializações graciosas com tempo de inatividade zero para atualizar-se sem descartar uma única solicitação recebida. Syslog, Prometheus, Sentry, OpenTelemetry e outras ferramentas de observabilidade indispensáveis também são facilmente integradas ao Pingora.”
Quem pode se beneficiar do Pingora
Você deve considerar Pingora se:
A segurança é sua principal prioridade: Pingora é uma alternativa com mais segurança de memória para serviços escritos em C/C++. Embora alguns possam argumentar sobre a segurança da memória entre linguagens de programação, pela nossa experiência prática, somos muito menos propensos a cometer erros de codificação que levam a problemas de segurança da memória. Além disso, à medida que gastamos menos tempo lutando com esses problemas, somos mais produtivos na implementação de novos recursos.
Seu serviço depende do desempenho: Pingora é rápido e eficiente. Conforme explicado em nossa postagem anterior, economizamos muitos recursos de CPU e memória graças à arquitetura multithread do Pingora. A economia de tempo e recursos pode ser atraente para cargas de trabalho sensíveis ao custo e/ou à velocidade do sistema.
Seu serviço requer ampla personalização: as APIs fornecidas pela estrutura de proxy Pingora são altamente programáveis. Para usuários que desejam construir um gateway ou balanceador de carga personalizado e avançado, o Pingora oferece maneiras poderosas, porém simples, de implementá-lo. Fornecemos exemplos na próxima seção.
O anúncio da Cloudflare de que o Pingora se tornará de código aberto também inclui um exemplo para construir um balanceador de carga usando-o.
O Pingora em sua fase pré-1.0 ainda não possui estabilidade de API e a Cloudflare atualmente não tem planos para suporte a sistemas operacionais não baseados em Unix.
O código Pingora Rust está disponível no GitHub.