Executando verificação de segurança...
1

Qual sua opinião sobre autenteticação de sessões com microsserviços?

Imagine o seguinte cenário, você tem uma aplicação front-end (basicamente, uma dashboard administrativa) e uma porção de microsserviços. Existirá um load balance para distribuição da carga nesses microsserviços.

Para que a aplicação front-end tenha acesso aos requisitos que ela precisa internamente, é necessário um controle de sessão. Afinal, essas sessões precisam sofrer um processo de logout quando necessário ou podem ser revogadas.

Em um contexto de MVP, pensando no mínimo que funciona, o que você faz?

a) Faz um microsserviço com uma API interna para o front que implementa autenticação e sessões e essa API que se comunica com os demais microsserviços, trata e retorna os dados;
b) Faz um microsserviço de autenticação para gerenciar as sessões, mas faz com que o front-end chame os microsserviços carregando os cookies de sessão e cada microsserviço que fica responsável por ler o cookie de sessão, validar essa sessão (para saber se está ativa no microsserviço de autenticação) e retorna os dados para o front-end?

Considerações:

  • A meta inicial como MVP é o menor custo possível, soluções que envolvam um custo por requisição muito alto como API Gateways deveriam ser evitados.

Ou você simplesmente não usaria sessões e optaria por JWTs. Nesse caso, como você lidaria com:

  • Revogações;
  • Logout;
  • Armazenamento do estado de acesso, como IP/Localização.
Carregando publicação patrocinada...
2

Se está falando de MVP, eu não começaria por microsserviços... Faz um monólito e se caso for necessário usar microsserviços no futuro, aí sim faria a migração de um jeito que teria mais chance de dar certo (já teria um entendimento maior, por exemplo, dos domínios).

0
2

Nunca, jamais use microsserviços em um MVP. Não dá nem para usar isso na mesma frase. Microsserviços é o oposto de mínimo.

Microsserviços só aumenta o custo, e muito, em 100% dos casos. Se você achar que não aconteceu isso está usando métricas errdas ou não está usando microsserviços, o que é bem comum. Hoje a maioria das pessoas que dizem estar fazerndo microsserviços, não está, quase todos sequer sabem o que é, o tamanho da complexidade e dificuldade de fazer. É como saber construit uma casa e pegar uma usina hidrelétrica para construir.

Quase todo mundo que acabou fazendo microsserviços não precisa dele. As pessoas não conseguem nem justificar adequadamente porque adotou aquilo. Todas as justificativas que eu já ouvi eram falsas, eram crenças. As pessoas estão fazendo isso para por em currículo, para parecerem importantes ou porque outras pessoas fizeram. Se eu pego um currículo de alguém que criou microsserviços em uma equipe com menos de centenas de pessoas eu já jogo no lixo. Sei que alguns lugares vão contratar, os semelhantes se abraçam.

MVP provavelmente nem deveria ter mecanismos completos, em alguns casos é para usar quase um mock, mas não vou falar nesse caso por não ter detalhes.

Mesmo que possa aparecer alguma justificativa, arquitetura molotítica é a opção padrão de qualquer caso e só se provar que alguma parte deva virar microsserviços deve acontecer, e aí a arquitetura vai se formando. Quem adotou e tinha justificativa já está pagando o preço por isso, até os casos mais proeminentes. Alguns estão voltando atrás, outros nãop voltam de teimosia ou porque agora o custo seria muito alto.

Não existe meio termo, ou apessoa é craque em computação distribuída ou ela não sabe fazer microsserviços.

Ajudei? Era o meu desejo.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

1

em um contexto de um MVP, em que vc terá um time com o que...2 ou 3 pessoas? vá com o bom e velho monolito. esquece esse negócio de microserviços, capaz que fique com um cenário que vc tem mais microserviços do que gente trabalhando no projeto.

depois, ao invés de reinventar a roda, implamente um api gateway que vai cuidar de validar os jwt e orquestrar os outros microserviços, e fique longe de sessões...caso contrário vai precisar salvar essas sessões em algum DB ou Redis da vida para conseguir disponibilizar esses dadoss para todos os microserviços.

1

Nunca, jamais use microsserviços em um MVP.
Se está falando de MVP, eu não começaria por microsserviços... Faz um monólito e se caso for necessário usar microsserviços no futuro
em um contexto de um MVP, em que vc terá um time com o que...2 ou 3 pessoas? vá com o bom e velho monolito

Como mencionado anteriormente, eu também sugiro começar com um monólito para um MVP. Entretanto, você mencionou que "o contexto aplicável é um MVP com microsserviços." Parece que há uma influência externa pressionando essa decisão, o que, para mim, é um sinal de alerta.

a) Faz um microsserviço com uma API interna para o front que implementa autenticação e sessões e essa API que se comunica com os demais microsserviços, trata e retorna os dados;

Se a escolha for seguir pelo caminho dos microsserviços, então a opção a) que você apresentou parece ser uma opção mais favorável.