56
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 Microservizi scenari del prossimo e del lontano futuro 1 Saverio Giallorenzo

Microservizi, scenari del prossimo e del lontano futuro

Embed Size (px)

Citation preview

Page 1: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Microservizi scenari del prossimo e del lontano futuro

1

Saverio Giallorenzo

Page 2: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | San Francisco | September Microservices Meetup

Buon Pomeriggio

2

Saverio

Post-doc presso il Dipartimento di Informatica - Scienza e Ingegneria dell’Università di Bologna.

Tematiche di ricerca:- Programmazione concorrente

e distribuita;- Coreografie, Tipi Sessione e

Algebre di Processi.- Microservizi;- Jolie;

Page 3: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Microservizi scenari del prossimo e del lontano futuro

3

Saverio Giallorenzo

WARNINGMAY CONTAIN

CHOREOGRAPHIES

Page 4: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

I Limiti di oggi

4

There is no effort without error and

shortcoming.“Citizenship in a Republic”, Theodore Roosevelt, 1910

Page 5: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

I Limiti di oggi

4

There is no effort without error and

shortcoming.

innovation

“Citizenship in a Republic”, Theodore Roosevelt, 1910

Page 6: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Programmazione distribuita5

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

Page 7: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Programmazione distribuita5

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Cosa c’è qua dentro (e.g., error tracing)?

Vendite Magazzino Spedizioni

Page 8: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Programmazione distribuita5

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Cosa c’è qua dentro (e.g., error tracing)?

Funzionalità interna?O del corriere? Docs/APIs?

Vendite Magazzino Spedizioni

Page 9: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Programmazione distribuita5

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Cosa c’è qua dentro (e.g., error tracing)?

Funzionalità interna?O del corriere? Docs/APIs?

Vendite Magazzino Spedizioni

Page 10: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Programmazione distribuita5

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Cosa c’è qua dentro (e.g., error tracing)?

Funzionalità interna?O del corriere? Docs/APIs?

In serie o parallelo?

Vendite Magazzino Spedizioni

Page 11: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

“Non è un mio problema”6

Direzione

Vendite

MagazzinoSpedizioni

Page 12: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

“Non è un mio problema”6

Direzione

Vendite

MagazzinoSpedizioni

Big Picture

Page 13: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

“Non è un mio problema”6

Direzione

Vendite

MagazzinoSpedizioni

Big Picture

Golfo dell’ esecuzione

Page 14: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

“Non è un mio problema”6

Direzione

Vendite

MagazzinoSpedizioni

Big Picture

Micro-gestione

Golfo dell’ esecuzione

Page 15: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

“Non è un mio problema”6

Direzione

Vendite

MagazzinoSpedizioni

Big Picture

Micro-gestione

Golfo dell’ esecuzione

Coordinamento?Responsabilità?

Page 16: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

“Non è un mio problema”6

Direzione

Vendite

MagazzinoSpedizioni

Big Picture

Micro-gestione

Golfo dell’ esecuzione Golfo della

Valutazione

Coordinamento?Responsabilità?

Page 17: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

“Non è un mio problema”6

Direzione

Vendite

MagazzinoSpedizioni

Big Picture

Micro-gestione

Golfo dell’ esecuzione Golfo della

Valutazione

Coordinamento?Responsabilità?

Page 18: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Architetture scalabili7

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

WebServer

WebServer

GestoreOrdini

GestioneOrdini

GestioneOrdini

GestioneOrdini

preventivo

tracking

?

Page 19: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Architetture scalabili7

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

WebServer

WebServer

GestoreOrdini

GestioneOrdini

GestioneOrdini

GestioneOrdini

preventivo

tracking

?

=

Page 20: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Architetture scalabili7

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

WebServer

WebServer

GestoreOrdini

GestioneOrdini

GestioneOrdini

GestioneOrdini

preventivo

tracking

?

ricollegare le frecce ad ogni “scalata”=

Page 21: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Architetture scalabili7

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

WebServer

WebServer

GestoreOrdini

GestioneOrdini

GestioneOrdini

GestioneOrdini

preventivo

tracking

?

ricollegare le frecce ad ogni “scalata”=

Page 22: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Architetture scalabili7

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

WebServer

WebServer

GestoreOrdini

GestioneOrdini

GestioneOrdini

GestioneOrdini

preventivo

tracking

?

ricollegare le frecce ad ogni “scalata”=

Page 23: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Uno sguardo al futuro Programmazione Coreografica

8

Page 24: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Enter AIOCJ

9

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale )

Page 25: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Visione Architetturale

10

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale )

Page 26: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Visione Architetturale

10

Client Vendite SpedizioniMagazzino

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale )

Page 27: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Visione Architetturale

10

Client Vendite SpedizioniMagazzino

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale )

Page 28: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 11

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

include controlloDisp from “socket://magazzino:8000"

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale );

disp@Magazzino = controlloDisp( materiale )

Page 29: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 11

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

include controlloDisp from “socket://magazzino:8000"

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale );

disp@Magazzino = controlloDisp( materiale )

Cosa c’è qua dentro

Page 30: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 11

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

include controlloDisp from “socket://magazzino:8000"

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale );

disp@Magazzino = controlloDisp( materiale )

Cosa c’è qua dentro

Page 31: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 11

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

include controlloDisp from “socket://magazzino:8000"

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale );

disp@Magazzino = controlloDisp( materiale )

Cosa c’è qua dentro

Page 32: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 11

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

include controlloDisp from “socket://magazzino:8000"

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale );

disp@Magazzino = controlloDisp( materiale )

Cosa c’è qua dentro

Page 33: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Visione Architetturale

12

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

Client Vendite SpedizioniMagazzinoCliente

Page 34: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Visione Architetturale

12

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

Client Vendite SpedizioniMagazzino

Funzione controlloDisp

Cliente

Page 35: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 13

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

include controlloDisp from “socket://magazzino:8000”

include calcPreventivo from “socket://vendite:8001"

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale );

disp@Magazzino = controlloDisp( materiale );if ( disp )@Magazzino {

preventivo@Vendite = calcPreventivo( ordine );

invio_prev: Vendite( preventivo ) -> Cliente( preventivo );

} else {

prodotto_non_disp: Vendite() -> Cliente()

}

Page 36: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 13

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

include controlloDisp from “socket://magazzino:8000”

include calcPreventivo from “socket://vendite:8001"

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale );

disp@Magazzino = controlloDisp( materiale );if ( disp )@Magazzino {

preventivo@Vendite = calcPreventivo( ordine );

invio_prev: Vendite( preventivo ) -> Cliente( preventivo );

} else {

prodotto_non_disp: Vendite() -> Cliente()

}

Page 37: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 13

Vendite Magazzino Spedizioni

richiestapreventivo

confermadisponibilità

optinvio

preventivo

prodotti nondisponibili

optapprovazionepreventivo

annullamentopreventivo

inoltro ordineinvio ordine

invio tracking code

conferma ricezione

confermaconsegna

Vendite Magazzino Spedizioni

include controlloDisp from “socket://magazzino:8000”

include calcPreventivo from “socket://vendite:8001"

ordine@Cliente = getInput( "Inserire richiesta prodotti" );

richiesta_prev: Cliente( ordine ) -> Vendite( ordine );

conferma_disp: Vendite( ordine ) -> Magazzino( materiale );

disp@Magazzino = controlloDisp( materiale );if ( disp )@Magazzino {

preventivo@Vendite = calcPreventivo( ordine );

invio_prev: Vendite( preventivo ) -> Cliente( preventivo );

} else {

prodotto_non_disp: Vendite() -> Cliente()

}

Page 38: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix

14

Why not peer to peer choreography?

Page 39: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix

We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:

14

Why not peer to peer choreography?

Page 40: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix

We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:

Process flows are “embedded” within the code of multiple application.

14

Why not peer to peer choreography?

Page 41: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix

We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:

Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.

14

Why not peer to peer choreography?

Page 42: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix (cont’d)

15

Why not peer to peer choreography?

We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:

Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.

Page 43: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix (cont’d)

15

Why not peer to peer choreography? Vero se si lascia il dominio delle

coreografie. Facendo un parallelo, sarebbe come scrivere in C e cercare di modificare il codice assembly compilato.

We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:

Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.

Page 44: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix (cont’d)

15

Why not peer to peer choreography? Vero se si lascia il dominio delle

coreografie. Facendo un parallelo, sarebbe come scrivere in C e cercare di modificare il codice assembly compilato.

Vero il contrario. Le coreografie aiutano a rendere chiare le funzioni (I/Os).

We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:

Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.

Page 45: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix (cont’d)

15

Why not peer to peer choreography? Vero se si lascia il dominio delle

coreografie. Facendo un parallelo, sarebbe come scrivere in C e cercare di modificare il codice assembly compilato.

Vero il contrario. Le coreografie aiutano a rendere chiare le funzioni (I/Os). Le coreografie scritte in AIOCJ si possono adattare a runtime!

We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:

Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.

Page 46: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Netflix (cont’d)

15

Why not peer to peer choreography? Vero se si lascia il dominio delle

coreografie. Facendo un parallelo, sarebbe come scrivere in C e cercare di modificare il codice assembly compilato.

Vero il contrario. Le coreografie aiutano a rendere chiare le funzioni (I/Os). Le coreografie scritte in AIOCJ si possono adattare a runtime!

We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:

Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.

Page 47: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Visione Architetturale (Part II)

16

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

Client Vendite SpedizioniMagazzinoCliente

Page 48: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 17

Vendite Magazzino Spedizioni

WebServer

CRM

GestoreOrdini

GestioneMateriale

GestioneOrdini

GestioneSpedizioni

TrackingSpedizioni

Cliente Vendite SpedizioniMagazzino

WebServerWeb

Server

GestoreOrdiniGestoreOrdini

Load Balancer

Circuit Breaker

WebGateway

Visione Architetturale (Part III)

Page 49: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 18

There is no effort without error and

shortcoming.

innovation

“Citizenship in a Republic”, Theodore Roosevelt, 1910

I Limiti di Oggi

Page 50: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 18

There is no effort without error and

shortcoming.

innovation

“Citizenship in a Republic”, Theodore Roosevelt, 1910

Page 51: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 18

There is no effort without error and

shortcoming.

innovation

“Citizenship in a Republic”, Theodore Roosevelt, 1910

Lo Standard diDomani

Page 52: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 18

There is no effort without error and

shortcoming.

innovation

“Citizenship in a Republic”, Theodore Roosevelt, 1910

Lo Standard diDomani

Page 53: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

La programmazione distribuita è (più) semplice;

18

There is no effort without error and

shortcoming.

innovation

“Citizenship in a Republic”, Theodore Roosevelt, 1910

Lo Standard diDomani

Page 54: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

La programmazione distribuita è (più) semplice;

Responsabilità e APIs formali;

18

There is no effort without error and

shortcoming.

innovation

“Citizenship in a Republic”, Theodore Roosevelt, 1910

Lo Standard diDomani

Page 55: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

La programmazione distribuita è (più) semplice;

Responsabilità e APIs formali;

Architetture scalabili e affidabili.

18

There is no effort without error and

shortcoming.

innovation

“Citizenship in a Republic”, Theodore Roosevelt, 1910

Lo Standard diDomani

Page 56: Microservizi, scenari del prossimo e del lontano futuro

[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016

Grazie dell’Attenzione

19

Domande: Saverio( ? ) -> MoM2016( ! )