soa, ddd e microservices
TRANSCRIPT
![Page 1: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/1.jpg)
Microservice: SOA e DDD alla massima
potenzaThe road to a
Service Oriented Architecture is paved with a message based infrastructure
![Page 2: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/2.jpg)
Mauro ServientiSolution Architect @ Particular Software, makers of NServiceBus
[email protected]@mauroservienti
Microsoft MVP / Visual C#
![Page 3: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/3.jpg)
All I want to do when I wake up in the morning is…(cit. Rosanna, Toto, Toto IV)
![Page 4: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/4.jpg)
TicketOne
un biglietto
Stage dive… :-)
![Page 5: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/5.jpg)
Tutto quello che loro vogliono è…
![Page 6: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/6.jpg)
Mostrarmi i bigliettiPrenotare il posto
Farmi pagare
Assicurare i bigliettiSpedire
Gestire la loro “roba”
![Page 7: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/7.jpg)
In alcuni casi l’ordine è
importante…
in altri no…
![Page 8: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/8.jpg)
trovatel’inghippo
![Page 9: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/9.jpg)
Risorse diverse--
Diversi “owner”
![Page 10: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/10.jpg)
“Transaction boundaries”• Dal punto di vista utente: una singola operazione• Dal punto di vista del sistema: operazioni multiple
• Che dovrebbero essere “atomic”
• La Transazione di Business varca molti confini• Dialogo con il teatro per bloccare I posti• La carta di credito• L’assicurazione dei biglietti• La spedizione• La “roba” interna
• Alla fine finisce sempre in una…
![Page 11: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/11.jpg)
…big ball of mud…Quando attraversiamo dei confini non
possiamo pretendere che le transazioni
funzionino
SOABoundariesare explicit
![Page 12: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/12.jpg)
Il DTC dimenticare dobbiamo
La compensazione accettare
idempotenza il nostro miglior amico
![Page 13: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/13.jpg)
Messages you wantMessages are
AtomicMessages are
UniqueEasily implements
Ledgersemantic
![Page 14: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/14.jpg)
Messaging PatternsPerché non tutta la comunicazione nasce uguale…
![Page 15: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/15.jpg)
Request/Response
Messaggio a qualcuno
Implica accoppiamento
Ci conosciamo
![Page 16: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/16.jpg)
Pub/Sub
Evento, passato, pubblicato
Meno accoppiamento
Se ti interessa sai chi pubblica
![Page 17: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/17.jpg)
Tickets reservation service
Tickets reservation service
Order management service
Order management service
Tickets reservation service
Credit Card service
Marketing service
Other stuff
Buy ticket
Charge Card
Ticket reserved
Reserve Tickets
![Page 18: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/18.jpg)
Demo
![Page 19: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/19.jpg)
Riepilogo• Meno accoppiamento, zero è impossibile• Se rispettate I confini
• Nessun accoppiamento temporale• I messaggi sono asincorni
• Molti meno mal di testa: manutenzione e deploy• Componenti autonomi
• Scale-out facile• “competing consumers”
• Consegna garantita• Con gestione degli errori
![Page 20: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/20.jpg)
MicroservicesMy 2 cents…
![Page 21: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/21.jpg)
Una cagata pazzesca… (cit.)
![Page 22: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/22.jpg)
Possiamo chiamare quello che
abbiamo visto microservice?
![Page 23: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/23.jpg)
Il problema è:possiamo chiamare
qualsiasi cosa microservice
![Page 24: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/24.jpg)
microservice confonde
design e deploy
![Page 25: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/25.jpg)
Curiosi?
Free e-book available at:
http://go.particular.net/Liguria
![Page 26: SOA, DDD e microservices](https://reader035.vdocument.in/reader035/viewer/2022062401/586f6f471a28ab10258b4765/html5/thumbnails/26.jpg)
GrazieAndate e SOA-ificate il mondo :-)