SlideShare a Scribd company logo
1 of 43
Download to read offline
MICROSERVICES
FAVORIRE I "FEATURE TEAMS" CON ARCHITETTURE
@giulioroggero
agilereloaded.it
ANY ORGANIZATION THAT DESIGNS A
SYSTEM … WILL INEVITABLY PRODUCE A
DESIGN WHOSE STRUCTURE IS A COPY OF
THE ORGANIZATION'S COMMUNICATION
STRUCTURE.
Melvin Conway, 1968
foto - dani andcoconut
http://www.melconway.com/research/committees.html
TEXT
SAM NEWMAN SCRIVE
“Organizations for a few years now have understood this link between organizational
structure and software they create, and have been embracing new structures in order to
achieve the outcome they want. Netflix and Amazon for example structure themselves
around multiple small teams, each one with responsibility for a small part of the overall
system. These independent teams can own the whole lifecycle of the services they
create, affording them a greater degree of autonomy than is possible for larger teams
with more monolithic codebases. These services with their independent concerns can
change and evolve separately from one another, resulting in the ability to deliver
changes to production faster. If these organizations had adopted larger team sizes, the
larger monolithic systems that would have emerged would not have given them the
same ability to experiment, adapt, and ultimately keep their customers happy.”
https://www.thoughtworks.com/insights/blog/demystifying-conways-law
IN UNA TRASFORMAZIONI AGILE
VOGLIAMO MIGLIORARE
▸ Time to market
▸ Efficacia dei prodotti e servizi erogati
▸ Stile di vita e la cultura aziendale
foto - Mark Strobl
LE TRASFORMAZIONI PARTONO
SEMPRE CON BUONI PROPOSITI…
…E COSA ACCADE?
UNA MIA OSSERVAZIONE EMPIRICA
… IL CAMBIO ORGANIZZATIVO NON
PORTA AD EFFETTIVI BENEFICI DI
BUSINESS PERCHÉ GLI ASPETTI
TECNOLOGICI SONO CONSIDERATI
SECONDARI E I SISTEMI
INFORMATIVI PRE-ESISTENTI
RIMANGONO IL VERO COLLO DI
BOTTIGLIA.
foto - francesco scaramella
COSA HO VISTO ACCADERE
ESEMPI
▸ Sistema legacy monolitico

organizzazione: 3 team Scrum

problema: dipendenze tra i team che si organizzano a layer
▸ Sistema client-server con diverse UI, dal mobile al desktop

organizzazione: 4 team Scrum

problema: lentezza dei singoli canali che insistono sullo stesso layer di API
WATERFALL 2.0
IL RISULTATO È INEVITABILE
foto - zolakoma
ALCUNI TEAM
LAYER TEAMS
DATA
BACKEND
FRONT-END
Ogni team è cliente di un altro team FEATURE
ALCUNI TEAM
UI TEAMS
DATA
BACKEND
ANDROID IOS DESKTOP
Stesse feature replicate
FEATUREFEATUREFEATURE
ALCUNI TEAM
COMPONENT TEAMS
COMP
COMP
ANDROID IOS DESKTOP
Ulteriori dipendenze tra i team
COMP
COMP
FEATURE
SEMPLIFICHIAMO
FEATURE TEAMS!
foto - Nicholas Jones
end endto
DEFINIZIONE
UN FEATURE TEAM…
▸ è stabile e lavora in modo efficace rilasciando in produzione nuove caratteristiche di
prodotto nel tempo
▸ è interdisciplinare e attraversa tutti i componenti della piattaforma software
▸ condivide gli stessi spazi fisici o digitali
▸ lavora su una caratteristica del prodotto orientata all’utente finale dalla sua ideazione, al
design, sviluppo, test, contenuti e quello che serve per risolvere i problemi dell’utente
▸ è composto da persone “specializzate-generaliste”
▸ è piccolo
ALCUNI TEAM
FEATURE TEAMS
COMP
COMP
ANDROID IOS DESKTOP
I team attraversano tutta
l’architettura e condividono la
proprietà della codebase
COMP
COMP
FEATURES FEATURES
ALCUNI TEAM
FEATURE TEAMS
COMP
COMP
ANDROID IOS DESKTOP
I team attraversano tutta
l’architettura e condividono la
proprietà della codebase
COMP
COMP
FEATURE FEATURE
WOW E FUNZIONA!?
COMPLESSITÀ DEI FEATURE TEAMS
▸ difficile formare team con competenze che riescano ad attraversare tutta
l’architettura
▸ lavorare in contemporanea da parte di più team sugli stessi componenti non è
sempre semplice
▸ rilasciare in modo indipendente
NON BASTA ORGANIZZARSI
QUINDI…
MICROSERVICES
DEFINIZIONE
UN’ARCHITETTURA A MICROSERVICES …
▸ è un uno stile architetturale
▸ è un’applicazione composta da piccoli e indipendenti processi che
comunicano tra di loro utilizzando API indipendenti dal linguaggio
▸ ogni microservice è fortemente disaccoppiato dagli altri e svolge un compito
preciso
UNIX PIPE!
IL PRIMO MICROSERVICE
QUANTO È GRANDE UN
MICROSERVICE?
Da un pizza team a una persona
https://www.youtube.com/watch?v=BeNrVl2_nyI
https://labs.spotify.com/2016/02/25/spotifys-event-delivery-the-road-to-the-cloud-part-i/
PORTANO BENEFICI MA ANCHE QUALCHE PROBLEMA…
BENEFICI E PROBLEMI
▸ pro: contesti ben definiti

contro: i sistemi distribuiti sono più difficili da programmare
▸ pro: posso fare deploy in modo indipendente

contro: possibili inconsistenze
▸ pro: posso essere poliglotta

contro: è necessario un team di esperienza per orientarsi
MESSAGGI
ESEMPIO DI ARCHITETTURA A MICROSERVICE
PATTERN ARCHITETTURA
PRODUCER - CONSUMER
CONSUMERCHANNEL
MSG
PRODUCER
CONSUMERCHANNEL
MSG
PRODUCER
CONSUMER
CONSUMER
PRODUCER - BROADCAST TO CONSUMERS
PATTERN ARCHITETTURA
SUBSCRIBERCHANNEL
MSG
PUBLISHER
SUBSCRIBER
SUBSCRIBER
PUBLISH - SUBSCRIBE
PATTERN ARCHITETTURA
REST
GATEWAY
WEB

SOCKETS
GATEWAY
CHANNEL
MICRO
SERVICE
MICRO
SERVICE
MICRO
SERVICE
MICRO
SERVICE
MSG
MSG
MSG
MOBILE
DESKTOP
WEB CLIENT
M2M
MICRO
SERVICE
MICRO
SERVICE
DATA
PERSISTENCE
DATA
PERSISTENCE
DATA
PERSISTENCE
ESEMPIO DI ARCHITETTURA A MICROSERVIZI
MICRO
SERVICE
MICRO
SERVICE
CHANNEL
request message
request message
subscribe message
response message
response message
SENECA
CODICE…
https://github.com/giulioroggero/microservice_node_demo
senecajs.org

microservice toolkit
Echo microservice
I will respond to messages with the
pattern {role: 'user', cmd: 'echo'}
I register my API to Gateway


{role:'microservice',cmd:'register', message:
{ clientPort: 3002, role: 'user', cmd: 'echo'}
You can call me on port 3002
{role:'microservice',cmd:'register', message: { clientPort: 3002, role: 'user', cmd: 'echo'}
{role:'microservice',cmd:'register', message: { type: “redis”, role: 'user', cmd: 'echo'}
redis
REST API gateway

microservice


Ascolto sulla 2999 per messaggi
Ascolto sulla 3000 per REST
DEPLOY AUTOMATICO
LA CONTINUOUS INTEGRATION E’ UN ANELLO FONDAMENTALE
MICROSERVIZI SONO PROCESSI SEPARATI E MONITORATI
CONTROLLO
ATTENZIONE
NON FA PER TUTTI, INFATTI SERVE
▸ Provisioning rapido delle risorse
▸ Monitoraggio dei servizi
▸ Veloce catena di deployment
▸ Cultura di DevOps pervasiva
▸ Coraggio di uscire dagli schemi
foto - leg0fenris
CONCLUDENDO
ESPERIENZA
CONSIGLI
▸ Attenzione ai valori Agili
▸ Comprendere bene le regole e i ruoli
▸ Partire da subito pensado alla cantina
tecnologica end-to-end
▸ Far emergere l’architettura
▸ Partire con pochi microservizi e poi dividerli o
aggregarli
▸ Test a livello di: unit, microservice, integration e
infine UI
agilereloaded.it
L’ORGANIZZAZIONE DELLE
AZIENDE AGILI RIFLETTE
L’ARCHITETTURA DEI LORO
SISTEMI INFORMATIVI
@giulioroggero
foto - Miroslav Petrasko

More Related Content

What's hot

Redistributable Intro To Scrum Ita
Redistributable Intro To Scrum ItaRedistributable Intro To Scrum Ita
Redistributable Intro To Scrum Ita
Luciano Benetti
 

What's hot (20)

Keep calm and deploy
Keep calm and deployKeep calm and deploy
Keep calm and deploy
 
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017
 
Sviluppo Agile secondo l'approccio SCRUM
Sviluppo Agile secondo l'approccio SCRUMSviluppo Agile secondo l'approccio SCRUM
Sviluppo Agile secondo l'approccio SCRUM
 
Impatti dell'introduzione di Scrum
Impatti dell'introduzione di ScrumImpatti dell'introduzione di Scrum
Impatti dell'introduzione di Scrum
 
Agile raccontato a mia nonna
Agile raccontato a mia nonnaAgile raccontato a mia nonna
Agile raccontato a mia nonna
 
Agile Project Management - the Board Game workshop
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshop
 
Agile Lean Conference 2016 - Romano Lean_scrum_kanban
Agile Lean Conference 2016 - Romano Lean_scrum_kanbanAgile Lean Conference 2016 - Romano Lean_scrum_kanban
Agile Lean Conference 2016 - Romano Lean_scrum_kanban
 
Agile methodologies
Agile methodologiesAgile methodologies
Agile methodologies
 
Festivalmente: Getting Things done
Festivalmente: Getting Things doneFestivalmente: Getting Things done
Festivalmente: Getting Things done
 
AgileIoT, agile meets IoT - MEC 2016
AgileIoT, agile meets IoT - MEC 2016AgileIoT, agile meets IoT - MEC 2016
AgileIoT, agile meets IoT - MEC 2016
 
Agile@core - Scrum
Agile@core - ScrumAgile@core - Scrum
Agile@core - Scrum
 
Redistributable Intro To Scrum Ita
Redistributable Intro To Scrum ItaRedistributable Intro To Scrum Ita
Redistributable Intro To Scrum Ita
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2
 
Visualizing the Product - PMI-NIC Agile Workshop 2013
Visualizing the Product - PMI-NIC Agile Workshop 2013Visualizing the Product - PMI-NIC Agile Workshop 2013
Visualizing the Product - PMI-NIC Agile Workshop 2013
 
Back to Agile - Codemotion 2013
Back to Agile - Codemotion 2013  Back to Agile - Codemotion 2013
Back to Agile - Codemotion 2013
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
03 bigblue
03 bigblue03 bigblue
03 bigblue
 
Sai lavorare Agile? Un nuovo modo di pensare i progetti; un nuovo modo di lav...
Sai lavorare Agile? Un nuovo modo di pensare i progetti; un nuovo modo di lav...Sai lavorare Agile? Un nuovo modo di pensare i progetti; un nuovo modo di lav...
Sai lavorare Agile? Un nuovo modo di pensare i progetti; un nuovo modo di lav...
 
Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017
 

Similar to Favorire i feature teams con architetture microservices

Cloud infrastructure
Cloud infrastructureCloud infrastructure
Cloud infrastructure
Mattia Azzena
 
Presentazionelinux 110209080649-phpapp01
Presentazionelinux 110209080649-phpapp01Presentazionelinux 110209080649-phpapp01
Presentazionelinux 110209080649-phpapp01
XaviOrantes
 
IL FENOMENO DELL’ENTERPRISE 2.0 SOTTO LA LENTE DELL’ACTOR-NETWORK THEORY
IL FENOMENO DELL’ENTERPRISE 2.0 SOTTO LA LENTE DELL’ACTOR-NETWORK THEORY  IL FENOMENO DELL’ENTERPRISE 2.0 SOTTO LA LENTE DELL’ACTOR-NETWORK THEORY
IL FENOMENO DELL’ENTERPRISE 2.0 SOTTO LA LENTE DELL’ACTOR-NETWORK THEORY
Alessandro Bozzo
 

Similar to Favorire i feature teams con architetture microservices (20)

Che cosa sono i microservizi?
Che cosa sono i microservizi?Che cosa sono i microservizi?
Che cosa sono i microservizi?
 
Il modello collaborativo dell'open source per lo sviluppo software
Il modello collaborativo dell'open source per lo sviluppo softwareIl modello collaborativo dell'open source per lo sviluppo software
Il modello collaborativo dell'open source per lo sviluppo software
 
La rivoluzione dei Microservizi
La rivoluzione dei MicroserviziLa rivoluzione dei Microservizi
La rivoluzione dei Microservizi
 
Seminario: GNU/Linux come punto di forza
Seminario: GNU/Linux come punto di forzaSeminario: GNU/Linux come punto di forza
Seminario: GNU/Linux come punto di forza
 
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
Le 7 sfide da affrontare nella migrazione da monolite a miniserviziLe 7 sfide da affrontare nella migrazione da monolite a miniservizi
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
 
Applicazioni ICT
Applicazioni ICTApplicazioni ICT
Applicazioni ICT
 
Digital workplace: parte 3°
Digital workplace: parte 3°Digital workplace: parte 3°
Digital workplace: parte 3°
 
La Unix Way vista da un DevOps
La Unix Way vista da un DevOpsLa Unix Way vista da un DevOps
La Unix Way vista da un DevOps
 
Viral Marketing & Cloud: come creare una Customer Experience perfetta
Viral Marketing & Cloud: come creare una Customer Experience perfettaViral Marketing & Cloud: come creare una Customer Experience perfetta
Viral Marketing & Cloud: come creare una Customer Experience perfetta
 
Abilitare le organizzazioni e le persone ad adottare con successo il Cloud
Abilitare le organizzazioni e le persone ad adottare con successo il CloudAbilitare le organizzazioni e le persone ad adottare con successo il Cloud
Abilitare le organizzazioni e le persone ad adottare con successo il Cloud
 
Funzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobiliFunzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobili
 
Cloud infrastructure
Cloud infrastructureCloud infrastructure
Cloud infrastructure
 
Approccio ad una infrastruttura per Microservice
Approccio ad una infrastruttura per MicroserviceApproccio ad una infrastruttura per Microservice
Approccio ad una infrastruttura per Microservice
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. Introduzione
 
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
 
La rivoluzione del web 2.0
La rivoluzione del web 2.0La rivoluzione del web 2.0
La rivoluzione del web 2.0
 
Presentazionelinux 110209080649-phpapp01
Presentazionelinux 110209080649-phpapp01Presentazionelinux 110209080649-phpapp01
Presentazionelinux 110209080649-phpapp01
 
Architetture a Microservizi (con Kubernetes)
Architetture a Microservizi (con Kubernetes)Architetture a Microservizi (con Kubernetes)
Architetture a Microservizi (con Kubernetes)
 
IL FENOMENO DELL’ENTERPRISE 2.0 SOTTO LA LENTE DELL’ACTOR-NETWORK THEORY
IL FENOMENO DELL’ENTERPRISE 2.0 SOTTO LA LENTE DELL’ACTOR-NETWORK THEORY  IL FENOMENO DELL’ENTERPRISE 2.0 SOTTO LA LENTE DELL’ACTOR-NETWORK THEORY
IL FENOMENO DELL’ENTERPRISE 2.0 SOTTO LA LENTE DELL’ACTOR-NETWORK THEORY
 
Scelta Software Elearning
Scelta Software ElearningScelta Software Elearning
Scelta Software Elearning
 

More from Giulio Roggero

Modernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with Kubernetes
Giulio Roggero
 

More from Giulio Roggero (20)

Platform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewPlatform Engineering - a 360 degree view
Platform Engineering - a 360 degree view
 
Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101
 
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprisePlatform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprise
 
Modernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with Kubernetes
 
Stili architetturali in Kubernetes
Stili architetturali in KubernetesStili architetturali in Kubernetes
Stili architetturali in Kubernetes
 
Do pair programming with an artificial intelligence
Do pair programming with an artificial intelligenceDo pair programming with an artificial intelligence
Do pair programming with an artificial intelligence
 
Come i Microservizi favoriscono il lavoro dei Feature Teams
Come i Microservizi favoriscono il lavoro dei Feature TeamsCome i Microservizi favoriscono il lavoro dei Feature Teams
Come i Microservizi favoriscono il lavoro dei Feature Teams
 
Scaling Legacy
Scaling LegacyScaling Legacy
Scaling Legacy
 
Agile Journey
Agile JourneyAgile Journey
Agile Journey
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
 
Invisible infrastructures
Invisible infrastructuresInvisible infrastructures
Invisible infrastructures
 
Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Stop Meeting, Start Coding!
Stop Meeting, Start Coding!
 
Eliminare gli Spaghetti API
Eliminare gli Spaghetti APIEliminare gli Spaghetti API
Eliminare gli Spaghetti API
 
Da spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma DigitaleDa spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma Digitale
 
Kanban board!
Kanban board!Kanban board!
Kanban board!
 
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
API Conf 2017 - Allineare il business e la tecnologia grazie alle apiAPI Conf 2017 - Allineare il business e la tecnologia grazie alle api
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
 
Trust me, I'm a developer
Trust me, I'm a developerTrust me, I'm a developer
Trust me, I'm a developer
 
Agilità interculturale
Agilità interculturaleAgilità interculturale
Agilità interculturale
 
Agile Fixed Price - XP Days 2015
Agile Fixed Price - XP Days 2015Agile Fixed Price - XP Days 2015
Agile Fixed Price - XP Days 2015
 
Le aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agiliLe aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agili
 

Favorire i feature teams con architetture microservices