20. The scale cube
X-axis scaling
N istanze della stessa applicazione con davanti un
load balancer
Z-axis scaling
N istanze della stessa applicazione, ciascuna
responsabile di un subset dei dati
Y-axis scaling
Decomposizione dell’applicazione in servizi, ciascuno
dei quali implementa una funzionalità
25
23. A microservice is an independent
software component that takes
no more than one iteration
to build and deploy
29
24. A microservice is an independent
software component that takes
no more than one iteration
to build and deploy
30
25. The essence of what a microservice
architecture is about is not really technical
or infrastructure related.
It's all about correctly identifying service
boundaries, service responsibilities, their
APIs, their collaborations
31
Chris Richardson
26. The essence of what a microservice
architecture is about is not really technical
or infrastructure related.
It's all about correctly identifying service
boundaries, service responsibilities, their
APIs, their collaborations
32
Chris Richardson
27. The essence of what a microservice
architecture is about is not really technical
or infrastructure related.
It's all about correctly identifying service
boundaries, service responsibilities, their
APIs, their collaborations
33
Chris Richardson
49. 55
Comunicazione sincrona
[...] is a style of communication where
the caller waits until a response is
available
Steve ha parlato di differenze tra approcci sincroni e paralleli in un talk del 2015.
Lo trovate qui: https://www.youtube.com/watch?v=dk-D3g2MD2U
56. Comunicazione Sincrona + Asincrona
62
Sincrona
Per le query (in lettura), che hanno bisogno
di risposta immediata
Asincrona
Per i comandi (ovvero le richieste di
esecuzione di cambio stato del sistema)
57. Soluzione a cui si arriva...
63
https://medium.com/design-microservices-architecture-with-patterns/microservices-asynchronous-messa
ge-based-communication-6643bee06123
59. Microservizi VS Monoliti
✅ Manutenzione / Test
✅ Disaccopiamento
✅ Deploy indipendenti
✅ Less Responsability
✅ Gestiti da team ridotti
✅ Scalabilità
✅ Facile evolvere stack
tecnologico
❌ Manutenzione/Test
❌ Complessità
❌ Hard deployment
❌ Scalabilità
❌ Difficile evolvere stack
tecnologico
60. Utilizziamo i microservizi?
• usare microservizi non è l’obiettivo
• esistono le precondizioni per introdurli?
• abbiamo test automatici?
• abbiamo deployment automatici?
• siamo pronti a livello infrastrutturale?
• Dont’t try to fly before you can walk
67
67. Abbondanza di Sistemi Operativi
75
Hypervisor
RE/Libs
OS
RE/Libs
OS
Sistema Operativo
Hardware
App
App App
68. L’avvento dei Container...
76
App
App App
App
App App
Hypervisor
RE/Libs
OS
RE/Libs
OS
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
69. Concetti non totalmente nuovi ...
77
Fonte: https://www.opensourceforu.com/2018/05/microservices-with-docker-and-kubernetes-an-overview/
72. Scalabilità
Wikipedia:
Scalability is the property of a system to handle a growing amount of
work by adding resources to the system
https://en.wikipedia.org/wiki/Scalability
73. Scalabilità
Wikipedia:
Scalability is the property of a system to handle a growing amount of
work by adding resources to the system
Steve:
Scalability is the property of a system to handle a growing amount
of work by adding a number of resources to the system which is
linearly proportional to the increased amount of requested work
https://en.wikipedia.org/wiki/Scalability
74. Scalabilità nel 2001 (in pratica)
82
Sistema Operativo
Hardware
Runtime Environment / Librerie
Sistema Operativo
Hardware
Runtime Environment / Librerie
Ecommerce Ecommerce
Load Balancer
75. Con i container...
83
Load Balancer
App
App App
Container Runtime
Sistema Operativo
Hardware
App
App App
Container Runtime
Sistema Operativo
Hardware
76. Continuando di questo passo...
84
Load Balancer
App
App App App
App App
App
App App
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
77. Continuando di questo passo...
85
Load Balancer
App
App App App
App App
App
App App
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
78. Continuando di questo passo...
86
Load Balancer
App
App App App
App App
App
App App
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
?
94. Fanno terminare gli altri :(
103
App
App
App App
App
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
Orchestrator
Load Balancer
122. Consigli
131
• Storage Esterno
• NON ricorrere a NFS
– lentezza
– non scala (prestazioni, conf)
– Locking
• Ricorrere a Object Storage
gestione a livello applicativo - ragionando in modo cloud native
123. Consigli
132
• Storage Esterno
• NON ricorrere a NFS
– lentezza
– non scala (prestazioni, conf)
– Locking
• Ricorrere a Object Storage
gestione a livello applicativo - ragionando in modo cloud native
Non sono novità!
124. Consigli
133
• Storage Esterno
• NON ricorrere a NFS
– lentezza
– non scala (prestazioni, conf)
– Locking
• Ricorrere a Object Storage
gestione a livello applicativo - ragionando in modo cloud native
127. Rimedio al pericolo #3
Avere tutto versionato
Dividere i cluster produzione / testing
Tentare aggiornamento sugli ultimi
Esternalizzare lo storage
131. Software ...
140
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
Orchestrator
Load Balancer
Clienti
Ordini
Prodotti
Magazzino
app
app
app
app
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
Container Runtime
Sistema Operativo
Hardware
Orchestrator
Load Balancer
138. Any organization that designs a system
(defined broadly) will produce a design
whose structure is a copy of the
organization's communication structure
155
Melvin E. Conway
142. Partecipa ai nostri eventi divulgativi
Iscriviti alla Mailing List
Al massimo 6 invii l’anno
http://eepurl.com/s3Kab
@mvlabsit
www.facebook.com/mvlabs