It Starts with a Goal - Continuous Delivery of an API PlatformRiccardo Porrini
It's 9:30 in the morning. After a brief stand-up meeting your team releases the latest version of the Webapp. Then you pull out a task from the top of the backlog. You design, code, test and deploy to staging. After a successful validation you add the feature you developed to the next release, scheduled for tomorrow morning. It's now 18:30: time to head home. Tomorrow will be another productive day!
Is this just another Continuous Delivery fairy tale? Do you need to be Netflix or Zalando to keep a development pace where features are released on a daily basis?
The experience and lessons learned at Mia-platform in setting up our Continuous Delivery pipeline. How to cope with the difficulties of releasing every day our API Platform, in a sustainable and persistent way, and without discontinuing our clients' businesses.
Agile requirements - alla ricerca del filo rosso (iad 2013)Fabio Armani
requisiti rappresentano, a mio avviso, il ‘fil rouge’ di tutto lo sviluppo software, sia che si tratti di applicazioni web o mobile, sia che siano coinvolti grandi sistemi Enterprise. Cerchiamo di capire perché.
Possiamo affermare che Lean Agile sta di fatto divenendo uno delle metodologie più adottate (se non il main-stream stesso) in ambito informatico e conseguentemente anche in ambiti connessi con l’informatica.
Nel mio talk (che spero possa trasformarsi in una tavola rotonda sul tema degli agile requirements e di ciò che ruota attorno ad essi) desidero presentare le varie possibilità di gestire i requisiti in modo agile e di seguire ad esempio il percorso delle “user story” (uno dei più efficaci metodi inventati in ambito agile o meglio nella metodologia eXtreme Programming per gestire i requisiti) in tutte le diverse fasi della loro ‘vita’ : a partire da ‘theme’, ‘epic’ e poi ‘story’ realizzata durante una determinata iterazione, fino al loro testing mediante Acceptance Test Driven Development e convalida business sul campo con gli utenti finali e i diversi stakeholder.
Bene… per poter effettuare questo affascinante itinerario cosa e chi viene coinvolto? Scopriremo assieme (ed argomenteremo le diverse soluzioni) che un’intera organizzazione Enterprise si dovrà plasmare per consentire ad una storia di divenire parte di una nuova funzionalità di successo.
Per avere realmente successo dovremmo scomodare molte metodologie tra le quali Lean , Agile, Lean StartUp, Lean UX e questo ci porterà nuovamente al punto di partenza. Perché vogliamo realizzare proprio questa storia? Quale era il requisito da cui siamo partiti. A quale Vision ci siamo ispirati?
Sono certo che il tema è affascinante e sarà interessante affrontarlo collettivamente, specialmente se trattato in ambito di round table.
It Starts with a Goal - Continuous Delivery of an API PlatformRiccardo Porrini
It's 9:30 in the morning. After a brief stand-up meeting your team releases the latest version of the Webapp. Then you pull out a task from the top of the backlog. You design, code, test and deploy to staging. After a successful validation you add the feature you developed to the next release, scheduled for tomorrow morning. It's now 18:30: time to head home. Tomorrow will be another productive day!
Is this just another Continuous Delivery fairy tale? Do you need to be Netflix or Zalando to keep a development pace where features are released on a daily basis?
The experience and lessons learned at Mia-platform in setting up our Continuous Delivery pipeline. How to cope with the difficulties of releasing every day our API Platform, in a sustainable and persistent way, and without discontinuing our clients' businesses.
Agile requirements - alla ricerca del filo rosso (iad 2013)Fabio Armani
requisiti rappresentano, a mio avviso, il ‘fil rouge’ di tutto lo sviluppo software, sia che si tratti di applicazioni web o mobile, sia che siano coinvolti grandi sistemi Enterprise. Cerchiamo di capire perché.
Possiamo affermare che Lean Agile sta di fatto divenendo uno delle metodologie più adottate (se non il main-stream stesso) in ambito informatico e conseguentemente anche in ambiti connessi con l’informatica.
Nel mio talk (che spero possa trasformarsi in una tavola rotonda sul tema degli agile requirements e di ciò che ruota attorno ad essi) desidero presentare le varie possibilità di gestire i requisiti in modo agile e di seguire ad esempio il percorso delle “user story” (uno dei più efficaci metodi inventati in ambito agile o meglio nella metodologia eXtreme Programming per gestire i requisiti) in tutte le diverse fasi della loro ‘vita’ : a partire da ‘theme’, ‘epic’ e poi ‘story’ realizzata durante una determinata iterazione, fino al loro testing mediante Acceptance Test Driven Development e convalida business sul campo con gli utenti finali e i diversi stakeholder.
Bene… per poter effettuare questo affascinante itinerario cosa e chi viene coinvolto? Scopriremo assieme (ed argomenteremo le diverse soluzioni) che un’intera organizzazione Enterprise si dovrà plasmare per consentire ad una storia di divenire parte di una nuova funzionalità di successo.
Per avere realmente successo dovremmo scomodare molte metodologie tra le quali Lean , Agile, Lean StartUp, Lean UX e questo ci porterà nuovamente al punto di partenza. Perché vogliamo realizzare proprio questa storia? Quale era il requisito da cui siamo partiti. A quale Vision ci siamo ispirati?
Sono certo che il tema è affascinante e sarà interessante affrontarlo collettivamente, specialmente se trattato in ambito di round table.
2014 11-21 presentazione breton agile at work - trentoClaudio Saurin
Applicazione delle metodologie Lean ed Agile lo sviluppo di prodotti hardware nel settore dell’industria dell’edilizia. Impiego del Canvas di progetto e delle Epic Story e User Story per la scomposizione del progetto e la definizione delle priorità in alternativa alla classica WBS. La gestione visuale del progetto con il Kanban delle User Story e l’integrazione con la metodologia Waterfall e Lean. Il livellamento del carico di lavoro a capa-cità finita e la gestione multi progetto visuale integrando Scrum e Visible Planning.
la seconda parte della presentazione è relativa alla applicazione di queste metodologie al settore edile. Si tratta di un progetto operativo sviluppato con l'architetto Daniela Rinaldi di verona
La nuova versione di Magento è, rispetto alla precedente, ancor più orientata all’utilizzo di sistemi di automazione già da tempo affermati nell’industria informatica (continuous integration e continuous delivery).
Questo intervento si propone di esplorare alcuni di questi aspetti partendo dalla nuova gestione dei comandi shell proposta dal framework. Con Magento 2 e gli attuali sistemi cloud si può quasi delineare una nuova figura accanto al Backend Developer, il “Devops” developer. Ovvero chi, facendo leva sugli strumenti ora nativi, si occupa di tutti quei processi che “dietro le quinte” garantiscono l’affidabilità del sistema, la ripetibilità e l’automazione dei processi e, in definitiva, la qualità del prodotto.
Riccardo Tempesta - Strumenti di automazione in Magento 2Meet Magento Italy
La nuova versione di Magento è, rispetto alla precedente, ancor più orientata all’utilizzo di sistemi di automazione già da tempo affermati nell’industria informatica (continuous integration e continuous delivery).
Questo intervento si propone di esplorare alcuni di questi aspetti partendo dalla nuova gestione dei comandi shell proposta dal framework. Con Magento 2 e gli attuali sistemi cloud si può quasi delineare una nuova figura accanto al Backend Developer, il “Devops” developer. Ovvero chi, facendo leva sugli strumenti ora nativi, si occupa di tutti quei processi che “dietro le quinte” garantiscono l’affidabilità del sistema, la ripetibilità e l’automazione dei processi e, in definitiva, la qualità del prodotto.
Ottava puntata del MuleSoft Meetup di Milano. Parliamo insieme a Paolo Petronzi di metodologie di testing e automazione con MUnit e poi con Luca Bonaldo, il nostro Mulesoft Mentor in Italia, dell'integrazione con Salesforce.
https://meetups.mulesoft.com/events/details/mulesoft-milano-presents-mulesoft-milano-meetup-8/
La ragione principale per cui le aziende decidono di non adottare il DevOps per il database è di preservare la sicurezza del database stesso. Eppure, si tratta di una concezione errata: applicando il DevSecOps al DB, infatti, è possibile creare in ambienti strutturati le condizioni per un rilascio sicuro degli script del database, gestendo al meglio potenziali rischi di sicurezza. Segui il webinar per apprendere come includere il DB all’interno della tua strategia DevSecOps.
Final presentation of Project Management course (Gestione Progetti Software) ...Alexander Minichino
Final presentation of the Project Management course which I've attended in first semester 2019-2020 at the University of Salerno.
My role was that of Project Manager (one of two) in a team of seven members.
The Github link is available here: https://github.com/alexminichino/trawell
Presented together with Fabiano Gazzola: Product Owner at Breton and Daniela Rinaldi: Agile Coach consultant for Breton.
Agile's real application in the development of new products such as industrial machinery that integrate hardware, software and process technologies. From vision to product in iterative and incremental mode with waterfall hybridization elements. The project of an Agile minifabric to develop new products. The human aspects and the difficulties to overcome to make the thing sustainable.
Durante l'ottavo Meetup di Milano, tenutosi il 19 Maggio dalle ore 10:30, si è potuto approfondire con Paolo Petronzi tutte le metodologie di testing e automazione con MUnit, invce con Luca Bonaldo, il nostro Mulesoft Mentor in Italia, c'è stato un focus sull'integrazione con Salesforce.
Obiettivo: semplificare la procedura del processo, rappresentarlo graficamente (tutte le fasi), indentificare punti di controllo ed eventuali criticità nel flusso
garantire lo standard di qualità dei prodotti e migliorare il piano di campionamento
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
In un contesto altamente concorrenziale, le aspettative dei merchant non riguardano più unicamente uptime e possibilità di scaling dei propri shop, ma dettano anche obiettivi specifici in termini di velocità di caricamento delle pagine secondo KPI prestabiliti, al di sotto dei quali far scattare allarmi e/o azioni.
Durante lo speech Marco mostrerà come configurare e utilizzare alcuni applicativi per effettuare test di carico e per analizzare i risultati ottenuti ai fini di un corretto dimensionamento dell’infrastruttura.
Analizzerà infine benchmark di casi reali, evidenziando classiche criticità di Magento e possibili soluzioni.
2014 11-21 presentazione breton agile at work - trentoClaudio Saurin
Applicazione delle metodologie Lean ed Agile lo sviluppo di prodotti hardware nel settore dell’industria dell’edilizia. Impiego del Canvas di progetto e delle Epic Story e User Story per la scomposizione del progetto e la definizione delle priorità in alternativa alla classica WBS. La gestione visuale del progetto con il Kanban delle User Story e l’integrazione con la metodologia Waterfall e Lean. Il livellamento del carico di lavoro a capa-cità finita e la gestione multi progetto visuale integrando Scrum e Visible Planning.
la seconda parte della presentazione è relativa alla applicazione di queste metodologie al settore edile. Si tratta di un progetto operativo sviluppato con l'architetto Daniela Rinaldi di verona
La nuova versione di Magento è, rispetto alla precedente, ancor più orientata all’utilizzo di sistemi di automazione già da tempo affermati nell’industria informatica (continuous integration e continuous delivery).
Questo intervento si propone di esplorare alcuni di questi aspetti partendo dalla nuova gestione dei comandi shell proposta dal framework. Con Magento 2 e gli attuali sistemi cloud si può quasi delineare una nuova figura accanto al Backend Developer, il “Devops” developer. Ovvero chi, facendo leva sugli strumenti ora nativi, si occupa di tutti quei processi che “dietro le quinte” garantiscono l’affidabilità del sistema, la ripetibilità e l’automazione dei processi e, in definitiva, la qualità del prodotto.
Riccardo Tempesta - Strumenti di automazione in Magento 2Meet Magento Italy
La nuova versione di Magento è, rispetto alla precedente, ancor più orientata all’utilizzo di sistemi di automazione già da tempo affermati nell’industria informatica (continuous integration e continuous delivery).
Questo intervento si propone di esplorare alcuni di questi aspetti partendo dalla nuova gestione dei comandi shell proposta dal framework. Con Magento 2 e gli attuali sistemi cloud si può quasi delineare una nuova figura accanto al Backend Developer, il “Devops” developer. Ovvero chi, facendo leva sugli strumenti ora nativi, si occupa di tutti quei processi che “dietro le quinte” garantiscono l’affidabilità del sistema, la ripetibilità e l’automazione dei processi e, in definitiva, la qualità del prodotto.
Ottava puntata del MuleSoft Meetup di Milano. Parliamo insieme a Paolo Petronzi di metodologie di testing e automazione con MUnit e poi con Luca Bonaldo, il nostro Mulesoft Mentor in Italia, dell'integrazione con Salesforce.
https://meetups.mulesoft.com/events/details/mulesoft-milano-presents-mulesoft-milano-meetup-8/
La ragione principale per cui le aziende decidono di non adottare il DevOps per il database è di preservare la sicurezza del database stesso. Eppure, si tratta di una concezione errata: applicando il DevSecOps al DB, infatti, è possibile creare in ambienti strutturati le condizioni per un rilascio sicuro degli script del database, gestendo al meglio potenziali rischi di sicurezza. Segui il webinar per apprendere come includere il DB all’interno della tua strategia DevSecOps.
Final presentation of Project Management course (Gestione Progetti Software) ...Alexander Minichino
Final presentation of the Project Management course which I've attended in first semester 2019-2020 at the University of Salerno.
My role was that of Project Manager (one of two) in a team of seven members.
The Github link is available here: https://github.com/alexminichino/trawell
Presented together with Fabiano Gazzola: Product Owner at Breton and Daniela Rinaldi: Agile Coach consultant for Breton.
Agile's real application in the development of new products such as industrial machinery that integrate hardware, software and process technologies. From vision to product in iterative and incremental mode with waterfall hybridization elements. The project of an Agile minifabric to develop new products. The human aspects and the difficulties to overcome to make the thing sustainable.
Durante l'ottavo Meetup di Milano, tenutosi il 19 Maggio dalle ore 10:30, si è potuto approfondire con Paolo Petronzi tutte le metodologie di testing e automazione con MUnit, invce con Luca Bonaldo, il nostro Mulesoft Mentor in Italia, c'è stato un focus sull'integrazione con Salesforce.
Obiettivo: semplificare la procedura del processo, rappresentarlo graficamente (tutte le fasi), indentificare punti di controllo ed eventuali criticità nel flusso
garantire lo standard di qualità dei prodotti e migliorare il piano di campionamento
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
In un contesto altamente concorrenziale, le aspettative dei merchant non riguardano più unicamente uptime e possibilità di scaling dei propri shop, ma dettano anche obiettivi specifici in termini di velocità di caricamento delle pagine secondo KPI prestabiliti, al di sotto dei quali far scattare allarmi e/o azioni.
Durante lo speech Marco mostrerà come configurare e utilizzare alcuni applicativi per effettuare test di carico e per analizzare i risultati ottenuti ai fini di un corretto dimensionamento dell’infrastruttura.
Analizzerà infine benchmark di casi reali, evidenziando classiche criticità di Magento e possibili soluzioni.
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
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à
● ...
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
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
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
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
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
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
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