2015-08-05 18 views
13

oggi ho iniziato a leggere su architetture Microservice - e sembra essere molto interessante! Ma ho un dubbio ho bisogno di un po 'di esenazione su: Suppongo che voglio creare un blog e vorrei creare 4 microservizi per questo: servizio utente/accesso, servizio articolo, servizio commenti e servizio di reportistica/analisi (non un esempio realistico, I conoscere...). Il servizio di Reporting/Analytics è puramente backend - nessun problema qui per la mia comprensione. Ma gli altri tre riguardano una parte dell'interfaccia utente - e per quanto ne so io questa parte dell'interfaccia utente dovrebbe anche far parte del microservizio stesso, giusto? Come funziona l'integrazione dell'interfaccia utente? Avrei quindi un 5 ° servizio "front door" che raccoglie le richieste degli utenti, li inoltra agli altri servizi che poi rispondono con HTML/CSS e il servizio front door dovrebbe quindi comporre le singole risposte in ciò che viene restituito all'utente?Microservizi: come integrare l'interfaccia utente?

Qualsiasi modifica hai un esempio/caso d'uso per tale scenario?

Grazie e saluti!

+0

"a mio avviso questa parte dell'interfaccia utente dovrebbe anche essere parte del microservizio stesso, giusto?" errato –

+1

Quindi, solo l'MC fuori dal modello MVC può/deve essere spostato su microservizi !? La V deve rimanere monolitica? – Daniel

+1

@Matt Ball Ciao Matt, hai qualche riferimento per supportare la tua conclusione? –

risposta

5

Dalla mia esperienza, in un'architettura di microservizi, è spesso utile disporre di un servizio che funge da gateway API che carica i microservizi più specifici del dominio che esegue il lavoro. La responsabilità del gateway API potrebbe essere quella di aggregare i risultati e restituirli al front-end, ma il consolidamento delle risposte che vengono restituite dai microservizi accoppiare la conoscenza dei due servizi e la perdita di alcune conoscenze di dominio nel livello gateway API. Il gateway API dovrebbe probabilmente essere il più sottile possibile e dovrebbe raggiungere i servizi per realizzare qualcosa.

Il caso di utilizzo qui descritto sta tentando di autenticare l'utente prima di contattare il servizio di accesso e quindi il servizio di articoli o commenti. Complessivamente il front-end rimarrebbe monolitico se fa parte della stessa applicazione.

Se l'applicazione diventa abbastanza grande, l'applicazione verrà separata dai prodotti ma probabilmente si baserà ancora su un set di servizi principale. In tal caso, probabilmente vivrebbero in diverse interfacce utente in modo tale da renderlo meno complesso (tipo di microservizi simili sul back-end). Come nota a margine, un'architettura di microservizi di solito introduce una serie di servizi di base che possono essere utilizzati da diversi team e quindi da diverse applicazioni che hanno interfacce utente diverse. Un esempio è un'applicazione di e-commerce, che ha il reparto di assistenza clienti che modifica gli ordini per la manutenzione di clienti e clienti che utilizzano un servizio di ordini per effettuare acquisti. In effetti, si tratta di due applicazioni e avranno due interfacce utente diverse. Spero che questo ti aiuti!

L'altra cosa che vorrei sottolineare è che un'architettura di microservizi è eccezionale solo quando l'applicazione diventa troppo grande e complessa. Un'architettura di microservizi richiede più risorse in quanto ha un sovraccarico aggiuntivo. Inizia con un monolitico prima :).