Come risolvere la logica duplicata in uno stack di microservizi

1

Ho progettato uno stack di microservizi con docker come backbone, circa 50 servizi in totale finora, ancora in crescita ...
Tutto funziona bene, felice della scelta progettuale, ma margini di miglioramento. Ad esempio, notiamo molta logica duplicata nei diversi servizi. La maggior parte di queste duplicazioni è correlata a query a servizi esterni allo stack, ad esempio MySQL o Elastic Search -query o% diverso di% di%, ecc.

La mia idea è di rifattorizzare il progetto impostando un livello / api gateway. L'API verrebbe esposta solo nella rete privata. Sarebbe un componente che gestisce tutti i mapping dei gateway, quindi quando uno sviluppatore ha bisogno di mantenere un'entità, chiama l'endpoint sull'API che archivierà l'entità dove e come si suppone. Abbiamo, diciamo, circa 10 diverse soluzioni di persistenza così come sono, anche in crescita. Devo supportare più soluzioni a causa del dominio in cui lavoro.

Riesco a vedere i vantaggi con un design a livello di gateway poiché possiamo rifattorizzare le soluzioni di persistenza in modo più libero.

Sul lato negativo, vedo l'accoppiamento in cui tutti i servizi dipendono da 1 servizio.

È una buona idea creare un punto centrale nello stack dei microservizi, come sarebbe il livello gateway? Faresti lo stesso / Fai lo stesso? Qualche argomentazione a favore o contro che non vedo? Qualche suggerimento sul nome migliore quindi REST API layer?

    
posta superhero 26.06.2018 - 12:43
fonte

1 risposta

1

Penso che ci sia una confusione comune riguardo al significato di "duplicazione". Se una determinata logica specifica viene implementata una volta, ma viene distribuita diverse volte come componente autonomo, ciò che si sta facendo in realtà è riutilizzare quel componente, non duplicarlo. Quindi è perfettamente per me implementare quella logica in un componente ben definito e "utilizzare" questo componente in diversi servizi, ma non dietro la propria API centralizzata.

    
risposta data 26.06.2018 - 13:08
fonte

Leggi altre domande sui tag