Microservizio per accedere ai database [chiuso]

-1

La nostra azienda sta progettando un nuovo ERP basato su microservizi. Il motivo per cui vogliamo implementare i microservizi è perché abbiamo notato che alcune parti critiche del vecchio ERP vengono utilizzate pesantemente dai nostri clienti e, mentre pianifichiamo di far crescere la nostra attività in un periodo di 2 anni, vogliamo essere in grado di distribuire più istanze in nuovi server come richiesto in qualsiasi momento.

Questo è il primissimo progetto che utilizziamo con i microservizi, quindi ci sono molte discussioni sul design, su ciò che dovrebbe essere suddiviso in diversi microservizi e su cosa dovrebbe stare insieme.

La vecchia versione di questo ERP sta dando servizio a diversi clienti. Alcuni di questi clienti ci hanno chiesto di avere l'applicazione nei nostri server, ma alcune parti del DB sui loro server (informazioni sensibili).

Per questo motivo, alcune persone del team di sviluppatori hanno suggerito di creare un microservizio che avrebbe dovuto essere solo l'esecuzione di query, ricevendo tutti i dati necessari per effettuare una connessione al database richiesto per connettersi ai DB clienti quando richiesto. La maggior parte della squadra è d'accordo con l'idea, ma alcuni di noi non ne sono sicuri.

Non ci piace l'idea di trasmettere i dati in questo modo e si preoccupano delle prestazioni generali. Le nostre preoccupazioni sono perché pensiamo che chiamare questo servizio ogni volta che abbiamo bisogno di dati dal DB potrebbe richiedere molto tempo per effettuare la chiamata, eseguire la query, analizzare il risultato in json e quindi analizzare nuovamente gli oggetti nel codice del chiamante.

La domanda riguarda questo microservizio specifico il cui unico compito sarà eseguire query per altri servizi: sarebbe un buon microservizio solo per query eseguibili?

    
posta Christian Del Rio López 17.08.2018 - 07:25
fonte

1 risposta

2

Our company is designing a new ERP based on microservices.

Perché?

This is the very first project we do using microservices so there are many discutions about the design, what should be split into several microservices and what should stay together.

Forse, non è una buona idea, percorrere questa strada.

We don't like the idea of passing the data around like that and are concerned with the overall performance.

Quali sono esattamente questi dubbi?

Is the suggested approach as bad as some of us think or it would be a suitable option given the circumstances?

Non posso rispondere a questo: hai dato troppe informazioni su ciò che stai facendo.

Ti incoraggerei a ripensare al tuo passaggio verso i microservizi. No, penso che i microservizi non siano eccezionali o che non siano adatti al tuo ambiente. Ma ho l'impressione - che potrebbe essere sbagliata - che stai semplicemente facendo microservizi per farlo - perché vuoi.

Ma dal mio punto di vista, questa è soprattutto una ragione insufficiente. Molti si sono spostati dai monoliti ai microservizi, perché dovevano - il che significa: i loro problemi complessivi con la gestione di un monolite sono diventati così enormi, che i microservizi ei problemi dei sistemi distribuiti sono stati più semplici dei loro problemi di ridimensionamento.

Ovviamente potresti passare da monolite a microservice, se

a) capisci abbastanza bene il tuo prodotto e conosci il suo dominio e i contesti limitati di ogni parte. Quindi sarà facile tagliare lungo le linee e spostarsi passo dopo passo verso i microservizi.

b) hai una squadra, o almeno diverse persone nel tuo team, che sono abbastanza abili da affrontare i problemi dei sistemi distribuiti.

Tuttavia, ponendo la domanda che hai posto qui indica che i prerequisiti a e b non sono per lo meno soddisfatti.

Forse mi sbaglio.

    
risposta data 17.08.2018 - 09:58
fonte

Leggi altre domande sui tag