Envoy como um primitivo de rede versátil

Em outubro passado, meus colegas apresentaram na EnvoyCon a palestra "Construindo um Subsistema de Compressão Flexível no Envoy". Aqui está embaixo









A julgar pelas estatísticas do artigo de hoje deSergeAx, o tópico de compactação de tráfego de rede acabou sendo interessante para muitos. Nesse sentido, desejei imediatamente a glória universal e decidi recontar brevemente o conteúdo do relatório. Além disso, não se trata apenas de compressão, mas também de como você pode simplificar a manutenção do subsistema de rede do backend e do front-end móvel.







Não "novelizei" completamente o vídeo da palestra, mas apenas a parte dublada por José Nino. Vai interessar mais pessoas.







Para começar, o que é Envoy.







A descrição no site oficial é o seguinte. Envoy é um servidor proxy distribuído de alto desempenho projetado para serviços e aplicativos individuais e para funcionar como um barramento de comunicação em uma arquitetura de microsserviço, ou seja, em malhas de serviço, levando em consideração as lições aprendidas com NGINX, HAProxy ... e assim em.













O princípio de funcionamento de um servidor proxy é muito simples: o cliente estabelece uma conexão de rede não diretamente com o serviço, mas por meio de um servidor proxy, que, se necessário, por exemplo, comprime o tráfego de rede que passa por ele. Ou encerra o TLS. Ou, sem interromper a conexão com o cliente, tenta se reconectar a um serviço temporariamente indisponível. Ou, se tudo estiver muito ruim, conecte-se a um serviço de backup. Etc.







, , . .













, -, , . - — , , , .













.













(Edge), , , . Edge , (Sidecar). , , , Edge.







, , — . , . , , , .













, , Android. , Lyft , - , Envoy . , .. , .

, , Envoy .













Envoy Mobile, Java, Kotlin, Swift, Objective-C Envoy. .







Então, a tarefa de reduzir o volume de tráfego descrita no artigo da FunCorp poderia ser resolvida aproximadamente como na figura abaixo (se você trocar o compressor e o descompressor, e substituir resposta por solicitação). Ou seja, mesmo sem precisar instalar atualizações nos telefones.













Você pode ir mais longe e introduzir compressão bilateral













Em geral, o campo para experimentos em tal esquema aumenta muito de tamanho.








All Articles