La rivoluzione dei Microservizi

41
La rivoluzione dei microservizi Il nuovo paradigma di progettazione architetturale che cambierà i vostri sistemi IT rendendoli più flessibili e più dinamici Meeting On Microservices - Bologna, 20/12/2016

Transcript of La rivoluzione dei Microservizi

Page 1: La rivoluzione dei Microservizi

La rivoluzione dei microserviziIl nuovo paradigma di progettazione architetturale che cambierà i vostri sistemi IT

rendendoli più flessibili e più dinamici

Meeting On Microservices - Bologna, 20/12/2016

Page 2: La rivoluzione dei Microservizi

Ricerca Tecnologia

AffiancamentoConsulenza

Prodotti

Cliente

Page 3: La rivoluzione dei Microservizi

Il Sistema Informativo al centro

Processi Organizzativi Dati Organizzativi

Organizzazione

Contesto economico

Strategie di Business

Page 4: La rivoluzione dei Microservizi

Serve capacità di adattamentoContesto economico

1)Riduzione della visibilitàa lungo termine.

2) Internet come piazza abilitanteal commercio

1) Aumento della pressione esterna

2) Richiesta di maggiore capacità di adattamento in tempi brevi

Interveniamo qui

Page 5: La rivoluzione dei Microservizi

Com'è il sistema ora…

Sistema amministrativo

WebDati Specifici di

Applicazioni terze

Il sistema amministrativo è spesso il cuore dell'IT

I processi ed i dati organizzativi ITsi trovano sparsi in diverse porzioni del sistema:1) Dentro il sistema amministrativo2) Nei processi di integrazione3) Dentro applicativi di terze parti

I processi ed i dati organizzativi ITsi trovano sparsi in diverse porzioni del sistema:1) Dentro il sistema amministrativo2) Nei processi di integrazione3) Dentro applicativi di terze parti

La gestione dei processi organizzativi così come la gestione dei dati, richiede impegno in terminidi:

1) Tempo2) Risorse umane3) Risorse economiche

(Consulenze, prodotti,...)

Page 6: La rivoluzione dei Microservizi

Come dovrebbe essere?

Un sistema altamente adattivo e flessibile dovrebbe essere composto da tanti componenti interdipendenti ciascuno dei quali offre funzionalità ben delineate

Page 7: La rivoluzione dei Microservizi

Architettura logica a strati

Sorgenti di dati

Processi base

Processi di business

API

Applicativi

Page 8: La rivoluzione dei Microservizi

La scalabilità?

Un sistema flessibile dovrebbe essere in grado di scalare linearmente rispetto al carico a cui è sottoposto così da essere in grado di scalare linearmente anche i

suoi costi.

utilizzatori

costi

Page 9: La rivoluzione dei Microservizi

I Microservices

Applicativo monolitico

Lib A Lib B Lib C

μS A

μS B

μS C

μS MainApplicativo monolitico

Lib A Lib B Lib C

μS A

μS B

μS C

μS MainApplicativo monolitico

Lib A Lib B Lib C

μS A

μS B

μS C

μS Main

MONOLITICO vs DISTRIBUITO

Page 10: La rivoluzione dei Microservizi

Microservices - Riusabilità

Applicativo monolitico A

Lib A Lib B Lib C

Applicativo monolitico B

Lib A Lib B Lib C

Lib A Lib B Lib C Sorgenti μS A μS B μS C

μS Main A μS Main B

Page 11: La rivoluzione dei Microservizi

Microservices - Scalabilità

μS A

μS B

μS C

μS Main

Applicativo monolitico

Lib A Lib B Lib CApplicativo monolitico

Lib A Lib B Lib CApplicativo monolitico

Lib A Lib B Lib C

μS B

μS C

μS Main

μS B

μS B

Page 12: La rivoluzione dei Microservizi

Microservices - Deployment

μS A

μS B

μS C

μS Main

Applicativo monolitico

Lib A Lib B Lib C

Page 13: La rivoluzione dei Microservizi

Microservices Resistenza agli errori

Applicativo monolitico

Lib A Lib B Lib C

μS A

μS B

μS C

μS Main

μS C'

Page 14: La rivoluzione dei Microservizi

Microservices - Monitoring

Applicativo monolitico

Lib A Lib B Lib C

μS A

μS B

μS C

μS Main

LOG

Logger

Page 15: La rivoluzione dei Microservizi

I microservizi come soluzione

Sorgenti di dati

MICROSERVIZI

MICROSERVIZI

API

Applicativi

Page 16: La rivoluzione dei Microservizi

Jolie

Java Orchestration Language Interpreter Engine, nasce come alternativa al linguaggi di orchestrazione per web service WS-BPEL

● Semplificandone la gestione ● Non richiede la presenza di motori di esecuzione dedicati ● La definizione non è definita mediante xml ma è scritta in linguaggio nativo

eseguito dall’interprete● Estendendone le funzionalità

● Possibilità di integrare logica applicativa Java● Possibilità di utilizzare il linguaggio per implementare microservizi● Orchestrazione di Web Service Soap, Rest, Jolie

Page 17: La rivoluzione dei Microservizi

Perché un linguaggio?

ANNO 2016

Ho comprato uno smartphone nuovo con sistema operativo Android e connessione

ad internet

Page 18: La rivoluzione dei Microservizi

Perché un linguaggio?

ANNO 1800?

Ho comprato uno smartphone nuovo con sistema operativo Android e connessione

ad internet

Page 19: La rivoluzione dei Microservizi

Perché un linguaggio?

ANNO 1800?

Ho acquistato un oggetto grande quanto un libro di piccole dimensioni la cui copertina straordinariamente lucida e variopinta è in grado di mostrare immagini così

ben definite da apparire quasi rappresentazioni della realtà, ma questo è nulla poiché è sufficiente sfiorare

tale oggetto con un dito per innescare un meccanismo quasi diabolico in grado di fare udire la mia voce ad una

persona all'altro capo del mondo in tempo reale così che io possa comunicare con lei una volta acquisito un numero che mi permette di riconoscerla tra tutti.

L'oggetto è nuovo con sistema operativo Android e connessione ad internet

Page 20: La rivoluzione dei Microservizi

Il linguaggio fa guadagnare TEMPO e SPAZIO

oggetto grande quanto un libro di piccole dimensioni la cui copertina

straordinariamente lucida e variopinta è in grado di mostrare

immagini così ben definite da apparire quasi rappresentazioni della

realtà, ma questo è nulla poiché è sufficiente sfiorare tale oggetto con un dito per innescare un meccanismo quasi diabolico in grado di fare udire la mia voce ad una persona all'altro capo del mondo in tempo reale così che io possa comunicare con lei una

volta acquisito un numero che mi permette di riconoscerla tra tutti.

smartphone

Page 21: La rivoluzione dei Microservizi

Il linguaggi di programmazione

010101000101000100100100100101000101000010100100100101001010101001010010010100100101010001010001001001001001010001010000101001001001010010101010010100100101001001010100010100010010010010010100010100001010010010010100101010100101001001010010010101000101000100100100100101000101000010100100100101001010101001010010010100100101010001010001001001001001010001010000

MACCHINA

ORG 2050H MOV DPTR,#CNTMOV A,#INITMOVX @DPTR,AMOV SP,#2FH CLR RS0CLR RS1 ACALL SERIALMOVDPTR,#HEADINGACALL STRINGORG 2050H MOV DPTR,#CNTMOV A,#INITMOVX @DPTR,AMOV SP,#2FH CLR RS0

ASSEMBLER C

MENO ERRORI UMANI

int main(){ int n, sum = 0, c, value; printf("Enter the number of integers "); scanf("%d", &n); printf("Enter %d integers\n",n); for (c = 1; c <= n; c++) { scanf("%d",&value); sum = sum + value; } printf("Sum of entered integers = %d\n",sum); return 0;}

Page 22: La rivoluzione dei Microservizi

Un vantaggio concreto

● Il primo compilatore completo fu creato dall'equippe di John. W. Backus presso i laboratori IBM nel 1957. Era un compilatore FORTRAN. Ci vollero ben

● 18 anni uomo per realizzarlo.● Al tempo non era stata ancora sviluppata la

teoria dei linguaggi. ● Oggi in molte università, viene data la creazione

di un compilatore come esercizio d'esame. John. W. Backus

Page 23: La rivoluzione dei Microservizi

I tre vantaggi competitivi di Jolie

1)1) ParadigmaticitàParadigmaticità: : il programmatore scrive e pensa direttamente a microservizi.

2)2) Autosufficienza:Autosufficienza: non sono necessari tool aggiuntivi non sono necessari tool aggiuntivi

per la messa in esecuzione di un microservizio Jolieper la messa in esecuzione di un microservizio Jolie

3)3) Indipendenza:Indipendenza: un microservizio jolie non è legato a un microservizio jolie non è legato a nessun protocollo di comunicazione in particolarenessun protocollo di comunicazione in particolare

Page 24: La rivoluzione dei Microservizi

Paradigmaticità

Il programmatore programma e progetta l'architettura a microservizi in unico passaggio poiché il linguaggio fornisce tutti gli strumenti base per la creazione e manipolazione dei

microservizi.Conseguenza importante: durante la programmazione il programmatore si

disinteressa di come dovranno essere eseguiti i microservizi

Page 25: La rivoluzione dei Microservizi

Dall'applicazione monolitica...

...esecuzione come singola applicazione

Page 26: La rivoluzione dei Microservizi

...verso...

...eseguiti in due macchine

Page 27: La rivoluzione dei Microservizi

...i microservices

Page 28: La rivoluzione dei Microservizi

AutosufficienzaUn servizio Jolie necessita solamente di

una Java Virtual Machine per funzionare

Non sono necessari framework aggiuntivi per il suo funzionamento

No application server, No web server

Page 29: La rivoluzione dei Microservizi

Importazione di codice Legacy

Legacy Code

Page 30: La rivoluzione dei Microservizi

Indipendenza

HTTP

SOAP

HTTPS

custom protocolSi possono sviluppare protocolli custom specifici

Page 31: La rivoluzione dei Microservizi

L'interdipendenza tra linguaggi e supporti

Memorie meccaniche

0101010

1940

Assembler

1954Memorie elettroniche

Memorie TTL 1973

C

Multipiattaforma

Cloud 2010

1991

Java

IoT2030

Page 32: La rivoluzione dei Microservizi

Le due vie ai microserviziProgrammazione: dal punto di vista della programmazione la sfida è quella di trovare nuovi linguaggi in grado di catturarne l'essenza.

Linguaggio è la parola chiave.

Diciamo che questa via segue il paradigma linguistico

Sistemi: dal punto di vista dei sistemi, i microservizi possono essere visti come applicazioni indipendenti in grado di servire più richieste. Sono eseguiti all'interno di artefatti chiamati containers.

Container é la parola chiave.

Diciamo che questa via segue il paradigma sistemistico.

Page 33: La rivoluzione dei Microservizi

Paradigma Sistemisticovs

Paradigma LingusticoIl paradigma linguistico si basa sull'idea che i principi fondazionali della programmazione a microservizi possano essere condensato in un unico linguaggio.

Non è importante come venga eseguito un microservizio, la cosa importante è che ogni singola unità programmabile sia un microservizio.

Il paradigma sistemistico, è basato sui contaner e parte dall'idea che:

Non è importante come un microservizio è realizzato, la cosa più importante è che il microservizio sia eseguito all'interno di un container che può essere spostato, rimpiazzato o scalato.

Page 34: La rivoluzione dei Microservizi

Catena produttiva del software

DESIGN

Paradigma sistemistico Paradigma linguistico

DEVELOPMENT

PACKAGING

DEPLOYMENT

Il progettista pensa a microservizi Il progettista pensa a microservizi

Lo sviluppatore programmaseguendo un altro paradigma(oggetti, funzionale, ecc)

Il programmatore sviluppadirettamente a microservizi

Lo sviluppatore trasforma il suo artefatto software in un microservizioUtilizzando tool e frameworkaggiuntivi

Lo sviluppatore esegue il microservizio in un container

Lo sviluppatore può eseguire il microservizio in un container

(non necessario)

Page 35: La rivoluzione dei Microservizi

I confini di un microservizioParadigma Sistemistico Paradigma Lingustico

Un microservizio può essere il risultato della composizione di

altri microservizi

Un microservizio è un artefatto software sviluppato con un dato insieme di tecnologie

ed impachettato all'interno di un container

I microservizi sono atomici All'interno di un microservizio possono esserci altri microservizi

Page 36: La rivoluzione dei Microservizi

L'architetturaParadigma Sistemistico Paradigma linguistico

Un'architettura a microservizi è una rete di containers

Un'architettura a microservizi è una composizione di microservizi

Page 37: La rivoluzione dei Microservizi

L'architetturaParadigma Sistemistico Paradigma Linguistico

A microservice can be easily moved from inside to outside of a container (and vice

versa)

In order to bring an internal component out of a microservice, a specific programming

task must be carried out

X

Page 38: La rivoluzione dei Microservizi

Containers

Paradigma Sistemistico Paradigma Linguistico

Il container è solamente uno strumento che per l'esecuzione

Il Container è l'elemento chiave dell'archtettura

Page 39: La rivoluzione dei Microservizi

Vantaggi

Paradigma Sistemistico Linguistic paradigm

Indipendenza dallaTecnologia

Le architetture possono cambiare in modo semplice ricomponendo i

microservizi

Esecuzione semplice e scalabile

La progettazione a microservizi si traduce immediatamente in

programmazione nativa

Compatibile con lo stack del Cloud Computing

Compatibile con il paradigma sistemistico

Page 40: La rivoluzione dei Microservizi

La rivoluzione dei microservizi

Paradigma Linguistico

La rivoluzione si trova nell'intersezione tra questi due mondi

Paradigma sistemistico

Page 41: La rivoluzione dei Microservizi

Un sistema software complesso non è mai un'entità statica ma è soggetto a continue modifiche per potersi adattare agli stimoli

esterni... come il pensiero umano