I microservizi sono un approccio per sviluppare e organizzare l’architettura dei software secondo cui quest’ultimi sono composti di servizi indipendenti di piccole dimensioni che comunicano tra loro tramite API ben definite. Questi servizi sono controllati da piccoli team autonomi.

Le architetture dei microservizi permettono di scalare e sviluppare le applicazioni in modo più rapido e semplice, permettendo di promuovere l’innovazione e accelerare il time-to-market di nuove funzionalità.

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.

monolite vs. microservizi

Suddividere un'applicazione monolitica in microservizi

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.

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.

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.

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.

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à.

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.

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.

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.


AWS ha integrato i blocchi predefiniti che supportano qualsiasi architettura per applicazioni, a prescindere dalla portata, il peso o la complessità.

Potere di elaborazione per i microservizi.

Amazon EMR

Amazon Elastic Container Service

Amazon ECS è un servizio di gestione di container altamente scalabile ad elevate prestazioni che supporta i container Docker e consente di eseguire applicazioni su un cluster gestito di istanze Amazon EC2 in modo semplice.
Ulteriori informazioni »

Utilizzando Amazon ECS, Coursera è in grado di implementare le modifiche al software in pochi minuti invece che in diverse ore in un ambiente con risorse isolate.
Ulteriori informazioni »

Amazon EMR

AWS Lambda

AWS Lambda consente di eseguire codice senza dover effettuare il provisioning né gestire server. Una volta caricato il codice, Lambda gestisce le azioni necessarie per eseguirlo e ricalibrarne le risorse con la massima disponibilità.
Ulteriori informazioni »

Localytics ha utilizzato AWS Lambda per costruire microservizi che hanno permesso ai loro team di sviluppo di costruire funzionalità di analisi personalizzate senza supporto centrale. Ulteriori informazioni »


Storage dei dati scalabile, duraturo e sicuro.    

Amazon ElastiCache

Amazon ElastiCache è un servizio che potenzia le prestazioni dei servizi facilitando il recupero delle informazioni dalle cache gestite in memoria, molto più rapide dei database basati su disco. Ulteriori informazioni »

Amazon S3

Amazon S3 offre agli sviluppatori e ai team IT uno storage di oggetti estremamente affidabile, sicuro e scalabile per tutti i tipi di dati, di piccole o grandi dimensioni. Ulteriori informazioni »

Amazon DynamoDB

Amazon DynamoDB è un servizio di database NoSQL veloce e flessibile pensato per tutte le applicazioni che richiedono una latenza costante non superiore a una decina di millisecondi su qualsiasi scala. Ulteriori informazioni »

Amazon RDS

Configura, gestisci e scala facilmente un database relazionale nel cloud. Scegli tra sei motori di database noti, tra cui Oracle, Microsoft SQL Server, PostgreSQL, MySQL e MariaDB. Ulteriori informazioni »

Amazon Aurora

Amazon Aurora è un motore di database relazionale che unisce la velocità e la disponibilità dei database commerciali di fascia alta alla semplicità e alla tariffa ridotta dei database open source. Offre fino a 5 volte le prestazioni di MySQL standard eseguito sullo stesso hardware. Ulteriori informazioni »

Remind ha ridotto i tempi di risposta dell’applicazione del 200% creando un PaaS per i microservizi su Amazon ECS. 
Ulteriori informazioni »


Servizi di rete con throughput elevato e latenza nell’ordine di millisecondi.

AWS Cloud Map

AWS Cloud Map è la identificazione dei servizi per tutte le tue risorse cloud. Se definisci nomi personalizzati per le tue risorse di applicazione, Cloud Map mantiene l’ubicazione aggiornata di tali risorse in continuo cambiamento.

Ulteriori informazioni »

AWS App Mesh

AWS App Mesh semplifica il monitoraggio e il controllo di microservizi in esecuzione su AWS. App Mesh standardizza la modalità di comunicazione tra i microservizi, offrendo visibilità end-to-end e favorendo un'elevata disponibilità delle applicazioni.

Ulteriori informazioni »

Application Load Balancer

I sistemi Application Load Balancer sono indicati per il bilanciamento di traffico HTTP e HTTPS al livello dell’applicazione (livello 7), e offrono instradamento avanzato delle richieste per la distribuzione di architetture moderne, ad esempio in microservizi e container.

Ulteriori informazioni »

Network Load Balancer

Il Network Load Balancer permette di effettuare il bilanciamento del carico, il quale opera al livello della connessione di rete (livello 4) e ti permette di instradare le connessioni dei microservizi basati su dati di protocollo IP. Il Network Load Balancer può gestire milioni di richieste per secondo mantenendo al contempo latenze estremamente basse.

Ulteriori informazioni »

Amazon API Gateway

Amazon API Gateway offre una piattaforma completa per la gestione API. Amazon API Gateway permette di elaborare centinaia di migliaia di chiamate API simultanee e di gestire traffico, controllo di accessi e autorizzazioni, monitoraggio e versioni delle API.

Ulteriori informazioni »

Amazon Route 53

Amazon Route 53 è un servizio Web di Domain Name System (DNS) altamente disponibile e scalabile che connette in modo effettivo le richieste all’infrastruttura in esecuzione su AWS. Può essere utilizzato per controllare lo stato dell’IP e come servizio di scoperta per i microservizi.

Ulteriori informazioni »

Airtime fornisce ai clienti la propria esperienza social in modo più rapido e affidabile e senza ritardo dopo avere riprogettato l’applicazione con dei microservizi eseguiti su AWS. Ulteriori informazioni »


Pubblica e coordina le comunicazioni tra i processi.

Amazon Simple Notification Service (SNS)

Amazon SNS è un servizio di messaggistica PUB/SUB completamente gestito che permette di separare e ricalibra le risorse per microservizi, sistemi distribuiti e applicazioni serverless.
Ulteriori informazioni »

Amazon Simple Queue Service (Amazon SQS)

Amazon SQS è un servizio di accodamento di messaggi completamente gestito che semplifica la separazione e la scalabilità di microservizi, sistemi distribuiti e applicazioni serverless.
Ulteriori informazioni »

Lyft utilizza AWS per accelerare i processi dell’azienda e gestire la sua crescita esponenziale, sfruttando i prodotti AWS per supportare più di 100 microservizi che migliorano ogni elemento dell’esperienza dei suoi clienti. Ulteriori informazioni »


Monitora le prestazioni dei servizi e l’utilizzo delle risorse. Tracciale attraverso architetture complesse per risolvere i problemi e ottimizzare i processi.

AWS CloudTrail

Con CloudTrail puoi registrare, monitorare in modo continuo e conservare le attività correlate all'account all'interno dell'infrastruttura. Lo storico degli eventi di CloudTrail semplifica l'analisi di sicurezza, il monitoraggio delle modifiche delle risorse e la risoluzione dei problemi. Ulteriori informazioni »

Amazon CloudWatch

Utilizza Amazon CloudWatch per raccogliere e monitorare parametri e file di log, impostare allarmi e reagire automaticamente ai cambiamenti attraverso i tuoi servizi e le tue risorse AWS in esecuzione.
Ulteriori informazioni »

AWS X-Ray

X-Ray fornisce una panoramica completa delle richieste durante il passaggio nella tua applicazione e visualizzare una mappa dei componenti utilizzati da essa. Mentre un gruppo di microservizi collabora per gestire una richiesta, AWS X-Ray ti permette di visualizzare i log in modo centralizzato così che tu possa monitorare e risolvere i problemi di interazioni complesse. Ulteriori informazioni »

Utilizzando i microservizi ospitati su Amazon ECS, Shippable è stato in grado di concentrarsi sulla fornitura di funzionalità per i propri clienti e ha velocizzato le tempistiche necessarie per distribuire tali funzionalità da una volta alla settimana a più volte al giorno. Ulteriori informazioni »


Gestisci il ciclo di vita del codice da un commit da eseguire.

Amazon Elastic Container Registry (Amazon ECR)

Amazon ECR è un registro di container Docker completamente gestito che puoi utilizzare per archiviare, gestire e distribuire le immagini di container Docker. Amazon ECR integra Amazon Elastic Container Service (Amazon ECS) per semplificare il flusso di lavoro, dalla fase di sviluppo a quella di produzione per container. Ulteriori informazioni »

Strumenti per sviluppatori AWS

Gli strumenti per sviluppatori AWS sono un insieme di servizi che consente agli sviluppatori e ai professionisti IT di impiegare le prassi DevOps e distribuire i propri prodotti software in modo rapido e sicuro. Insieme, questi servizi consentono di memorizzare e di verificare le versioni del codice sorgente delle applicazioni, automatizzandone progettazione, testing e distribuzione in AWS o nell'ambiente locale. Ulteriori informazioni »

Gilt ha migrato da un data center locale ad AWS per sfruttare la velocità e l’efficienza di un’infrastruttura di microservizi basata sul cloud.
Ulteriori informazioni »