Cosa fare con il "frontend" in un ambiente basato sui microservizi?

9

Recentemente abbiamo iniziato a suddividere la nostra app web monolitica in microservizi, eliminando lentamente funzionalità e riscrivendola in singoli microservizi. Tutto sta andando bene, tranne che non siamo sicuri del modo migliore per organizzare il lavoro del frontend. Ci siamo suddivisi in team di prodotto con ognuno di essi che gestiva il codice per un piccolo numero di microservizi per fornire un'area funzionale, ad es. Ricerca, CMS, Checkout ecc. Con ciascun team con proprietario del prodotto, lead tecnologico e master scrum.

Il problema è che mentre ciascuno di questi team di prodotto ha il proprio codice base di backend, abbiamo un singolo codice base React.js con gli sviluppatori di frontend che si trovano in ogni team di prodotto. Ciò sta causando una serie di problemi:

  • Mancanza di comunicazione tra team di prodotto tra gli sviluppatori di frontend
  • Problemi con le modifiche apportate al codice di front-end che l'altro team "possiede" per supportare nuove funzionalità di altri team
  • Nessun singolo esperto tecnico rappresenta il frontend team, mentre altri team di prodotto hanno lead tecnici non c'è nessuno che soddisfi questo ruolo per il frontend

Ci stavamo chiedendo in che modo le altre persone stanno gestendo questo problema e abbiamo discusso alcuni approcci come la suddivisione del codice base del frontend, la creazione di un team di prodotti front-end con cui gli utenti aziendali in genere interagiscono per nuove funzionalità e richieste di dati / servizi negli altri team di prodotto del team di frontend, ma entrambi sembrano venire con il loro set di problemi!

    
posta Sutty1000 14.11.2016 - 09:31
fonte

1 risposta

5

Il frontend è in un certo senso la parte più importante (è la parte che gli utenti effettivamente utilizzano), ha le proprie strutture dati, infrastrutture, sviluppatori specializzati e deve comunicare con tutti gli altri team. Se il resto del backend è suddiviso in servizi, è anche la parte più centrale.

Quindi l'unico modo per lavorare è lasciare che il frontend abbia il proprio team , direi prima di dividere il back-end in più team, ma questo è già successo.

Mancanza di comunicazione - l'unico modo per ogni team di back-end di avere qualcosa sul frontend è comunicare con il frontend team.

Problemi con le modifiche apportate al codice di frontend: il proprietario del frontend decide quali funzioni devono essere inserite prima nel frontend, nessun altro.

C'è un vantaggio tecnico per il frontend.

Questo è anche ovvio perché uno dei vantaggi di avere una divisione chiara tra frontend e backend (senza il quale non è possibile iniziare a dividere il backend in ulteriori bit, quindi presumo che tu abbia già risolto questo problema), è che potresti avere diversi frontend completamente diversi che fanno cose diverse con i servizi di back-end. Chiaramente quelli sarebbero prodotti diversi.

    
risposta data 14.11.2016 - 10:34
fonte

Leggi altre domande sui tag