Scomposizione dei monoliti in microservizi - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scomposizione dei monoliti in microservizi

Tabby Ward e Dmitry Gulin, Amazon Web Services (AWS)

Aprile 2023 (cronologia dei documenti)

Una migrazione al cloud Amazon Web Services (AWS) presenta molti vantaggi, tra cui agilità tecnica e aziendale, nuove opportunità di guadagno e costi ridotti. Per sfruttare appieno questi vantaggi, è necessario modernizzare continuamente il software dell'organizzazione rifattorizzando le applicazioni monolitiche in microservizi. Questo processo è costituito da tre fasi principali:

La modernizzazione prevede in genere due tipi di progetti:

  • I progetti brownfield prevedono lo sviluppo e l'implementazione di un nuovo sistema software nel contesto di sistemi esistenti o legacy.

  • I progetti Greenfield prevedono la creazione di un sistema da zero per un ambiente completamente nuovo, senza alcun codice legacy.

Per i progetti dismessi, uno dei primi passi nel percorso di modernizzazione delle applicazioni consiste nel scomporre i monoliti del portafoglio in microservizi.

La maggior parte delle applicazioni inizia come monoliti progettati per uno specifico caso d'uso aziendale. Se l'architettura del monolite non impone un design modulare, un monolite può rimanere una scelta valida per applicazioni che non hanno responsabilità chiaramente definite entro i confini di una conoscenza di dominio consolidata. La caratteristica centrale di un monolite come singola unità di distribuzione può anche aiutare a mitigare i difetti di progettazione, come l'accoppiamento stretto o la mancanza di una struttura interna.

Sebbene un monolite possa essere un'opzione valida per alcuni casi d'uso, in genere non è adatto per un'applicazione moderna. Le strutture interne mal definite di un monolite possono rendere difficile la manutenzione del codice, il che crea una curva di apprendimento ripida per i nuovi sviluppatori e causa costi di supporto aggiuntivi. Un elevato accoppiamento e una bassa coesione possono aumentare significativamente il tempo necessario per aggiungere nuove funzionalità e potresti non essere in grado di scalare i singoli componenti in base ai modelli di traffico. I monoliti richiedono inoltre che più team si coordinino per un'unica versione di grandi dimensioni, il che aumenta il carico di collaborazione e trasferimento delle conoscenze. Infine, puoi scoprire che aggiungere nuove funzionalità o creare nuove esperienze utente diventa difficile quando la tua azienda o la tua base di utenti crescono.

Per evitare ciò, è possibile utilizzare modelli di decomposizione per suddividere le applicazioni monolitiche, convertirle in diversi microservizi e migrarle verso un'architettura di microservizi. Un'architettura di microservizi struttura un'applicazione come una serie di servizi liberamente accoppiati. I microservizi sono progettati per accelerare lo sviluppo del software abilitando processi di distribuzione continua e distribuzione continua (CI/CD).

Prima di iniziare il processo di decomposizione, è necessario valutare quali monoliti decomporre. Assicurati di includere monoliti che presentano problemi di affidabilità o prestazioni o di includere più componenti in un'architettura strettamente collegata. Ti consigliamo inoltre di comprendere appieno il caso d'uso aziendale del monolito, la sua tecnologia e le sue interdipendenze con altre applicazioni.

Questa guida è destinata a proprietari di applicazioni, titolari di aziende, architetti, responsabili tecnici e project manager. Descrive i seguenti sei modelli nativi del cloud utilizzati per scomporre i monoliti e descrive i vantaggi e gli svantaggi di ciascuno di essi:

La guida fa parte di una serie di contenuti che descrive l'approccio di modernizzazione delle applicazioni consigliato daAWS. La serie include anche:

Risultati aziendali mirati

Dovresti aspettarti i seguenti risultati dopo aver scomposto i tuoi monoliti in microservizi:

  • Una transizione efficiente della tua applicazione monolitica in un'architettura di microservizi.

  • Adeguamenti rapidi alle fluttuazioni della domanda aziendale senza interrompere le attività principali, come alta scalabilità, maggiore resilienza, fornitura continua e isolamento dei guasti.

  • Innovazione più rapida, perché ogni microservizio può essere testato e implementato singolarmente.