SlideShare a Scribd company logo
1 of 56
Download to read offline
MIA | PLATFORM ACCELERATOR
1
It Starts With a Goal
Principi e Pratiche Efficaci di Continuous Delivery
Riccardo Porrini
MIA | PLATFORM ACCELERATOR
2
Ciao, sono Riccardo
● Tech Leader @ mia-platform
● Work SMARTER, not HARDER
● La differenza la fa COME facciamo le cose
github.com/rporrini
riccardo.porrini@mia-platform.eu
linkedin.com/in/riccardoporrini
MIA | PLATFORM ACCELERATOR
3
Cosa Spero vi Portiate a Casa
● Continuous Delivery non è una questione di scala ...
● … ma è basato su principi e pratiche (Processo)
● Porta beneficio sia al business che agli sviluppatori
MIA | PLATFORM ACCELERATOR
4
Cosa Spero vi Portiate a Casa
● Continuous Delivery non è una questione di scala ...
● … ma è basato su Principi e Pratiche
● Porta beneficio sia al business che agli sviluppatori
MIA | PLATFORM ACCELERATOR
5
Cosa Spero vi Portiate a Casa
● Continuous Delivery non è una questione di scala ...
● … ma è basato su Principi e Pratiche
● Racconto di un’esperienza maturata sul campo
MIA | PLATFORM ACCELERATOR
6
MIA | PLATFORM ACCELERATOR
7
MIA | PLATFORM ACCELERATOR
8
MIA | PLATFORM ACCELERATOR
9
Continuous Delivery
Adapted from Jez Humble - continuousdelivery.com under the CC BY SA-3.0 License
MIA | PLATFORM ACCELERATOR
10
Continuous Delivery
The ability to get changes of all types into the hands of
users, safely and quickly in a sustainable way.
Adapted from Jez Humble - continuousdelivery.com under the CC BY SA-3.0 License
MIA | PLATFORM ACCELERATOR
11
Da un commit alla Produzione
Adapted from Jez Humble - continuousdelivery.com under the CC BY SA-3.0 License
MIA | PLATFORM ACCELERATOR
12
Value Stream
https://www.linux.com/blog/learn/chapter/dev-ops/2017/7/devops-fundamentals-part-2-value-stream
MIA | PLATFORM ACCELERATOR
13
Processo di Rilascio
● Riproducibile
● Affidabile
● Predicibile
● Veloce
Perché fare Continuous Delivery?
Cycle Time Ridotto
● Time to market migliore
● A / B testing
● ...
Qualità
● Verifica automatica
● Stabilità
● ...
MIA | PLATFORM ACCELERATOR
14
Contesto
MIA | PLATFORM ACCELERATOR
15
Anatomia di una API Platform - Prodotto
µ
µ
µ
MIA | PLATFORM ACCELERATOR
16
Anatomia di una API Platform - Prodotto
µ
µ
µ
MIA | PLATFORM ACCELERATOR
17
Anatomia di una API Platform - Prodotto
µ
µ
µ
MIA | PLATFORM ACCELERATOR
18
Anatomia di una API Platform - Progetti e Clienti
MIA | PLATFORM ACCELERATOR
19
Anatomia di una API Platform - Progetti e Clienti
MIA | PLATFORM ACCELERATOR
20
Anatomia di una API Platform - Progetti e Clienti
MIA | PLATFORM ACCELERATOR
21
Progetti e Piattaforma - Diversi Cicli di Vita e di Rilascio
tempo
R&D
Cliente A
Cliente B
Platform
Web App
App IOS
App Android
V1 V2
V1 V2 V3 V4
V1
V1 V2
MIA | PLATFORM ACCELERATOR
22
MIA | PLATFORM ACCELERATOR
22
Rilascio Continuo
MIA | PLATFORM ACCELERATOR
23
MIA | PLATFORM ACCELERATOR
23
Rilascio Continuo
MIA | PLATFORM ACCELERATOR
24
Come?
MIA | PLATFORM ACCELERATOR
25
Continuous Delivery - Principi
Adapted from Jez Humble - continuousdelivery.com under the CC BY SA-3.0 License
Work in small batches
Automate almost
everything
Continuous improvement
Everyone is responsible
Build quality in
Done means Released
MIA | PLATFORM ACCELERATOR
26
Routine di Rilascio Giornaliera
MIA | PLATFORM ACCELERATOR
27
Routine di Rilascio Giornaliera
Staging
Production
Feature 1
Feature 2
Bug Fix
Feature 3
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
MIA | PLATFORM ACCELERATOR
28
Routine di Rilascio Giornaliera
Staging
Production
Feature 1
Feature 2
Bug Fix
Feature 3
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
MIA | PLATFORM ACCELERATOR
29
Routine di Rilascio Giornaliera
Staging
Production
Feature 1
Feature 2
Bug Fix
Feature 3
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
MIA | PLATFORM ACCELERATOR
30
Routine di Rilascio Giornaliera
Staging
Production
Feature 1
Feature 2
Bug Fix
Feature 3
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
MIA | PLATFORM ACCELERATOR
31
Verifica e
validazione
Obiettivi giornalieri
Pratiche
Deployment Automatico
Finestre di Rilascio
Versionamento Rigoroso
Limite al batch Work
MIA | PLATFORM ACCELERATOR
32
Obiettivi Giornalieri
Staging
Production
Feature 1
Feature 2
Bug Fix
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
Feature 3
MIA | PLATFORM ACCELERATOR
33
La Board - Cosa Rilasciamo Domani?
● Obiettivi (anche di sprint)
● Rilasci pianificati
Comunica
● fissare un obiettivo giornaliero
Viene utilizzata per
● Giornalmente
● Ogni sprint / iterazione
Viene aggiornata
MIA | PLATFORM ACCELERATOR
34
La Board - Cosa Rilasciamo Domani?
● Qualcuno ne deve essere
responsabile
● Richiede pianificazione
● ... arte nello splittare il lavoro in
pezzi indipendenti tra loro
● … e nel trovare il giusto
bilanciamento tra obiettivi
ambiziosi e realizzabili
Difficoltà
MIA | PLATFORM ACCELERATOR
35
Variazione sul Tema - La Board dei Rilasci
MIA | PLATFORM ACCELERATOR
36
Finestre di Rilascio
Staging
Production
Feature 1
Feature 2
Bug Fix
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
Feature 3
MIA | PLATFORM ACCELERATOR
37
● Dipendenti da applicazione / dominio applicativo
● Sono necessarie nel B2B
● Analizzando il traffico / utilizzo si può trovare quella giusta
● Comprende anche il tempo per eventuali rollback
● Non di sera / notte (se possibile :D)
Finestre di Rilascio
MIA | PLATFORM ACCELERATOR
38
Verifica e Validazione Continua
Staging
Production
Feature 1
Feature 2
Bug Fix
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
Feature 3
MIA | PLATFORM ACCELERATOR
39
Verifica e Validazione Continua
● Test di Accettazione
● Continuous Integration
● Ogni funzionalità validata in Staging in isolamento
● Validazione del Release Candidate una volta rilasciato in Staging
MIA | PLATFORM ACCELERATOR
40
Limite al Batch Work
Staging
Production
Feature 1
Feature 2
Bug Fix
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
Verification
Feature 3
MIA | PLATFORM ACCELERATOR
41
Il Batch Work è il Nostro Peggior Nemico
● Aumenta la possibilità di fallire il rilascio
● In caso di rollback, viene invalidato tutto il lavoro fatto
● La complessità di merge aumenta non linearmente
● Troppo lavoro in parallelo sulla stessa area funzionale è
potenzialmente disastroso
MIA | PLATFORM ACCELERATOR
42
Limite al Batch Work
● Identificare un’ora X oltre la quale “quel che è fatto è fatto”
● Uniche deroghe possibili le funzionalità che attendono verifica
● … o per emergenze
● In prossimità dell’ora X non si aprono nuovi fronti
● Si aiuta a finire quelli aperti
MIA | PLATFORM ACCELERATOR
43
Deployment Automatici
Staging
Production
Feature 1
Feature 2
Bug Fix
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
Feature 3
MIA | PLATFORM ACCELERATOR
44
Un buon processo di Deployment
● Automatico
● Comprende anche l’infrastruttura
● Tutti sanno come attivarlo
● Permette il rollback (e.g., re-deployment di una versione precedente)
● Disaccoppiato dalla build dell’artefatto da deployare
● Uguale per tutti gli ambienti
MIA | PLATFORM ACCELERATOR
45
Versionamento Rigoroso
Staging
Production
Feature 1
Feature 2
Bug Fix
merge
V1 V2
17:30 18:309:459:30
Stand-up meeting
Verification
Feature 3
MIA | PLATFORM ACCELERATOR
46
Tracciabilità
● Dobbiamo essere sicuri di cosa è rilasciato in ogni ambiente
● Perchè rilasciamo molto spesso in tutti gli ambienti
● Ogni applicazione / servizio espone un numero di versione
MIA | PLATFORM ACCELERATOR
47
In conclusione
MIA | PLATFORM ACCELERATOR
48
Continuous Delivery - Principi e Pratiche
Work in small
batches
Automation almost
everything
Continuous
improvement
Everyone
is responsible
Build quality in Obiettivi giornalieri
Deployment
Automatico
Finestre di Rilascio
Versionamento
Rigoroso
Verifica e
validazione
Limite al batch WorkDone means
Released
MIA | PLATFORM ACCELERATOR
49
Punti Aperti
MIA | PLATFORM ACCELERATOR
50
Branching vs Feature Toggles
MIA | PLATFORM ACCELERATOR
51
● Senza schema è più facile
● Ma rimangono comunque i dati da migrare
● Differenze gestite lato applicativo (un grande vantaggio)
Continuous Delivery Schemi e Dati
MIA | PLATFORM ACCELERATOR
52
MIA | PLATFORM ACCELERATOR
53
MIA | PLATFORM ACCELERATOR
54
Riferimenti Utili
MIA | PLATFORM ACCELERATOR
55
Riferimenti Utili
MIA | PLATFORM ACCELERATOR
56
Grazie!
github.com/rporrini
riccardo.porrini@mia-platform.eu
linkedin.com/in/riccardoporrini

More Related Content

Similar to It starts with a goal - Prato

2014 11-21 presentazione breton agile at work - trento
2014 11-21 presentazione breton agile at work - trento2014 11-21 presentazione breton agile at work - trento
2014 11-21 presentazione breton agile at work - trentoClaudio Saurin
 
Riccardo Tempesta - Strumenti di automazione in Magento 2
Riccardo Tempesta - Strumenti di automazione in Magento 2Riccardo Tempesta - Strumenti di automazione in Magento 2
Riccardo Tempesta - Strumenti di automazione in Magento 2Meet Magento Italy
 
Strumenti di automazione in Magento 2
Strumenti di automazione in Magento 2Strumenti di automazione in Magento 2
Strumenti di automazione in Magento 2MageSpecialist
 
Milano Meetups XIII - Official.pdf
Milano Meetups XIII - Official.pdfMilano Meetups XIII - Official.pdf
Milano Meetups XIII - Official.pdfFlorence Consulting
 
Milano Meetup #8 - Testing & Salesforce Integration
Milano Meetup #8 - Testing & Salesforce IntegrationMilano Meetup #8 - Testing & Salesforce Integration
Milano Meetup #8 - Testing & Salesforce IntegrationGonzalo Marcos Ansoain
 
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Emerasoft, solutions to collaborate
 
Final presentation of Project Management course (Gestione Progetti Software) ...
Final presentation of Project Management course (Gestione Progetti Software) ...Final presentation of Project Management course (Gestione Progetti Software) ...
Final presentation of Project Management course (Gestione Progetti Software) ...Alexander Minichino
 
La dura Agilità - Agile Business Day 2018
La dura Agilità - Agile Business Day 2018La dura Agilità - Agile Business Day 2018
La dura Agilità - Agile Business Day 2018Claudio Saurin
 
MuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfMuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfFlorence Consulting
 
MANAGEMENT DELLA QUALITA'
MANAGEMENT DELLA QUALITA'MANAGEMENT DELLA QUALITA'
MANAGEMENT DELLA QUALITA'GiuliaForconi
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
 
SMED - Single Minute Exchange of Die
SMED - Single Minute Exchange of DieSMED - Single Minute Exchange of Die
SMED - Single Minute Exchange of DieMPS Consulting
 
Rapid prototyping with Ionic Framework
Rapid prototyping with Ionic FrameworkRapid prototyping with Ionic Framework
Rapid prototyping with Ionic FrameworkAlessio Delmonti
 
Nord-Est Italy Seminars 2012
Nord-Est Italy Seminars 2012Nord-Est Italy Seminars 2012
Nord-Est Italy Seminars 2012alexzio
 
Luiss Event Agile Team
Luiss Event Agile TeamLuiss Event Agile Team
Luiss Event Agile TeamEmiliano Soldi
 
Il BIM come srumento di controllo della fase realizzativa
Il BIM come srumento di controllo della fase realizzativaIl BIM come srumento di controllo della fase realizzativa
Il BIM come srumento di controllo della fase realizzativaBIM group @ University of Padua
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie AgiliAlessandro Astarita
 

Similar to It starts with a goal - Prato (20)

2014 11-21 presentazione breton agile at work - trento
2014 11-21 presentazione breton agile at work - trento2014 11-21 presentazione breton agile at work - trento
2014 11-21 presentazione breton agile at work - trento
 
Riccardo Tempesta - Strumenti di automazione in Magento 2
Riccardo Tempesta - Strumenti di automazione in Magento 2Riccardo Tempesta - Strumenti di automazione in Magento 2
Riccardo Tempesta - Strumenti di automazione in Magento 2
 
Strumenti di automazione in Magento 2
Strumenti di automazione in Magento 2Strumenti di automazione in Magento 2
Strumenti di automazione in Magento 2
 
3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 
Milano Meetups XIII - Official.pdf
Milano Meetups XIII - Official.pdfMilano Meetups XIII - Official.pdf
Milano Meetups XIII - Official.pdf
 
Milano Meetup #8 - Testing & Salesforce Integration
Milano Meetup #8 - Testing & Salesforce IntegrationMilano Meetup #8 - Testing & Salesforce Integration
Milano Meetup #8 - Testing & Salesforce Integration
 
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
Final presentation of Project Management course (Gestione Progetti Software) ...
Final presentation of Project Management course (Gestione Progetti Software) ...Final presentation of Project Management course (Gestione Progetti Software) ...
Final presentation of Project Management course (Gestione Progetti Software) ...
 
La dura Agilità - Agile Business Day 2018
La dura Agilità - Agile Business Day 2018La dura Agilità - Agile Business Day 2018
La dura Agilità - Agile Business Day 2018
 
MuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfMuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdf
 
MANAGEMENT DELLA QUALITA'
MANAGEMENT DELLA QUALITA'MANAGEMENT DELLA QUALITA'
MANAGEMENT DELLA QUALITA'
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
 
SMED - Single Minute Exchange of Die
SMED - Single Minute Exchange of DieSMED - Single Minute Exchange of Die
SMED - Single Minute Exchange of Die
 
Rapid prototyping with Ionic Framework
Rapid prototyping with Ionic FrameworkRapid prototyping with Ionic Framework
Rapid prototyping with Ionic Framework
 
Nord-Est Italy Seminars 2012
Nord-Est Italy Seminars 2012Nord-Est Italy Seminars 2012
Nord-Est Italy Seminars 2012
 
Luiss Event Agile Team
Luiss Event Agile TeamLuiss Event Agile Team
Luiss Event Agile Team
 
Il BIM come srumento di controllo della fase realizzativa
Il BIM come srumento di controllo della fase realizzativaIl BIM come srumento di controllo della fase realizzativa
Il BIM come srumento di controllo della fase realizzativa
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie Agili
 

It starts with a goal - Prato

  • 1. MIA | PLATFORM ACCELERATOR 1 It Starts With a Goal Principi e Pratiche Efficaci di Continuous Delivery Riccardo Porrini
  • 2. MIA | PLATFORM ACCELERATOR 2 Ciao, sono Riccardo ● Tech Leader @ mia-platform ● Work SMARTER, not HARDER ● La differenza la fa COME facciamo le cose github.com/rporrini riccardo.porrini@mia-platform.eu linkedin.com/in/riccardoporrini
  • 3. MIA | PLATFORM ACCELERATOR 3 Cosa Spero vi Portiate a Casa ● Continuous Delivery non è una questione di scala ... ● … ma è basato su principi e pratiche (Processo) ● Porta beneficio sia al business che agli sviluppatori
  • 4. MIA | PLATFORM ACCELERATOR 4 Cosa Spero vi Portiate a Casa ● Continuous Delivery non è una questione di scala ... ● … ma è basato su Principi e Pratiche ● Porta beneficio sia al business che agli sviluppatori
  • 5. MIA | PLATFORM ACCELERATOR 5 Cosa Spero vi Portiate a Casa ● Continuous Delivery non è una questione di scala ... ● … ma è basato su Principi e Pratiche ● Racconto di un’esperienza maturata sul campo
  • 6. MIA | PLATFORM ACCELERATOR 6
  • 7. MIA | PLATFORM ACCELERATOR 7
  • 8. MIA | PLATFORM ACCELERATOR 8
  • 9. MIA | PLATFORM ACCELERATOR 9 Continuous Delivery Adapted from Jez Humble - continuousdelivery.com under the CC BY SA-3.0 License
  • 10. MIA | PLATFORM ACCELERATOR 10 Continuous Delivery The ability to get changes of all types into the hands of users, safely and quickly in a sustainable way. Adapted from Jez Humble - continuousdelivery.com under the CC BY SA-3.0 License
  • 11. MIA | PLATFORM ACCELERATOR 11 Da un commit alla Produzione Adapted from Jez Humble - continuousdelivery.com under the CC BY SA-3.0 License
  • 12. MIA | PLATFORM ACCELERATOR 12 Value Stream https://www.linux.com/blog/learn/chapter/dev-ops/2017/7/devops-fundamentals-part-2-value-stream
  • 13. MIA | PLATFORM ACCELERATOR 13 Processo di Rilascio ● Riproducibile ● Affidabile ● Predicibile ● Veloce Perché fare Continuous Delivery? Cycle Time Ridotto ● Time to market migliore ● A / B testing ● ... Qualità ● Verifica automatica ● Stabilità ● ...
  • 14. MIA | PLATFORM ACCELERATOR 14 Contesto
  • 15. MIA | PLATFORM ACCELERATOR 15 Anatomia di una API Platform - Prodotto µ µ µ
  • 16. MIA | PLATFORM ACCELERATOR 16 Anatomia di una API Platform - Prodotto µ µ µ
  • 17. MIA | PLATFORM ACCELERATOR 17 Anatomia di una API Platform - Prodotto µ µ µ
  • 18. MIA | PLATFORM ACCELERATOR 18 Anatomia di una API Platform - Progetti e Clienti
  • 19. MIA | PLATFORM ACCELERATOR 19 Anatomia di una API Platform - Progetti e Clienti
  • 20. MIA | PLATFORM ACCELERATOR 20 Anatomia di una API Platform - Progetti e Clienti
  • 21. MIA | PLATFORM ACCELERATOR 21 Progetti e Piattaforma - Diversi Cicli di Vita e di Rilascio tempo R&D Cliente A Cliente B Platform Web App App IOS App Android V1 V2 V1 V2 V3 V4 V1 V1 V2
  • 22. MIA | PLATFORM ACCELERATOR 22 MIA | PLATFORM ACCELERATOR 22 Rilascio Continuo
  • 23. MIA | PLATFORM ACCELERATOR 23 MIA | PLATFORM ACCELERATOR 23 Rilascio Continuo
  • 24. MIA | PLATFORM ACCELERATOR 24 Come?
  • 25. MIA | PLATFORM ACCELERATOR 25 Continuous Delivery - Principi Adapted from Jez Humble - continuousdelivery.com under the CC BY SA-3.0 License Work in small batches Automate almost everything Continuous improvement Everyone is responsible Build quality in Done means Released
  • 26. MIA | PLATFORM ACCELERATOR 26 Routine di Rilascio Giornaliera
  • 27. MIA | PLATFORM ACCELERATOR 27 Routine di Rilascio Giornaliera Staging Production Feature 1 Feature 2 Bug Fix Feature 3 merge V1 V2 17:30 18:309:459:30 Stand-up meeting
  • 28. MIA | PLATFORM ACCELERATOR 28 Routine di Rilascio Giornaliera Staging Production Feature 1 Feature 2 Bug Fix Feature 3 merge V1 V2 17:30 18:309:459:30 Stand-up meeting
  • 29. MIA | PLATFORM ACCELERATOR 29 Routine di Rilascio Giornaliera Staging Production Feature 1 Feature 2 Bug Fix Feature 3 merge V1 V2 17:30 18:309:459:30 Stand-up meeting
  • 30. MIA | PLATFORM ACCELERATOR 30 Routine di Rilascio Giornaliera Staging Production Feature 1 Feature 2 Bug Fix Feature 3 merge V1 V2 17:30 18:309:459:30 Stand-up meeting
  • 31. MIA | PLATFORM ACCELERATOR 31 Verifica e validazione Obiettivi giornalieri Pratiche Deployment Automatico Finestre di Rilascio Versionamento Rigoroso Limite al batch Work
  • 32. MIA | PLATFORM ACCELERATOR 32 Obiettivi Giornalieri Staging Production Feature 1 Feature 2 Bug Fix merge V1 V2 17:30 18:309:459:30 Stand-up meeting Feature 3
  • 33. MIA | PLATFORM ACCELERATOR 33 La Board - Cosa Rilasciamo Domani? ● Obiettivi (anche di sprint) ● Rilasci pianificati Comunica ● fissare un obiettivo giornaliero Viene utilizzata per ● Giornalmente ● Ogni sprint / iterazione Viene aggiornata
  • 34. MIA | PLATFORM ACCELERATOR 34 La Board - Cosa Rilasciamo Domani? ● Qualcuno ne deve essere responsabile ● Richiede pianificazione ● ... arte nello splittare il lavoro in pezzi indipendenti tra loro ● … e nel trovare il giusto bilanciamento tra obiettivi ambiziosi e realizzabili Difficoltà
  • 35. MIA | PLATFORM ACCELERATOR 35 Variazione sul Tema - La Board dei Rilasci
  • 36. MIA | PLATFORM ACCELERATOR 36 Finestre di Rilascio Staging Production Feature 1 Feature 2 Bug Fix merge V1 V2 17:30 18:309:459:30 Stand-up meeting Feature 3
  • 37. MIA | PLATFORM ACCELERATOR 37 ● Dipendenti da applicazione / dominio applicativo ● Sono necessarie nel B2B ● Analizzando il traffico / utilizzo si può trovare quella giusta ● Comprende anche il tempo per eventuali rollback ● Non di sera / notte (se possibile :D) Finestre di Rilascio
  • 38. MIA | PLATFORM ACCELERATOR 38 Verifica e Validazione Continua Staging Production Feature 1 Feature 2 Bug Fix merge V1 V2 17:30 18:309:459:30 Stand-up meeting Feature 3
  • 39. MIA | PLATFORM ACCELERATOR 39 Verifica e Validazione Continua ● Test di Accettazione ● Continuous Integration ● Ogni funzionalità validata in Staging in isolamento ● Validazione del Release Candidate una volta rilasciato in Staging
  • 40. MIA | PLATFORM ACCELERATOR 40 Limite al Batch Work Staging Production Feature 1 Feature 2 Bug Fix merge V1 V2 17:30 18:309:459:30 Stand-up meeting Verification Feature 3
  • 41. MIA | PLATFORM ACCELERATOR 41 Il Batch Work è il Nostro Peggior Nemico ● Aumenta la possibilità di fallire il rilascio ● In caso di rollback, viene invalidato tutto il lavoro fatto ● La complessità di merge aumenta non linearmente ● Troppo lavoro in parallelo sulla stessa area funzionale è potenzialmente disastroso
  • 42. MIA | PLATFORM ACCELERATOR 42 Limite al Batch Work ● Identificare un’ora X oltre la quale “quel che è fatto è fatto” ● Uniche deroghe possibili le funzionalità che attendono verifica ● … o per emergenze ● In prossimità dell’ora X non si aprono nuovi fronti ● Si aiuta a finire quelli aperti
  • 43. MIA | PLATFORM ACCELERATOR 43 Deployment Automatici Staging Production Feature 1 Feature 2 Bug Fix merge V1 V2 17:30 18:309:459:30 Stand-up meeting Feature 3
  • 44. MIA | PLATFORM ACCELERATOR 44 Un buon processo di Deployment ● Automatico ● Comprende anche l’infrastruttura ● Tutti sanno come attivarlo ● Permette il rollback (e.g., re-deployment di una versione precedente) ● Disaccoppiato dalla build dell’artefatto da deployare ● Uguale per tutti gli ambienti
  • 45. MIA | PLATFORM ACCELERATOR 45 Versionamento Rigoroso Staging Production Feature 1 Feature 2 Bug Fix merge V1 V2 17:30 18:309:459:30 Stand-up meeting Verification Feature 3
  • 46. MIA | PLATFORM ACCELERATOR 46 Tracciabilità ● Dobbiamo essere sicuri di cosa è rilasciato in ogni ambiente ● Perchè rilasciamo molto spesso in tutti gli ambienti ● Ogni applicazione / servizio espone un numero di versione
  • 47. MIA | PLATFORM ACCELERATOR 47 In conclusione
  • 48. MIA | PLATFORM ACCELERATOR 48 Continuous Delivery - Principi e Pratiche Work in small batches Automation almost everything Continuous improvement Everyone is responsible Build quality in Obiettivi giornalieri Deployment Automatico Finestre di Rilascio Versionamento Rigoroso Verifica e validazione Limite al batch WorkDone means Released
  • 49. MIA | PLATFORM ACCELERATOR 49 Punti Aperti
  • 50. MIA | PLATFORM ACCELERATOR 50 Branching vs Feature Toggles
  • 51. MIA | PLATFORM ACCELERATOR 51 ● Senza schema è più facile ● Ma rimangono comunque i dati da migrare ● Differenze gestite lato applicativo (un grande vantaggio) Continuous Delivery Schemi e Dati
  • 52. MIA | PLATFORM ACCELERATOR 52
  • 53. MIA | PLATFORM ACCELERATOR 53
  • 54. MIA | PLATFORM ACCELERATOR 54 Riferimenti Utili
  • 55. MIA | PLATFORM ACCELERATOR 55 Riferimenti Utili
  • 56. MIA | PLATFORM ACCELERATOR 56 Grazie! github.com/rporrini riccardo.porrini@mia-platform.eu linkedin.com/in/riccardoporrini