- AWS
- Presentazioni su
Presentazioni su
Costruisci microservizi altamente disponibili per le tue applicazioni di qualsiasi dimensione e portata.
Differenze tra Architettura monolitica e architettura di microservizi
Nelle architetture monolitiche tutti i processi sono strettamente collegati tra loro e vengono eseguiti come un singolo servizio. Ciò significa che se un processo dell’applicazione sperimenta un picco nella richiesta, è necessario ridimensionare l'intera architettura. Aggiungere o migliorare una funzionalità dell’applicazione monolitica diventa più complesso, in quanto sarà necessario aumentare la base di codice. Tale complessità limita la sperimentazione e rende più difficile implementare nuove idee. Le architetture monolitiche rappresentano un ulteriore rischio per la disponibilità dell’applicazione, poiché la presenza di numerosi processi dipendenti e strettamente collegati aumenta l’impatto di un errore in un singolo processo.
Con un’architettura basata su microservizi, un’applicazione è realizzata da componenti indipendenti che eseguono ciascun processo applicativo come un servizio. Tali servizi comunicano attraverso un’interfaccia ben definita che utilizza API leggere. I servizi sono realizzati per le funzioni aziendali e ogni servizio esegue una sola funzione. Poiché eseguito in modo indipendente, ciascun servizio può essere aggiornato, distribuito e ridimensionato per rispondere alla richiesta di funzioni specifiche di un’applicazione.
Caratteristiche dei microservizi
Autonomi
Ciascun servizio nell’architettura basata su microservizi può essere sviluppato, distribuito, eseguito e ridimensionato senza influenzare il funzionamento degli altri componenti. I servizi non devono condividere alcun codice o implementazione con gli altri. Qualsiasi comunicazione tra i componenti individuali avviene attraverso API ben definite.
Specializzati
Ciascun servizio è progettato per una serie di capacità e si concentra sulla risoluzione di un problema specifico. Se, nel tempo, gli sviluppatori aggiungono del codice aggiuntivo a un servizio rendendolo più complesso, il servizio può essere scomposto in servizi più piccoli.
Vantaggi dei microservizi
Agilità
I microservizi promuovono le organizzazioni di team indipendenti di dimensioni ridotte che diventano proprietari del servizio che gestiscono. I team agiscono in contesti ridotti e ben delineati così che possano lavorare in modo più indipendente e rapido. Ciò riduce i tempi del ciclo di sviluppo. Potrai trarre un enorme vantaggio dal throughput aggregato dell’organizzazione.
Scalabilità e flessibilità
I microservizi ti consentono di scalare ciascun servizio in modo indipendente per rispondere alla richiesta delle funzionalità che la tua applicazione supporta. Ciò permette ai team di ridimensionare in modo corretto l’infrastruttura in base alle necessità, misurare in modo accurato i costi di una funzionalità e proteggere la disponibilità dell’applicazione nel caso in cui il servizio sperimenti un amento nella richiesta.
Semplicità di distribuzione
I microservizi supportano l’integrazione continua e la distribuzione continua, così da poter provare nuove idee in modo più semplice e ripristinare impostazioni precedenti quando qualcosa non funziona. Gli errori, dunque, influiscono di meno sul costo delle operazioni, permettendoti di sperimentare, aggiornare il codice in modo più semplice e accelerare il time-to-market delle nuove funzionalità.
Libertà tecnologica
Le architetture basate su microservizi non applicano un unico approccio all’intera applicazione. I team hanno la libertà di scegliere gli strumenti migliori per risolvere i loro problemi specifici. Di conseguenza, i team che costruiscono i microservizi possono scegliere il miglior strumento per ciascun lavoro.
Codice riutilizzabile
Dividere il software in moduli piccoli e ben definiti permette ai team di utilizzare funzioni per più scopi. Un servizio scritto per una certa funzione può essere utilizzato come blocco costruttivo per un’altra funzionalità. Ciò permette all’applicazione di effettuare il bootstrap in modo indipendente, poiché gli sviluppatori possono creare nuove capacità senza dover scrivere del codice da zero.
Resilienza
L’indipendenza dei servizi aumenta la resilienza di un’applicazione in caso di errori. In un’architettura monolitica, un errore in un unico componente potrebbe avere ripercussioni sull’intera applicazione. Con i microservizi, le applicazioni possono gestire completamente gli errori di un servizio isolando la funzionalità senza bloccare l’intera applicazione.
La più completa piattaforma per i microservizi
Storage dei dati e database
Rete
Messaggistica
Registrazione di log e monitoraggio
DevOps
Inizia
Comincia a costruire microservizi oggi stesso con queste risorse.
Microservizi senza server
Distribuzione di microservizi Java in Amazon Elastic Container Service
Creare applicazioni e microservizi scalabili
Esegui microservizi containerizzati con Amazon ECS e ALB
Utilizzo di Amazon API Gateway con microservizi distribuiti in Amazon ECS
Rilevamento di servizi: architettura di riferimento di Amazon ECS