È meglio avere un'app Web o più app Web

2

Ho intenzione di sviluppare un'applicazione server per fornire le funzionalità di un software per la conservazione di libri nel server tomcat. Posso pensare a due modi per raggiungere questo obiettivo.

  1. Creazione di una singola applicazione Web - Diciamo che dobbiamo fornire la gestione delle fatture, la gestione degli utenti e la gestione dei rapporti. Tutta questa logica è legata a questa singola applicazione web. Le funzionalità saranno separate dalla struttura del pacchetto.
  2. Creazione di più applicazioni Web - Creare un'app Web separata per fornire ciascuna funzionalità. es .: applicazione web singola per la gestione delle fatture, un'altra app web singola per la gestione degli utenti e così via.

Un vantaggio che posso pensare di creare più app Web per ogni funzionalità è l'accoppiamento lento. Esempio: lo sviluppatore non vuole concentrarsi sulle cose legate alle fatture quando si sviluppa sul modulo di gestione degli utenti, ecc. Un altro vantaggio è se un cliente desidera solo una sottosezione di tutte le funzionalità disponibili, possiamo rimuovere facilmente altre app Web e fornire una soluzione velocemente. Volevo conoscere i pro e i contro di questi due approcci prima di andare all'attuazione.

    
posta lakshman 14.02.2016 - 15:23
fonte

2 risposte

2

Se vuoi raggiungere la massima scalabilità potresti optare per diverse app, ad esempio (ma non necessariamente) che implementano il principio dei microservizi .

Avendo diverse app, consente di distribuire le app più facilmente su diversi server Web o contenitori (come Docker o nanoserver di Microsoft) per gestire rapidamente un picco di carico a livello di Internet. In questo senso, l'app monolitica non è più una buona idea per il web.

In entrambi i casi, hai ancora la scelta del database e del modello di dati: potresti ad esempio consentire a diverse app di connettersi allo stesso database. Questo ha il vantaggio della sincronizzazione e della coerenza in tempo reale. Tuttavia, questo diventerà anche il collo di bottiglia principale e l'ostacolo alla scalabilità.

Questo è precisamente un aspetto promosso dall'architettura dei microservizi: ogni "servizio" ("app") il proprio database, in modo che ogni "servizio" possa evolvere al proprio ritmo con meno rischi di rompere le strutture dati utilizzate da altri apps / funzioni.

    
risposta data 19.03.2016 - 00:53
fonte
-2

Una singola app Web.

Vai per l'MVP!

    
risposta data 17.02.2016 - 23:57
fonte

Leggi altre domande sui tag