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!
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 -
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.
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.
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.
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.
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.
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.
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!
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.
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:
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 -
Existem também várias desvantagens no proxy da camada 4 -
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:
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 -
Aqui estão algumas desvantagens de usar um 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.