SlideShare a Scribd company logo
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

PPTX
Introduzione a Scrum
PDF
Innovare nel B2C
PPTX
Continuous Delivery da zero a rilascio con un clic
PPTX
Continuous integration per sviluppatori mobile
PPTX
Scrum una breve introduzione
PPTX
Percorsi formativi Lean-Agile
PPTX
DevOps: l'IT al servizio del Business
PDF
Lean Agile Development - a war story (Better Software 2010)
Introduzione a Scrum
Innovare nel B2C
Continuous Delivery da zero a rilascio con un clic
Continuous integration per sviluppatori mobile
Scrum una breve introduzione
Percorsi formativi Lean-Agile
DevOps: l'IT al servizio del Business
Lean Agile Development - a war story (Better Software 2010)

What's hot (20)

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

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

PDF
Come i Microservizi favoriscono il lavoro dei Feature Teams
PDF
Che cosa sono i microservizi?
PPTX
Microservices
PPTX
Microservices architecture & Service Fabric
PDF
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
PDF
20060627 SOA @JavaConference2006 Milano-IT [ITA]
PDF
MySQL Day Milano 2018 - Le architetture a microservizi
PPTX
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
PDF
Architetture a Microservizi (con Kubernetes)
PDF
LARUS 10th - Rampado Omar
PDF
Distribuzione Upi Ed Architetture
PPTX
Microservizi & DevOps
PDF
Introduzione ai Microservices
PDF
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
PDF
Designing with microservices - Daniele Mondello
PPT
Un'architettura di riferimento per applicazioni enterprise
PPTX
.NET Microservices
PPTX
Architetture.Distribuite
PPT
01.Dimensioni E Prestazioni Reti Aziendali May 2002 3
PPTX
Service Fabric: la potenza dei micro servizi
Come i Microservizi favoriscono il lavoro dei Feature Teams
Che cosa sono i microservizi?
Microservices
Microservices architecture & Service Fabric
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
20060627 SOA @JavaConference2006 Milano-IT [ITA]
MySQL Day Milano 2018 - Le architetture a microservizi
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Architetture a Microservizi (con Kubernetes)
LARUS 10th - Rampado Omar
Distribuzione Upi Ed Architetture
Microservizi & DevOps
Introduzione ai Microservices
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Designing with microservices - Daniele Mondello
Un'architettura di riferimento per applicazioni enterprise
.NET Microservices
Architetture.Distribuite
01.Dimensioni E Prestazioni Reti Aziendali May 2002 3
Service Fabric: la potenza dei micro servizi
Ad

More from Giulio Roggero (20)

PDF
Platform Engineering - a 360 degree view
PDF
Kubernetes and CNCF Landscape 101
PDF
Platform governance, gestire un ecosistema di microservizi a livello enterprise
PDF
Modernize Legacy Systems with Kubernetes
PDF
Stili architetturali in Kubernetes
PDF
Do pair programming with an artificial intelligence
PDF
Scaling Legacy
PDF
Agile Journey
PDF
Microservices, Microfrontends and Feature Teams
PDF
Invisible infrastructures
PDF
Stop Meeting, Start Coding!
PDF
Eliminare gli Spaghetti API
PDF
Da spaghetti API a Piattaforma Digitale
PDF
Kanban board!
PPTX
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
PPTX
Trust me, I'm a developer
PDF
Agilità interculturale
PPTX
Agile Fixed Price - XP Days 2015
PPTX
Le aspettative delle trasformazioni agili
PDF
Lavorare meglio e con le persone giuste
Platform Engineering - a 360 degree view
Kubernetes and CNCF Landscape 101
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Modernize Legacy Systems with Kubernetes
Stili architetturali in Kubernetes
Do pair programming with an artificial intelligence
Scaling Legacy
Agile Journey
Microservices, Microfrontends and Feature Teams
Invisible infrastructures
Stop Meeting, Start Coding!
Eliminare gli Spaghetti API
Da spaghetti API a Piattaforma Digitale
Kanban board!
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
Trust me, I'm a developer
Agilità interculturale
Agile Fixed Price - XP Days 2015
Le aspettative delle trasformazioni agili
Lavorare meglio e con le persone giuste

Favorire i feature teams con architetture microservices