Padova, 8/11/2016 La rivoluzione dei microservizitullio/IS-1/2016/Seminari/microservizi.pdf · IDOC...

Post on 17-Feb-2019

217 views 0 download

Transcript of Padova, 8/11/2016 La rivoluzione dei microservizitullio/IS-1/2016/Seminari/microservizi.pdf · IDOC...

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

rendendoli più flessibili e più dinamici

Padova, 8/11/2016

La sfida

processi dati

sistema informativo aziendale

La sfida consiste nell'avere un sistema informativo in grado di cambiare

velocemente dove sia facile inserire nuovi processi e nuove sorgenti dati in tempi e

costi ridotti

Velocità

Com'è il sistema ora

applicativi esterni

sistema informativo aziendale

La maggior parte dei sistemi attualmente in uso è di tipo monolitico con processi e dati difficilmente modificabili se non con costi elevati. Tali sistemi

sono spesso integrati con altri applicativi di fornitori esterni sui quali si ha scarso accesso

Cosa vuol dire che un sistema è monolitico

Significa che il sistema è formato da un blocco unico di software o da un insieme ristretto di blocchi unici (applicativi esterni) che presi singolarmente offrono tante funzionalità ma che

sono difficilmente collegabili insieme. La natura del sistema rallenta i processi aziendali.

Come dovrebbe essere?

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

L'architettura è il cuore

E' l'architettura ad essere al centro di tutto perché permette di rendere interoperabili i componenti. E' attraverso l'architettura che il sistema è in grado di

offrire tutte le funzionalità.

Architettura a strati

Sorgenti di dati

Processi base

Processi di business

API

Applicativi

I microservizi come soluzione

Sorgenti di dati

MICROSERVIZI

MICROSERVIZI

API

Applicativi

Microservices - Componibilità

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

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

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

Microservices - Deployment

μS A

μS B

μS C

μS Main

Applicativo monolitico

Lib A Lib B Lib C

Microservices - Resilienza

Applicativo monolitico

Lib A Lib B Lib C

μS A

μS B

μS C

μS Main

μS C'

Microservices - Monitoring

Applicativo monolitico

Lib A Lib B Lib C

μS A

μS B

μS C

μS Main

LOG

Logger

Microservices - Cloud

Applicativo monolitico

Lib A Lib B Lib C

μS A

μS B

μS C

μS Main

● Startup nata nel 2008 2° classificata alla competizione Innovami Start Cup di Imola

● Ideatori di Jolie, linguaggio di programmazione orientato alla creazione e all’orchestrazione di MicroServizi

● dal 2016 parte di Gruppo Imola

Chi Siamo

Ricerca Tecnologia

AffiancamentoConsulenza

Prodotti

Cliente

MISSION● Fornire la tecnologia ed il supporto per la costruzione di Architetture a MicroServizi,

fondamentali nella programmazione di servizi web complessi● Progettare Architetture estremamente flessibili e implementabili anche su realtà piccole

e medie, che trovano un limite invalicabile nelle attuali tecnologie e nei costi necessari a sostenerle

Cosa offriamo

● Introduzione ed assistenza a Jolie:● Formazione● Consulenza

● Strumenti facilitatori per la realizzazione di sistemi microservices basati su Jolie:

● Jolie Enterprise● JSAP – suite di microservices per

l'integrazione con SAP● Sviluppo:

● Sviluppo di microservizi ed interfacce web

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

Perché un linguaggio?

ANNO 2016

Ho comprato uno smartphone nuovo con sistema operativo Android e connessione

ad internet

Perché un linguaggio?

ANNO 1800?

Ho comprato uno smartphone nuovo con sistema operativo Android e connessione

ad internet

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

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

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;}

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

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

18 A

NNI

UOM

O

TEO

RIA D

EI

LING

UAGG

I

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

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

Dall'applicazione monolitica...

...esecuzione come singola applicazione

...verso...

...eseguiti in due macchine

...i microservices

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

Importazione di codice Legacy

Legacy Code

Indipendenza

HTTP

SOAP

HTTPS

custom protocolSi possono sviluppare protocolli custom specifici

Perché usare Jolie?Perché è veloce!

● Jolie è lo strumento ideale per IT di qualsiasi dimensioni che abbiano l'ambizione di portarsi in casa tutto o parte dello sviluppo della propria architettura interna.

PROBLEMAHo un flusso da inserire nel mio sistema e mi servirebbe averlo entro brevissimo tempo

con Jolie posso iniziare lo sviluppo immediatamente dal problema

VANTAGGIOPosso permettermi di fare un'analisi di partenza più approssimata e di refinirla durante il processo

Perché usare Jolie?Perché è generale!

PROBLEMAHo necessità di orchestrare servizi già esistenti per portare a termine un flusso di controllo

con Jolie posso programmare orchestratori allo stesso modo con il quale programmo microservizi semplici!

VANTAGGIONon devo cambiare tecnologia e non mi servono competenze speciali per risolvere il problema

Perché usare Jolie?Perché è leggero!

PROBLEMAHo sviluppato la logica per il mio flusso, ora come faccio a metterlo in esecuzione?

con Jolie è sufficiente avere installata una JVM e l'interprete di Jolie per potre lanciare tutti i microservizi che desideri su una qualsiasi macchina

VANTAGGIODal punto di vista sistemistico ho meno problemi da dover gestire

L'interdipendenza tra linguaggi e supporti

Memorie meccaniche

0101010

1940

Assembler

1954Memorie elettroniche

Memorie TTL 1973

C

Multipiattaforma

Cloud 2010

1991

Java

IoT2030

Integrazione di sistemi con Jolie

Integrare sistemi

Business Unit

Timesheet

Ecommerce

Documents

Supplier app

SAP

La prima classe di problemi risolvibili con l'utilizzo di Jolie sono quelli di integrazione

Cosa significa integrare sistemi?L'integrazione di sistemi significa razionalizzare ed ingegnerizzare con un approccio sistematico e preciso l'insieme disomogeneo di

soluzioni nate per lo scambio di dati tra applicativi diversi

L'utilizzo di JolieOgni applicazione viene vista come un microservizio Jolie

Business Unit

Timesheet

Ecommerce

Documents

Supplier app

SAP

Come appare un sistema integrato complesso

Business UnitTimesheet EcommerceDocuments Supplier

appSAP

Control LayerOrchestrators and coordinators

API LayerPublic APIs for web and mobile apps

Prodotti

Jolie Enterprise

Jolie Enterprise è un tool che ti permette in modo agevole e semplice di fare deploy di microservizi tenendone monitorate le attività e ed il funzionamento

Tanti microservizi in macchine diverse

Pannello di controllo verso cui confluiscono tutti i dati di tutti i servizi

Macchine che ospitano I vari servizi. Possono essere sia macchine Linux che macchine Windows

Il sistema può essere eseguito su un'unica macchina o su più macchine come in questo esempio

L'architettura bassa

JECP

JECN

Linux OS

JECN

Windows OS

JECN

Linux OS

Il pannello di controllo

Funzionalità: avvio, stop, configurazione, test

Logging e Monitoring

Funzionalità: consultazione log, statistiche tempi e consumo memoria, possibilità di associare eventi

Perché usare Jolie Enterprise?

● Possibilità di amministrare i microservizi attivi sui diversi cloud node

● Soluzione di monitoring built-in senza necessità di avere strumenti in più

● Non vincolante dal punto di vista della messa in esecuzione dei microservizi

● Multipiattaforma

Il connettore JSAP

SAP

RFC client: permette di effettuare chiamate RFC verso SAP

IDOC client: permette di spedire documenti IDOC a SAP in modo sincrono

IDOC server:Permette di ricevere documenti IDOC da SAP in modo sincrono

RFC server:Permette di ricevere chiamate RFC da SAP

Il connettore per SAP ArchiveLink

SAP

Il servizio Jolie riceve documenti da SAP attraverso il suo modulo ArchiveLink

ArchiveLink

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

esterni... come il pensiero umano