paint-brush
Proxy reverso – a espinha dorsal da arquitetura de microsserviçospor@infinity
2,655 leituras
2,655 leituras

Proxy reverso – a espinha dorsal da arquitetura de microsserviços

por Rishabh Agarwal5m2024/01/17
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

A arquitetura de microsserviços envolve dividir um aplicativo complexo em pequenos aplicativos independentes para que cada um deles possa ser dimensionado e mantido de forma independente. No centro da arquitetura de microsserviços está o conceito de proxy reverso. Um proxy reverso desempenha um papel fundamental no direcionamento do tráfego entre diferentes microsserviços, bem como na distribuição da carga de trabalho entre várias instâncias de um microsserviço.
featured image - Proxy reverso – a espinha dorsal da arquitetura de microsserviços
Rishabh Agarwal HackerNoon profile picture
0-item

A arquitetura de microsserviços envolvia dividir um aplicativo complexo em pequenos aplicativos independentes para que cada um deles pudesse ser dimensionado e mantido de forma independente . Com a infinidade de benefícios que a arquitetura de microsserviços traz, não é de admirar que todos no setor de TI estejam migrando para essa nova arquitetura!


No centro da arquitetura de microsserviços está o conceito de proxy reverso. Um proxy reverso desempenha um papel fundamental no direcionamento do tráfego entre diferentes microsserviços, bem como na distribuição da carga de trabalho entre várias instâncias de um microsserviço. Sem o proxy reverso, a intrincada rede de interações e distribuição de carga dentro da arquitetura de microsserviços como a entendemos hoje simplesmente não seria viável!


Vamos nos aprofundar na função de um proxy reverso nas configurações de microsserviços!

O que é um proxy?

Um proxy é um servidor que fica entre o computador de um cliente e a Internet. Qualquer tráfego que sai da máquina do cliente passa pelo servidor proxy. Para o resto da Internet, parece que o servidor proxy está iniciando as solicitações.


Existem vários motivos pelos quais alguém usaria um servidor proxy. Alguns deles são os seguintes -

  • Mascaramento de Identidade: Usando proxy, a identidade real de um cliente não é revelada à internet. Ele pode ser usado para acessar conteúdo que de outra forma seria bloqueado/restrito para o cliente.
  • Configurando restrições: Usando certas configurações, servidores proxy podem ser usados para restringir o acesso a determinados conteúdos para o cliente.
  • Também aumenta a segurança

O que é um proxy reverso?

Um proxy reverso é um servidor que fica entre a Internet e os servidores back-end. Qualquer tráfego destinado aos servidores deve passar pelo proxy reverso. Para o resto da Internet, parece que o proxy reverso está atendendo às solicitações.


Existem vários benefícios em usar proxies reversos em geral. Você pode encontrar alguns listados aqui .


O conceito de proxy reverso dá vida à arquitetura de microsserviços, permitindo ao cliente navegar no ambiente dinâmico dos microsserviços, determinando quais servidores acessar. Sem esse componente vital, o cliente ficaria sem meios para navegar com eficácia no intrincado cenário da arquitetura de microsserviços.

Descoberta de serviço 🌍

Os serviços em uma arquitetura de microsserviços aumentam ou diminuem com base na carga. Isso significa que as réplicas de um serviço podem ir e vir a qualquer momento durante a vida útil de um aplicativo. O proxy reverso detecta os servidores de um serviço e direciona efetivamente o tráfego do cliente para eles.

Balanceamento de carga ⚖️

Como um serviço pode ter diversas réplicas em execução, torna-se importante que as solicitações do cliente sejam distribuídas adequadamente pelos servidores disponíveis. O balanceamento de carga é apenas mais um recurso do revere proxy que pode ser usado aqui. O proxy reverso distribui de forma inteligente a carga entre as réplicas disponíveis de um serviço.

Monitoramento 🖥️

Como qualquer solicitação que entra em nosso aplicativo passa pelo proxy reverso, é um bom local para monitorar solicitações e realizar registros. Ajuda a obter insights cruciais sobre o número de serviços presentes no sistema.

Tráfego Interno 🚦

Em uma configuração de microsserviços, um proxy reverso também é usado para rotear o tráfego interno do cluster. Isto é especialmente útil para o caso de comunicação serviço a serviço.

Cache 💰

O cache é uma vantagem geral que vem com o uso do proxy reverso. O servidor proxy pode retornar resultados armazenados em cache para consultas semelhantes, melhorando assim o tempo de resposta do cliente.

Agregação ⛙

A solicitação de um único cliente pode exigir agregação de respostas de mais de um serviço no backend. Essa agregação pode ser realizada pelo proxy reverso deixando o cliente com um endpoint limpo para usar!

Proxy entre camadas

Um proxy reverso pode ser usado em diferentes configurações. Essas configurações geralmente determinam a camada OSI na qual a decisão de roteamento é tomada. Popularmente, existem dois proxys famosos - (1) Proxy na Camada 4 e (2) Proxy na Camada 7. À medida que avançamos nas camadas, decodificamos mais informações dos pacotes da Internet que podem ser usadas para decisão de roteamento.


Camadas no modelo OSI

Proxy da Camada 4

A camada 4 no modelo OSI é a camada de transporte. Do ponto de vista do desenvolvedor de aplicativos, os itens disponíveis na camada 4 para decisão de roteamento são:

  • IP e porta do cliente que envia a solicitação
  • IP e porta do servidor que está recebendo a solicitação


Assim, um proxy da camada 4 só pode tomar decisões de roteamento com base no IP e na porta do servidor e do cliente. Ele não pode analisar o conteúdo das solicitações e, portanto, pode tomar decisões de roteamento limitadas.


Existem vários motivos pelos quais alguém usaria o proxy da camada 4 -

  • Quando apenas o balanceamento de carga em nível de pacote é necessário.
  • Não se deseja que o proxy reverso descriptografe a solicitação por questões de segurança.
  • A eficiência é necessária, pois o proxy na camada 4 é rápido.


Existem também várias desvantagens no proxy da camada 4 -

  • Como estamos no nível 4, o balanceamento de carga inteligente não é possível
  • Ele não pode realizar verdadeiro balanceamento de carga de microsserviços.

Proxy da Camada 7

A camada 7 no modelo OSI é a camada de aplicação. Do ponto de vista do desenvolvedor de aplicativos, os itens disponíveis na camada 7 para decisão de roteamento são:

  • Tudo o que estava disponível na camada 4
  • Todo o conteúdo da solicitação, incluindo cabeçalhos


Como muito mais conteúdo para tomada de decisão está disponível na camada 7, um roteamento mais inteligente pode ser realizado.


Aqui estão alguns motivos pelos quais alguém usaria um proxy da camada 7 -

  • Você precisa tomar decisões inteligentes de roteamento em seu proxy reverso
  • Você deseja usar o cache


Aqui estão algumas desvantagens de usar um proxy da camada 7 -

  • O proxy da camada 7 é geralmente mais lento que o da camada 4, pois descriptografa a solicitação e examina seu conteúdo para decisões de roteamento.
  • Como o proxy reverso examina o conteúdo das solicitações, há também uma preocupação de segurança no uso do proxy da camada 7

O proxy reverso é sem dúvida uma das peças importantes em uma arquitetura de microsserviços. Sem ele, os verdadeiros benefícios da arquitetura de microsserviços nunca poderão ser alcançados em sua totalidade.


Com isso chegamos ao final deste blog! Espero que você tenha aprendido algo novo hoje.