O que fazer com o "frontend" em um ambiente baseado em microsserviços?

8

Recentemente, começamos a dividir nosso aplicativo Web monolítico em microsserviços, cortando lentamente a funcionalidade e reescrevendo em microsserviços individuais. Tudo está indo bem, exceto que não temos certeza da melhor maneira de organizar o trabalho de front-end. Nós nos dividimos em equipes de produtos, cada uma gerenciando o código para um pequeno número de microsserviços para fornecer uma área funcional, por exemplo, Pesquisa, CMS, Checkout etc.

O problema é que, embora cada uma dessas equipes de produto tenha sua própria base de código de back-end, temos uma única base de código React.js de front-end com os desenvolvedores de front-end em cada equipe de produto. Isso está causando vários problemas:

  • Falta de comunicação entre equipes de produtos entre os desenvolvedores de front-end
  • Problemas ao obter alterações feitas no código de front-end que a outra equipe "possui" para suportar novos recursos de outras equipes
  • Nenhum especialista técnico isolado para representar a equipe de front-end, enquanto outras equipes de produto têm líderes técnicos, não há ninguém cumprindo esse papel para o front-end

Estávamos imaginando como outras pessoas estão lidando com isso, e discutimos algumas abordagens, como dividir a base de código de front-end, criando uma equipe de produtos de front-end com a qual os usuários corporativos normalmente se envolvem para obter novos recursos e solicitações de dados / serviços. outras equipes de produtos da equipe front-end, mas ambas parecem ter seu próprio conjunto de problemas!

Sutty1000
fonte

Respostas:

5

De certa forma, o front-end é a parte mais importante (é a parte que os usuários realmente usam), possui estruturas de dados próprias, infraestrutura, desenvolvedores especializados e precisa se comunicar com todas as outras equipes. Se o restante do back-end é dividido em serviços, é a parte mais central também.

Portanto, a única maneira de trabalhar é deixar o front-end ter sua própria equipe , eu diria antes de dividir o back-end em várias equipes, mas isso já aconteceu.

Falta de comunicação - a única maneira de qualquer equipe de back-end fazer alguma coisa no front-end é se comunicar com a equipe de front-end.

Problemas na obtenção de alterações no código do front-end - o proprietário do produto do front-end decide quais recursos precisam entrar primeiro no front-end, mais ninguém.

Existe um líder técnico para o frontend.

Isso também é óbvio, porque um dos benefícios de ter uma divisão clara entre o front-end e o back-end (sem o qual você não pode começar a dividir o back-end em mais bits, então presumo que você já tenha resolvido isso) é que você poderia ter vários front-ends completamente diferentes que fazem coisas diferentes com os serviços de back-end. Claramente, esses seriam produtos diferentes.

RemcoGerlich
fonte