Il passaggio dai microservizi ai monoliti: un'analisi approfondita
Le aziende che stanno rivalutando le strutture software stanno tornando ai monoliti per vari motivi.
― 6 leggere min
Indice
Recentemente, molte aziende stanno tornando a una struttura monolitica dopo aver usato i Microservizi. Questo cambiamento ha scatenato tante discussioni nella comunità tech. Uno studio ha analizzato perché succede e cosa devono considerare le aziende prima di fare il passaggio.
Che cosa sono i Microservizi?
I microservizi sono un modo di progettare il software. In questo metodo, un'applicazione viene suddivisa in parti più piccole, ognuna delle quali funziona in modo indipendente. Questo permette ai team di lavorare su diverse sezioni di un'app contemporaneamente, velocizzando lo sviluppo. Molte grandi aziende come Netflix e Amazon hanno adottato questo modello per sfruttare questi vantaggi.
Perché le Aziende Tornano Indietro?
Mentre alcune aziende hanno avuto successo con i microservizi, altre hanno affrontato sfide che le hanno portate a riconsiderare. Ecco alcune ragioni comuni per cui le aziende tornano a una struttura monolitica:
Costi
Una delle ragioni principali è il Costo. Molte aziende scoprono che gestire più servizi può essere costoso. Ad esempio, Amazon Prime Video ha trovato che la sua struttura a microservizi comportava alti costi operativi. Dopo aver analizzato le spese, hanno deciso che tornare a un'applicazione monolitica poteva abbattere significativamente i costi. Infatti, hanno riportato di aver risparmiato oltre il 90% sui costi infrastrutturali proprio facendo questo cambiamento.
Complessità
I microservizi possono complicare le cose. Ogni servizio potrebbe utilizzare linguaggi di programmazione o strumenti diversi e gestire più servizi può diventare una sfida. Aziende come Istio hanno scoperto che i loro microservizi portavano a maggiore complessità, rendendo più difficile gestire tutto. Questa complessità aumentata può ridurre i benefici che i microservizi dovrebbero fornire, come uno sviluppo più semplice.
Scalabilità
Anche se i microservizi possono scalare bene, ci sono casi in cui possono diventare un collo di bottiglia. Ad esempio, Amazon Prime Video ha raggiunto un limite su quanto potessero scalare usando i microservizi. Gestire ogni microservizio e le sue Prestazioni può risultare difficile, portando a un sovraccarico operativo. Molte aziende trovano più semplice scalare un monolite dove tutto è sotto lo stesso tetto.
Prestazioni
Alcune aziende affrontano problemi di prestazioni con i microservizi. Ad esempio, Segment ha subito ritardi a causa del modo in cui i microservizi comunicano tra loro. Questi ritardi possono influenzare l'esperienza dell'utente, specialmente quando la velocità è critica. La maggiore complessità che deriva dalla gestione di molti servizi può anche portare a prestazioni più lente, poiché i team passano più tempo a risolvere problemi che a scrivere codice.
Organizzazione
Gestire efficacemente i team è un'altra sfida. In alcuni casi, la struttura dei team progettata attorno ai microservizi non funziona bene. Istio ha trovato che i loro team avevano difficoltà con il modello dei microservizi, mentre InVision ha affrontato sfide a causa del numero eccessivo di servizi da gestire rispetto alla dimensione del loro team di sviluppo. Col tempo, unire i servizi in un singolo monolite può semplificare la gestione.
Aspetti Chiave da Considerare Quando si Torna Indietro
Se un'azienda decide di passare dai microservizi a un monolite, ci sono diversi punti importanti da tenere a mente:
Smettere di Sviluppare Nuovi Servizi
Quando si fa il passaggio, è fondamentale smettere di introdurre nuovi servizi. L'obiettivo è consolidare i servizi esistenti in un nuovo sistema centrale. Se vengono continuamente aggiunti nuovi servizi, si può complicare la transizione e portare a confusione.
Consolidare e Testare i Percorsi
Unire i microservizi in un'applicazione monolitica richiede uno sguardo attento a come i dati fluiscono tra le diverse parti dei servizi. È importante garantire che i percorsi di comunicazione siano consolidati in modo efficace e testati a fondo. Questo aiuta a garantire che il nuovo sistema funzioni correttamente dopo la transizione.
Unificare l'Archiviazione dei Dati
Le aziende devono decidere come gestire l'archiviazione dei dati durante il passaggio. Possono scegliere di spostare tutto in un unico database o mantenere alcuni dati separati. Unificare l'archiviazione dei dati può ridurre la complessità e migliorare le prestazioni, mentre l'archiviazione separata può mantenere un certo livello di autonomia.
Implementare il Principio del Message Bus
Utilizzare un message bus può aiutare durante la transizione. Un message bus consente a diversi servizi di comunicare senza un accoppiamento stretto, rendendo più facile combinarli gradualmente in un monolite. Questo approccio minimizza le interruzioni durante il cambiamento.
Rinunciare a Tecniche Diverse
I microservizi permettono di utilizzare vari linguaggi e framework per diversi servizi. Tuttavia, una volta che un'azienda torna a un monolite, è fondamentale standardizzare le tecnologie attraverso l'applicazione. Questo riduce la complessità e rende più semplice la manutenzione.
Imparare a Usare i Principi di Design Modulare
Anche in un'applicazione monolitica, mantenere un design modulare può essere vantaggioso. Organizzare il codice in moduli chiari con confini definiti può aiutare a mantenere tutto gestibile. Questo consente ancora la semplicità di un monolite, offrendo al contempo alcuni vantaggi che i microservizi forniscono, come flessibilità.
Opinioni dei Professionisti
Le opinioni delle persone del settore su questa tendenza sono varie. Alcuni credono che tornare a un monolite sia una decisione intelligente. Sostengono che i microservizi non sono la soluzione migliore per ogni applicazione e possono portare a più problemi del previsto. Alcuni esperti sono arrivati a etichettare i microservizi come un'architettura difettosa, evidenziando i vantaggi di semplificare tornando a un monolite.
D'altra parte, ci sono ancora molti sostenitori dei microservizi. Sottolineano che i microservizi possono essere efficaci e che le organizzazioni devono migliorare i propri processi piuttosto che abbandonare completamente il modello. Stressano l'importanza di una comunicazione e collaborazione efficace tra i team per far funzionare i microservizi.
In generale, la maggior parte dei professionisti concorda sul fatto che tornare a un monolite richiede un'attenta considerazione della situazione specifica di un'azienda. La decisione dovrebbe tenere conto della dimensione del team, delle competenze e delle capacità operative. Comprendere i compromessi associati a entrambe le architetture è cruciale.
Conclusione
La tendenza a passare dai microservizi a un monolite sta guadagnando attenzione mentre le aziende rivalutano i loro design software. Fattori come costi, complessità, scalabilità, prestazioni e organizzazione del team giocano ruoli significativi in questa decisione. Mentre alcuni esperti mettono in discussione l'efficacia dei microservizi, altri continuano a sostenere questo approccio.
Quando si considera un cambiamento, le aziende devono prestare attenzione a vari aspetti, tra cui la gestione dei servizi, il test della comunicazione fluida, l'unificazione dell'archiviazione dei dati e il mantenimento di un'organizzazione del codice modulare. Le esperienze delle aziende che fanno questo passaggio forniscono insegnamenti preziosi per altri che contemplano un cammino simile.
Man mano che questa tendenza evolve, ulteriori indagini sui pensieri e le esperienze dei professionisti del settore faranno luce sul dibattito in corso tra microservizi e monoliti. In definitiva, il miglior approccio dipenderà dalle esigenze e dalle circostanze uniche di un'azienda.
Titolo: Back to the Future: From Microservice to Monolith
Estratto: Recently the trend of companies switching from microservice back to monolith has increased, leading to intense debate in the industry. We conduct a multivocal literature review, to investigate reasons for the phenomenon and key aspects to pay attention to during the switching back and analyze the opinions of other practitioners. The results pave the way for further research and provide guidance for industrial companies switching from microservice back to monolith.
Autori: Ruoyu Su, Xiaozhou Li, Davide Taibi
Ultimo aggiornamento: 2023-08-29 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2308.15281
Fonte PDF: https://arxiv.org/pdf/2308.15281
Licenza: https://creativecommons.org/licenses/by-nc-sa/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- https://istio.io/latest/blog/2020/istiod/
- https://blog.christianposta.com/
- https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-videomonitoring
- https://thenew
- https://devops.com/microservices-amazon-monolithic-richixbw/
- https://devclass.com/2023/05/05/reduce-costs-by-90-by-moving-from-microservi
- https://www.thestack.technology
- https://www.acorn.io/microservices-are-dead-long-live-the-monolith/
- https://www.network
- https://www.forrester.com/blogs/the-death-of-microservices
- https://medium.com/@anshita.bhasin/exploring-amazon-prime-vid
- https://segme
- https://itnext.io/its-back-a-trend-to-build-monolith-852aaa5e086f
- https://www.infoq
- https://www.sdxcentral.com/
- https://www.adfolks.com/blogs/transitioning-from-monolithic-to-microservices-architecture-pros-cons-and-segments-journey
- https://www.infoq.com/presentations/microservice
- https://www.bennade
- https://notes.nicol
- https://world.hey.com/dhh/how-to-recover-from-microservices-ce3803cc
- https://learn
- https://blog.bitsrc.io/when
- https://medium.com/glovo-engineering/bring-back-the-mono
- https://www.hexacta.com/microse
- https://ciaranodonnell.dev/posts/the-microservices-monolith-pendulum/
- https://medium.com/att-israel/
- https://dev.to/codenameone/is-it-time-to-go-back-to-the-monolith-3eok
- https://istio.io/
- https://www.primevideo.com/offers/nonprimehomepage/ref=dv
- https://segment.com/
- https://www.invisionapp.com/