3. Introduzione ai microservices
Cosa è un microservice
3
Microservice
Cosa sono i microservices?
Sono dei servizi “micro”, autonomi, che
fanno una cosa sola (ma bene!) e che
interagiscono tra di loro… in pratica dei
sistemi distribuiti.
4. Introduzione ai microservices
Definizione di M. Fowler & J. Lewis
4
Definizione di microservices
“Lo stile architetturale a microservizi è un
approccio allo sviluppo di una singola
applicazione come insieme di piccoli
servizi, ciascuno dei quali viene eseguito
da un proprio processo e comunica con un
meccanismo snello, spesso una HTTP API.”
Martin Fowler James Lewis
5. Introduzione ai microservices
Software Monolitico?
5
Software monolitico
Nelle web app abbiamo diversi strati
che comunicano tra di loro. In questa
architettura il software, anche se
logicamente suddiviso, risulta essere
un unico sistema monolitico.
Punti di debolezza
-un linguaggio di programmazione
-scalabilità limitata
-Risorse legate all’applicazione
-Tempi di sviluppo non parallelizzabili
-Manutenzione onerosa
-Non completa riutilizzazione del codice
-Difficile Sperimentare
6. Introduzione ai microservices
Software con microservices
6
Your great subtitle in this line
Punti di Forza
-Più linguaggi di programmazione
-Scalabilità Illimitata
-HR legate al microservice
-Sviluppo parallelizzabile
-Manutenzione facilitata
-Completa riutilizzazione del codice
-Permette la sperimentazione
Software con microservices
Software costituito da diversi
componenti che operano per
effettuare una sola mansione
interconnessi tra loro
8. Introduzione ai microservices
8
“The largest sizes reported follow Amazon's notion of
the Two Pizza Team (i.e. the whole team can be fed by
two pizzas), meaning no more than a dozen people”
“Deve essere possibile riscriverlo in un fine settimana”
U.M.: Pizza
U.M: Tempo
Dimensione di un microservice
U.M.: Complessità“Dipende dal grado di ottimizzazione e dall’obiettivo”
9. Introduzione ai microservices
Sistemi di comunicazione
9
01
REDIS
03
Rabbit MQ
02
API
04
Web Service
REDIS
DBMS NoSQL con estrema velocità che
utilizza la RAM, salvandoli in maniera
persistente successivamente; dispone
di una grande varietà di tipi di dato,
quindi i valori possono esser forme:
liste, dizionari stessi, e molto altro.
Broker di messaggistica che
i m p l e m e n t a i l p r o t o c o l l o
“Advanced Message Queuing
Protocol (AMQP)”. Il server è
scritto in Erlang e basato sul
framework Open Telecom Platform.
Sono disponibili diverse librerie
client per interfacciarsi a questo
broker per diversi linguaggi.
Application Programming Interface
Set di strumenti specifici per
l'espletamento di un determinato
compito all'interno di un certo
programma.
Web Services
Sistema software in grado di
mettersi al servizio di un
applicazione comunicando su di
una medesima rete tramite HTTP.
Un Web service consente quindi
alle applicazioni che vi si collegano
di usufruire delle funzioni che
mette a disposizione.