Copyright © 2012 NTT DATA Corporation
I N T R O D U C T I O N : C H I S I A M O
@simcellini
http://it.linkedin.com/pub/simone-cellini/61/574/313
@simone_gaddeo
https://it.linkedin.com/in/simone-gaddeo-8b5a22115
@CodemotionWorld @NTTDATA_IT #ce2017msa
I N T R O D U C T I O N : TA L K
Realizzare un’unica piattaforma che garantisce
«Omni-channel»
«Zero-downtime»
«Functional-decomposition»
«Auto-scaling»
E’ possibile?
S U M M A R Y
Business Opportunity
Introduction
Architectural Solution
Technology Solution
Demo
Conclusions
Q & A
B U S I N E S S O P P O R T U N I T Y : C U S T O M E R R E Q U I R E M E N T S
B U S I N E S S O P P O R T U N I T Y : C U S T O M E R E X P E C TAT I O N
Omni-channel
Monitoring
Flessibilità
Tempistiche
Diminuzione delle
tempistiche di
disservizio durante i
deployment
Flessibilità nel deployment e
nella manutenzione evolutiva
della piattaforma
Garanzia di
comportamenti
seamless. Si inizia un
customer journey su un
canale e si continua su
un altro
Monitoring applicativo
e supporto per il
troubleshooting
B U S I N E S S O P P O R T U N I T Y : C U S T O M E R C O N S T R A I N T S
Software Hardware
Business
Cloud
B U S I N E S S O P P O R T U N I T Y : P R O P O S A L
MicroService Architecture (MSA) è uno stile architetturale per lo sviluppo di una singola applicazione
come un insieme di microservizi. I microservizi sono dei servizi piccoli e autonomi, eseguiti come
processi distinti, che cooperano comunicando mediante meccanismi leggeri. La gestione centralizzata
è minima. Quindi ogni microservizio:
o Rappresenta una specifica capacità di business autocontenuta (bounded context)
o Presenta basso livello di accoppiamento con gli altri
o È progettato per sopravvivere al fallimento di altri servizi (Circuit Breaker)
o Deve avere interfaccia che facilita l’uso e massimizza il riuso (Smart endpoints and dumb pipes)
o È rilasciabile e scalabile indipendentemente dagli altri
o È assegnato ad un gruppo di lavoro piccolo (Two Pizza Team) e autonomo
o Può essere realizzato con tecnologie specifiche (polyglot programming) e avere la propria base dati
(polyglot persistence), con possibili migrazioni incrementali di natura diversa
A R C H I T E C T U R A L S O L U T I O N : O V E R V I E W
Desktop
Tablet Smartphone
Api Gateway
Caching Monitoring
Service Discovery
Legacy SystemLegacy System Legacy System
Microservices Microservices Microservices
Container
Api Management
Mantiene il registro di istanze in
esecuzione. Ogni istanza si
registra sul Service Discovery.
La richiesta viene instradata al
Microservices in base ad un
algoritmo bilanciato.
La soluzione proposta ha 3
livelli di cache:
• A livello di Api Gateway
• A livello di microservizio
composto
• A livello di singoli microservizi
Automatizzazione del
deployment e messa in
esercizio di una applicazione,
grazie alla astrazione dovuta
alla virtualizzazione del SO.
Componenti che permettono il
controllo ed il monitoraggio
dell’intera piattaforma. Il
monitoraggio è diviso in
monitoraggio applicativo e
monitoraggio di sistema.
Insieme di singoli servizi con
granularità molto fine. Questa
soluzione permette di avere
servizi indipendenti garantendo
un aumento dell’up-time grazie
all’independent deployment.
E’ il processo di pubblicazione,
documentazione e supervisione
di API in un ambiente sicuro e
scalabile. Informa l’Api Gateway
che è presente un nuovo
servizio.
Access point per diversi client
device-oriented. Le richieste
arrivano all’Api Gateway che
individua il servizio richiesto
applicando le policy configurate
(Autenticazione, ..)
API Gateway
Service Discovery Microservices
Caching
Monitoring
API Management
Container
A R C H I T E C T U R A L S O L U T I O N : D E TA I L
S C O U T I N G
API
Management
Omnichannel
Microservices
Containers
Trend commerciali, organizzativi,
architetturali, tecnologici e
infrastrutturali evolvono e si
intersecano.
Maturità non è ancora stata raggiunta
in alcuni ambiti, ma aziende di
successo adottano già da tempo
nuovi paradigmi e soluzioni
Aziende che intraprendono iniziative
di Digital Transformation devono
tener conto di questi trend.
T E C H N O L O G Y S O L U T I O N : A P I G AT E W AY
Per ogni richiesta viene controllata la possibilità di accedere alla risorsa
richiesta, in caso negativo la richiesta viene rigettata
In caso alcune risorse di Microservices siano in crisi, il carico viene
diminuito gradualmente fino al momento nel quale i sistemi ritornano in
piena efficienza
Vengono registrati diversi dati e metriche per il controllo del servizio in
produzione
E' possibile definire una capacità di richieste per singola risorsa e non
erogare tutte le richieste che superano questa quota
E' possibile ritornare direttamente risposte a livello di gateway senza
necessariamente effettuare routing verso i Microservices
Dinamicamente le richieste vengono ruotate ai diversi cluster di
Microservices con load balancing
Authentication
Authorization
Security
Routing
Resiliency
Monitoring
Quota
Caching
T E C H N O L O G Y S O L U T I O N : A P I G AT E W AY
F I LT E R S
Il ruolo centrale nel routing HTTP Request/Response è costituito dai filtri.
Ogni filtro possiede le seguenti caratteristiche:
• Type (fase di esecuzione all'interno del ciclo di vita della richiesta)
• PRE: Fase antecedente al routing verso la risorsa (ad es. Authentication, Authorization, Logging, etc...)
• ROUTING: Fase di routing della richiesta verso la risorsa (Es. via Apache HttpClient, Ribbon Netflix, etc...)
• POST: Fase di creazione della risposta (ad es. aggiunta di header alla response, statistiche e metriche,
etc...)
• ERROR: Fase eseguita se presente un errore in una delle precedenti fasi
• Execution Order (All'interno di un Type indica l'ordine di esecuzione del filtro)
• Criteria (Condizioni per le quali il filtro viene eseguito)
• Action(L'azione che deve essere eseguita se i Criteria sono rispettati)
SendResponse
CachePut
Stats
Post
Debug
Firewall
Validation
Authentication
Rewrite
CacheGet
Pre
Authorization
RouteRequest
Routing
HTTP
Request
Origin
Filters
T E C H N O L O G Y S O L U T I O N : A P I G AT E W AY
R E Q U E S T L I F E C Y C L E
HTTP
Response
T E C H N O L O G Y S O L U T I O N : S E R V I C E D I S C O V E R Y
EUREKA SERVER
Gestione del registro delle
istanze di servizi presenti
nell’architettura (Service
Registry)
Esposizione di API Rest
per le operazioni di
registrazione, de-
registrazione, fetching
informazioni istanze e
cancellazione
Propagazione delle
informazioni tra i diversi
nodi di Eureka Server
EUREKA CLIENT
Registra e de-registra
istanze di servizio su
Eureka Server
Mantiene la connessione
con il server Eureka
attraverso heartbeat
Recupera e mantiene
informazioni sui servizi dal
server Eureka
4. Get B
T E C H N O L O G Y S O L U T I O N : S E R V I C E D I S C O V E R Y
Service A or ApiGateway
Eureka Client
Service B
Eureka Client
Eureka Server
Ribbon
5. Call B
T E C H N O L O G Y S O L U T I O N : M I C R O S E R V I C E S
Caratteristiche principali
• Permette di sviluppare java stand-alone web applications
• Può utilizzare in modalità embedded diversi servlet
container: Tomcat, Jetty, etc
• Utilizza Spring Framework con configurazione automatica
• Offre funzionalità utili per l’ambiente di produzione: plugin
maven per packaging, possibilità di esternalizzare la
configurazione, possibilità di estrazione di varie metriche
Perché lo abbiamo scelto
• Permette di esporre facilmente servizi REST utilizzando
Spring MVC
• Utilizza Spring Framework che permette uno sviluppo
rapido seguendo le principali best-practices
• Possiede diversi adapters per integrare facilmente db
sql (mysql ,H2 ,Oracle) e no-sql (MongoDb, Cassandra,
ElasticSearch), ldap, cache (Redis , HazelCast), ecc.
Inoltre
• Abbiamo scelto di integrare manualmente Eureka Client senza utilizzare l’integrazione di Spring Cloud in modo da avere
una soluzione snella e indipendente che ci ha permesso di utilizzare Eureka Server e Zuul rilasciati direttamente da
Netflix
T E C H N O L O G Y S O L U T I O N : C O N TA I N E R
Build: Docker permette di comporre applicazioni, senza
preoccuparsi di inconsistenze tra vari ambienti
SHIP: Docker permette di progettare l’intero ciclo di
sviluppo dell’applicazione, e gestirlo con un’interfaccia
utente
Run: offre la possibilità di deployare servizi scalabili
I Container consentono di pacchettizzare
un’applicazione con tutte le parti necessarie (le librerie
e altre risorse correlate) e distribuirla come un unico
pacchetto. E’ un’applicazione eseguita in namespace
separati (network namespace, file system, users, IPC).
Livello di isolamento rafforzato da SELinux che
impedisce ai processi all’interno di un container di agire
all’esterno di esso. Condividono il kernel della
macchina host .
Le soluzioni per orchestrare i container sono
innumerevoli, Swarm è la proposta sviluppata dalla
startup Docker che si adatta facilmente ad ambienti
in cui già si opera con container Docker. Swarm
trasforma molti Docker Engine in un solo Docker
Engine virtuale. Le caratteristiche principali sono :
o Scheduling
o Re-Scheduling in caso di fallimento
o High Availability
o Discovery del servizio DNS-based
o Creazione master
o Aggiunta nodi al cluster
T E C H N O L O G Y S O L U T I O N : A P I M A N A G E M E N T
T E C H N O L O G Y S O L U T I O N : C A C H I N G
In memory data structure store che può essere utilizzato come Key-
Value nosql database, Caching system e Message broker.
Redis lavora con un dataset in memory che garantisce alte performance
High Availability via Redis Sentinel - Partitioning via Redis Cluster
E’ possibile eseguire più comandi in un’unica richiesta
Client per tutti i maggiori linguaggi di programmazione
Supporta varie strutture dati: Strings, Hashes, Lists, Sets, SortedSetsData Structures
High Performance
High Availability
Pipelining
Client
T E C H N O L O G Y S O L U T I O N : M O N I T O R I N G
Control
Asynchrony
Visualization
Key Features
• Data Collection
• Data Processing
• Data Aggregation
• Display Data
Application Output
Producer
Consumer
Data
Key Benefits
• Customer Marketing: analisi statistiche basate su User Experience
• IT-Operation: analisi statistiche sulle Performance
• Customer Product Manager: analisi applicative sul comportamento dello Stack’s
Soluzione completamente basata su pacchetti opensorce. I dati sono estratti dai Log Files senza nessun impatto sulle
performances. Fornisce statistiche, report e e supporto per analisi drill-down per la risoluzione dei malfunzionamenti
T E C H N O L O G Y S O L U T I O N : O V E R V I E W
Desktop
Tablet Smartphone
Api Gateway
Caching Monitoring
Service Discovery
Legacy SystemLegacy System Legacy System
Microservices Microservices Microservices
Container
Api Management
2323Copyright © 2015 NTT DATA Italia SpA
Development
process
Virtualized
environment
Skills
DevOps
• Communication
• Collaboration
• Integration
• Speed
• Efficiency
DevOps non è solo una
metodologia di sviluppo, ma
richiede anche un cambiamento
culturale. E’ basato su una stretta
collaborazione tra il Development
Team e IT Operation Team per
tutto il lifecycle del software, con
l’obiettivo di costruire, evolvere e
rendere resiliente il sistema ai
cambiamenti repentini ed
inaspettati.
“DevOps is a cross-disciplinary community of practice dedicated to the study of building,
evolving and operating rapidly-changing resilient systems at scale.”
T E C H N O L O G Y S O L U T I O N : L I F E C Y C L E A P P R O A C H
D E M O
B E N E F I T S
Fornisce un alto livello di QOS,
quando avviene il fallimento di un
singolo componente, questo non
impatta la stabilità dell’intero sistema
Assicura un alto livello di scalabilità
per ogni componente/servizio sulla
base delle variazioni del carico
Si possono utilizzare più linguaggi,
framework o tipi di data-storage
Poiché ogni servizio è autonomo, è
più facile effettuare hot deploy senza
creare disservizi
Avere online più versioni di uno
stesso servizio per garantire la retro-
compatibilità a tutti i client integrati
con la piattaforma
Facilità per mantenere e far evolvere
un sistema garantendo rapidità nei
cicli di Build/Test/Release per
aggiungere o modificare funzionalità
La soluzione è indipendente da
piattaforme complesse
La responsabilità di ogni singolo
microservizio è chiara e definita
C O N C L U S I O N S
C O N C L U S I O N S
Charles Darwin
Q & A
T H A N K Y O U

Moving from Monolithic to Microservice Architecture: an OSS based stack deployed in Production - Simone Cellini, Simone Gaddeo, Daniele Mannarino - Codemotion Rome 2017

  • 1.
    Copyright © 2012NTT DATA Corporation
  • 2.
    I N TR O D U C T I O N : C H I S I A M O @simcellini http://it.linkedin.com/pub/simone-cellini/61/574/313 @simone_gaddeo https://it.linkedin.com/in/simone-gaddeo-8b5a22115 @CodemotionWorld @NTTDATA_IT #ce2017msa
  • 3.
    I N TR O D U C T I O N : TA L K Realizzare un’unica piattaforma che garantisce «Omni-channel» «Zero-downtime» «Functional-decomposition» «Auto-scaling» E’ possibile?
  • 4.
    S U MM A R Y Business Opportunity Introduction Architectural Solution Technology Solution Demo Conclusions Q & A
  • 5.
    B U SI N E S S O P P O R T U N I T Y : C U S T O M E R R E Q U I R E M E N T S
  • 6.
    B U SI N E S S O P P O R T U N I T Y : C U S T O M E R E X P E C TAT I O N Omni-channel Monitoring Flessibilità Tempistiche Diminuzione delle tempistiche di disservizio durante i deployment Flessibilità nel deployment e nella manutenzione evolutiva della piattaforma Garanzia di comportamenti seamless. Si inizia un customer journey su un canale e si continua su un altro Monitoring applicativo e supporto per il troubleshooting
  • 7.
    B U SI N E S S O P P O R T U N I T Y : C U S T O M E R C O N S T R A I N T S Software Hardware Business Cloud
  • 8.
    B U SI N E S S O P P O R T U N I T Y : P R O P O S A L MicroService Architecture (MSA) è uno stile architetturale per lo sviluppo di una singola applicazione come un insieme di microservizi. I microservizi sono dei servizi piccoli e autonomi, eseguiti come processi distinti, che cooperano comunicando mediante meccanismi leggeri. La gestione centralizzata è minima. Quindi ogni microservizio: o Rappresenta una specifica capacità di business autocontenuta (bounded context) o Presenta basso livello di accoppiamento con gli altri o È progettato per sopravvivere al fallimento di altri servizi (Circuit Breaker) o Deve avere interfaccia che facilita l’uso e massimizza il riuso (Smart endpoints and dumb pipes) o È rilasciabile e scalabile indipendentemente dagli altri o È assegnato ad un gruppo di lavoro piccolo (Two Pizza Team) e autonomo o Può essere realizzato con tecnologie specifiche (polyglot programming) e avere la propria base dati (polyglot persistence), con possibili migrazioni incrementali di natura diversa
  • 9.
    A R CH I T E C T U R A L S O L U T I O N : O V E R V I E W Desktop Tablet Smartphone Api Gateway Caching Monitoring Service Discovery Legacy SystemLegacy System Legacy System Microservices Microservices Microservices Container Api Management
  • 10.
    Mantiene il registrodi istanze in esecuzione. Ogni istanza si registra sul Service Discovery. La richiesta viene instradata al Microservices in base ad un algoritmo bilanciato. La soluzione proposta ha 3 livelli di cache: • A livello di Api Gateway • A livello di microservizio composto • A livello di singoli microservizi Automatizzazione del deployment e messa in esercizio di una applicazione, grazie alla astrazione dovuta alla virtualizzazione del SO. Componenti che permettono il controllo ed il monitoraggio dell’intera piattaforma. Il monitoraggio è diviso in monitoraggio applicativo e monitoraggio di sistema. Insieme di singoli servizi con granularità molto fine. Questa soluzione permette di avere servizi indipendenti garantendo un aumento dell’up-time grazie all’independent deployment. E’ il processo di pubblicazione, documentazione e supervisione di API in un ambiente sicuro e scalabile. Informa l’Api Gateway che è presente un nuovo servizio. Access point per diversi client device-oriented. Le richieste arrivano all’Api Gateway che individua il servizio richiesto applicando le policy configurate (Autenticazione, ..) API Gateway Service Discovery Microservices Caching Monitoring API Management Container A R C H I T E C T U R A L S O L U T I O N : D E TA I L
  • 11.
    S C OU T I N G API Management Omnichannel Microservices Containers Trend commerciali, organizzativi, architetturali, tecnologici e infrastrutturali evolvono e si intersecano. Maturità non è ancora stata raggiunta in alcuni ambiti, ma aziende di successo adottano già da tempo nuovi paradigmi e soluzioni Aziende che intraprendono iniziative di Digital Transformation devono tener conto di questi trend.
  • 12.
    T E CH N O L O G Y S O L U T I O N : A P I G AT E W AY Per ogni richiesta viene controllata la possibilità di accedere alla risorsa richiesta, in caso negativo la richiesta viene rigettata In caso alcune risorse di Microservices siano in crisi, il carico viene diminuito gradualmente fino al momento nel quale i sistemi ritornano in piena efficienza Vengono registrati diversi dati e metriche per il controllo del servizio in produzione E' possibile definire una capacità di richieste per singola risorsa e non erogare tutte le richieste che superano questa quota E' possibile ritornare direttamente risposte a livello di gateway senza necessariamente effettuare routing verso i Microservices Dinamicamente le richieste vengono ruotate ai diversi cluster di Microservices con load balancing Authentication Authorization Security Routing Resiliency Monitoring Quota Caching
  • 13.
    T E CH N O L O G Y S O L U T I O N : A P I G AT E W AY F I LT E R S Il ruolo centrale nel routing HTTP Request/Response è costituito dai filtri. Ogni filtro possiede le seguenti caratteristiche: • Type (fase di esecuzione all'interno del ciclo di vita della richiesta) • PRE: Fase antecedente al routing verso la risorsa (ad es. Authentication, Authorization, Logging, etc...) • ROUTING: Fase di routing della richiesta verso la risorsa (Es. via Apache HttpClient, Ribbon Netflix, etc...) • POST: Fase di creazione della risposta (ad es. aggiunta di header alla response, statistiche e metriche, etc...) • ERROR: Fase eseguita se presente un errore in una delle precedenti fasi • Execution Order (All'interno di un Type indica l'ordine di esecuzione del filtro) • Criteria (Condizioni per le quali il filtro viene eseguito) • Action(L'azione che deve essere eseguita se i Criteria sono rispettati)
  • 14.
  • 15.
    T E CH N O L O G Y S O L U T I O N : S E R V I C E D I S C O V E R Y EUREKA SERVER Gestione del registro delle istanze di servizi presenti nell’architettura (Service Registry) Esposizione di API Rest per le operazioni di registrazione, de- registrazione, fetching informazioni istanze e cancellazione Propagazione delle informazioni tra i diversi nodi di Eureka Server EUREKA CLIENT Registra e de-registra istanze di servizio su Eureka Server Mantiene la connessione con il server Eureka attraverso heartbeat Recupera e mantiene informazioni sui servizi dal server Eureka
  • 16.
    4. Get B TE C H N O L O G Y S O L U T I O N : S E R V I C E D I S C O V E R Y Service A or ApiGateway Eureka Client Service B Eureka Client Eureka Server Ribbon 5. Call B
  • 17.
    T E CH N O L O G Y S O L U T I O N : M I C R O S E R V I C E S Caratteristiche principali • Permette di sviluppare java stand-alone web applications • Può utilizzare in modalità embedded diversi servlet container: Tomcat, Jetty, etc • Utilizza Spring Framework con configurazione automatica • Offre funzionalità utili per l’ambiente di produzione: plugin maven per packaging, possibilità di esternalizzare la configurazione, possibilità di estrazione di varie metriche Perché lo abbiamo scelto • Permette di esporre facilmente servizi REST utilizzando Spring MVC • Utilizza Spring Framework che permette uno sviluppo rapido seguendo le principali best-practices • Possiede diversi adapters per integrare facilmente db sql (mysql ,H2 ,Oracle) e no-sql (MongoDb, Cassandra, ElasticSearch), ldap, cache (Redis , HazelCast), ecc. Inoltre • Abbiamo scelto di integrare manualmente Eureka Client senza utilizzare l’integrazione di Spring Cloud in modo da avere una soluzione snella e indipendente che ci ha permesso di utilizzare Eureka Server e Zuul rilasciati direttamente da Netflix
  • 18.
    T E CH N O L O G Y S O L U T I O N : C O N TA I N E R Build: Docker permette di comporre applicazioni, senza preoccuparsi di inconsistenze tra vari ambienti SHIP: Docker permette di progettare l’intero ciclo di sviluppo dell’applicazione, e gestirlo con un’interfaccia utente Run: offre la possibilità di deployare servizi scalabili I Container consentono di pacchettizzare un’applicazione con tutte le parti necessarie (le librerie e altre risorse correlate) e distribuirla come un unico pacchetto. E’ un’applicazione eseguita in namespace separati (network namespace, file system, users, IPC). Livello di isolamento rafforzato da SELinux che impedisce ai processi all’interno di un container di agire all’esterno di esso. Condividono il kernel della macchina host . Le soluzioni per orchestrare i container sono innumerevoli, Swarm è la proposta sviluppata dalla startup Docker che si adatta facilmente ad ambienti in cui già si opera con container Docker. Swarm trasforma molti Docker Engine in un solo Docker Engine virtuale. Le caratteristiche principali sono : o Scheduling o Re-Scheduling in caso di fallimento o High Availability o Discovery del servizio DNS-based o Creazione master o Aggiunta nodi al cluster
  • 19.
    T E CH N O L O G Y S O L U T I O N : A P I M A N A G E M E N T
  • 20.
    T E CH N O L O G Y S O L U T I O N : C A C H I N G In memory data structure store che può essere utilizzato come Key- Value nosql database, Caching system e Message broker. Redis lavora con un dataset in memory che garantisce alte performance High Availability via Redis Sentinel - Partitioning via Redis Cluster E’ possibile eseguire più comandi in un’unica richiesta Client per tutti i maggiori linguaggi di programmazione Supporta varie strutture dati: Strings, Hashes, Lists, Sets, SortedSetsData Structures High Performance High Availability Pipelining Client
  • 21.
    T E CH N O L O G Y S O L U T I O N : M O N I T O R I N G Control Asynchrony Visualization Key Features • Data Collection • Data Processing • Data Aggregation • Display Data Application Output Producer Consumer Data Key Benefits • Customer Marketing: analisi statistiche basate su User Experience • IT-Operation: analisi statistiche sulle Performance • Customer Product Manager: analisi applicative sul comportamento dello Stack’s Soluzione completamente basata su pacchetti opensorce. I dati sono estratti dai Log Files senza nessun impatto sulle performances. Fornisce statistiche, report e e supporto per analisi drill-down per la risoluzione dei malfunzionamenti
  • 22.
    T E CH N O L O G Y S O L U T I O N : O V E R V I E W Desktop Tablet Smartphone Api Gateway Caching Monitoring Service Discovery Legacy SystemLegacy System Legacy System Microservices Microservices Microservices Container Api Management
  • 23.
    2323Copyright © 2015NTT DATA Italia SpA Development process Virtualized environment Skills DevOps • Communication • Collaboration • Integration • Speed • Efficiency DevOps non è solo una metodologia di sviluppo, ma richiede anche un cambiamento culturale. E’ basato su una stretta collaborazione tra il Development Team e IT Operation Team per tutto il lifecycle del software, con l’obiettivo di costruire, evolvere e rendere resiliente il sistema ai cambiamenti repentini ed inaspettati. “DevOps is a cross-disciplinary community of practice dedicated to the study of building, evolving and operating rapidly-changing resilient systems at scale.” T E C H N O L O G Y S O L U T I O N : L I F E C Y C L E A P P R O A C H
  • 24.
  • 25.
    B E NE F I T S Fornisce un alto livello di QOS, quando avviene il fallimento di un singolo componente, questo non impatta la stabilità dell’intero sistema Assicura un alto livello di scalabilità per ogni componente/servizio sulla base delle variazioni del carico Si possono utilizzare più linguaggi, framework o tipi di data-storage Poiché ogni servizio è autonomo, è più facile effettuare hot deploy senza creare disservizi Avere online più versioni di uno stesso servizio per garantire la retro- compatibilità a tutti i client integrati con la piattaforma Facilità per mantenere e far evolvere un sistema garantendo rapidità nei cicli di Build/Test/Release per aggiungere o modificare funzionalità La soluzione è indipendente da piattaforme complesse La responsabilità di ogni singolo microservizio è chiara e definita
  • 26.
    C O NC L U S I O N S
  • 27.
    C O NC L U S I O N S Charles Darwin
  • 28.
  • 29.
    T H AN K Y O U