soa, ddd e microservices

26
Microservice: SOA e DDD alla massima potenza The road to a Service Oriented Architecture is paved with a message based infrastructure

Upload: mauro-servienti

Post on 16-Apr-2017

638 views

Category:

Software


1 download

TRANSCRIPT

Page 1: SOA, DDD e microservices

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

Mauro ServientiSolution Architect @ Particular Software, makers of NServiceBus

[email protected]@mauroservienti

Microsoft MVP / Visual C#

Page 3: SOA, DDD e microservices

All I want to do when I wake up in the morning is…(cit. Rosanna, Toto, Toto IV)

Page 4: SOA, DDD e microservices

TicketOne

un biglietto

Stage dive… :-)

Page 5: SOA, DDD e microservices

Tutto quello che loro vogliono è…

Page 6: SOA, DDD e microservices

Mostrarmi i bigliettiPrenotare il posto

Farmi pagare

Assicurare i bigliettiSpedire

Gestire la loro “roba”

Page 7: SOA, DDD e microservices

In alcuni casi l’ordine è

importante…

in altri no…

Page 8: SOA, DDD e microservices

trovatel’inghippo

Page 9: SOA, DDD e microservices

Risorse diverse--

Diversi “owner”

Page 10: SOA, DDD e microservices

“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

…big ball of mud…Quando attraversiamo dei confini non

possiamo pretendere che le transazioni

funzionino

SOABoundariesare explicit

Page 12: SOA, DDD e microservices

Il DTC dimenticare dobbiamo

La compensazione accettare

idempotenza il nostro miglior amico

Page 13: SOA, DDD e microservices

Messages you wantMessages are

AtomicMessages are

UniqueEasily implements

Ledgersemantic

Page 14: SOA, DDD e microservices

Messaging PatternsPerché non tutta la comunicazione nasce uguale…

Page 15: SOA, DDD e microservices

Request/Response

Messaggio a qualcuno

Implica accoppiamento

Ci conosciamo

Page 16: SOA, DDD e microservices

Pub/Sub

Evento, passato, pubblicato

Meno accoppiamento

Se ti interessa sai chi pubblica

Page 17: SOA, DDD e microservices

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

Demo

Page 19: SOA, DDD e microservices

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

MicroservicesMy 2 cents…

Page 21: SOA, DDD e microservices

Una cagata pazzesca… (cit.)

Page 22: SOA, DDD e microservices

Possiamo chiamare quello che

abbiamo visto microservice?

Page 23: SOA, DDD e microservices

Il problema è:possiamo chiamare

qualsiasi cosa microservice

Page 24: SOA, DDD e microservices

microservice confonde

design e deploy

Page 25: SOA, DDD e microservices

Curiosi?

Free e-book available at:

http://go.particular.net/Liguria

Page 26: SOA, DDD e microservices

GrazieAndate e SOA-ificate il mondo :-)