Vincoli di prestazioni di un'applicazione monolitica

Completato

Ci sono molti motivi per scegliere di modificare l'architettura di un sistema. Flessibilità operativa, costi, scalabilità e prestazioni sono solo alcuni dei fattori che svolgono un ruolo nella determinazione dell'architettura di un sistema. In questo esempio si esamina in dettaglio come le prestazioni possono diventare determinanti per il sistema di consegna con drone.

Man mano che l'attività di consegna con drone di Fabrikam si espande, il carico di sistema aumenta. e influisce negativamente sulle prestazioni dell'architettura corrente. Fabrikam vuole rendere più flessibile la scalabilità dell'applicazione e questo attualmente non è possibile nell'architettura monolitica in uso. Il miglioramento della scalabilità dell'applicazione è uno dei motivi che porta Fabrikam a decidere di passare a un'architettura di microservizi.

Confronto tra il ridimensionamento di un'architettura monolitica e il ridimensionamento di microservizi

Uno dei principali vantaggi di un'architettura di microservizi è costituito dalla maggiore scalabilità. Poiché i servizi sono separati, è più semplice dimensionare singolarmente ogni servizio quando il carico aumenta.

È possibile osservare questa differenza nelle funzionalità del sistema di consegna con drone. Con un'architettura monolitica tutti i servizi sono inclusi in una singola istanza dell'applicazione. Espongono un'interfaccia API ai clienti per l'invio e la gestione delle richieste di consegna. Quando le richieste dei clienti aumentano, aumenta anche il carico del sistema. È necessario allocare più risorse al sistema per evitare effetti negativi sull'esperienza dell'utente finale.

In un'architettura monolitica per ridimensionare questo servizio è necessario ridimensionare anche le risorse per gli altri servizi, in quanto è tutto contenuto in ogni istanza dell'applicazione. Questa soluzione non è efficiente, poiché il carico per gli altri servizi può essere minimo e non richiedere l'uso di risorse aggiuntive.

In un'architettura di microservizi, poiché ogni servizio è separato, è possibile ridimensionare l'API in modo indipendente dagli altri servizi. Questa soluzione aumenta l'efficienza poiché non è necessario impiegare le risorse di servizi non necessari.

Problematiche dell'architettura monolitica per la consegna tramite drone

Il servizio di gestione dei pacchetti è stato identificato come parte critica per l'attività e faceva originariamente parte della struttura monolitica. I clienti fanno sempre più affidamento su questo servizio e le prestazioni peggiorano con l'aumentare del carico. Per risolvere questa situazione, Fabrikam ha creato un team di sviluppo dedicato con il controllo completo su questa parte dell'attività. Il team prevede di sviluppare ed espandere il servizio e sarà l'unico responsabile di tutti gli aspetti del servizio di gestione dei pacchetti.

Poiché il servizio di gestione dei pacchetti è nella struttura monolitica, il team non può lavorare in autonomia. Deve affidarsi a dati e strutture di dati condivisi. Inoltre non è in grado di eseguire l'iterazione nel modo più rapido possibile. Considerando i problemi di prestazioni e scalabilità, questo servizio è candidato all'uso di un microservizio.

Si esaminerà più in dettaglio in che modo Fabrikam può analizzare e scomporre l'applicazione per sfruttare i vantaggi di un'architettura di microservizi.