SlideShare a Scribd company logo
1 of 19
Download to read offline
Continuos Integration
Una pratica XP
Alessandro Ceseno
contact me, my website is:
www.alexceseno.it
Add me on Linkedin:
http://www.linkedin.com/in/alessandroceseno
Come rispondere al cambiamento...
Ogni “giorno”...
i requisiti
la tecnologia
il business
il design
la risposta è... Continuos Integration
CI
Continuos Integration è una pratica
dell’ eXtreme Programming
CI è realizzata:
● Continuos Integration Server
● Tools: Jenkins o Hudson
Implementazione del SW e CI
● Sviluppatore ha una copia locale del codice
● Source code management system
● Pratica agile ha come caratteristica il fatto
che il codice sviluppato abbia dei tests
automatici (ref. TDD)
Implementazione del SW e CI (2)
● build in locale (master e non master)
● anche test automatici nella build
●
●
●
●
●

aggiornamento della copia locale
nuova build in locale
verifica build ok (anche i tests)
commit sul server di versionamento
nel caso di errori, risolvere tutti i problemi
prima del commit sul server
Continuos Integration Server
● deve avere accesso al repository del codice
● la macchina di integrazione effettua una
nuova build, se ha successo (anche i tests),
si ha l’implementazione della feature
effettuata
● la build è effettuata da un sw (Jenkins o
Hudson)
● Nel caso in cui due sviluppatori hanno
effettuato il commit “contemporaneamente”, il
server di continuos integration avvertirà nel
caso di errori della build o tests.
● Possibili problemi possono essere risolti
velocemente e avere di nuovo una build
funzionante.
● Il server di integrazione non dovrebbe avere
una build non funzionante per più di 24/48
ore.
Le pratiche di CI
● Avere un solo repository del codice
sorgente
● build automatizzata
● Includi i tests nella tua build
Le pratiche di CI (2)
● I commits devono essere consistenti e
frequenti: piccole funzionalità
implementate in modo incrementale
Le pratiche CI (3)
● Ciascun commit nel repository dovrebbe
essere seguito da una nuova build sulla
macchina di integrazione: Continuos
Integration Server
Avere una build funzionante di ambienti diversi consente di aver un
maggior controllo e consapevolezza del codice
Le pratiche CI (4)
● Mantieni veloce la build
● Ambiente di Test/Collaudo/Preproduzione
simile all’ambiente di produzione
● Semplicity (mantieni il processo
semplice)
Le pratiche CI (5)
● Comunicazione
● Il deployment deve essere automatizzato
I vantaggi di CI
● riduce gli errori e i rischi
● maggior conoscenza del codice da parte
di tutti i membri del team
● maggior velocità nel riconoscere e
risolvere i bugs
I vantaggi di CI (2)
● meno bugs cumulativi
● deployment frequenti
I vantaggi di CI (3)
● si amministra e si automatizza il
processo di build
● si integra il lavoro del singolo nel lavoro
del team
I vantaggi di CI (4)
● si hanno feedbacks sui cambiamenti di
codice, ma anche sui reports,
documenti...
● si diminuiscono radicalmente i problemi
di integrazione
Continuos Integration
Una pratica XP
Alessandro Ceseno
contact me, my website is:
www.alexceseno.it
Add me on Linkedin:
http://www.linkedin.com/in/alessandroceseno

More Related Content

Similar to Continuos Integration

CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeDotNetMarche
 
CI/CD - Presentazione Introduttiva
CI/CD - Presentazione IntroduttivaCI/CD - Presentazione Introduttiva
CI/CD - Presentazione IntroduttivaMatteo Di Carlo
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
 
GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016Gaetano Paternò
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016Gaetano Paternò
 
Il computer dice no!
Il computer dice no!Il computer dice no!
Il computer dice no!Matteo Emili
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfFlorence Consulting
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Mattia Milleri
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERDotNetCampus
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Integrazione continua e Deploy automatizzato
Integrazione continua e Deploy automatizzatoIntegrazione continua e Deploy automatizzato
Integrazione continua e Deploy automatizzatoGian Maria Ricci
 

Similar to Continuos Integration (20)

CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
 
CI/CD - Presentazione Introduttiva
CI/CD - Presentazione IntroduttivaCI/CD - Presentazione Introduttiva
CI/CD - Presentazione Introduttiva
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous Integration
 
GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016
 
Il computer dice no!
Il computer dice no!Il computer dice no!
Il computer dice no!
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVER
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
 
EtnaDev 2016 - 21/10/2016
EtnaDev 2016 - 21/10/2016EtnaDev 2016 - 21/10/2016
EtnaDev 2016 - 21/10/2016
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Software Testing e TDD
Software Testing e TDDSoftware Testing e TDD
Software Testing e TDD
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Build Automation Tips
Build Automation TipsBuild Automation Tips
Build Automation Tips
 
LARUS 10th - Rampado Omar
LARUS 10th - Rampado OmarLARUS 10th - Rampado Omar
LARUS 10th - Rampado Omar
 
Integrazione continua e Deploy automatizzato
Integrazione continua e Deploy automatizzatoIntegrazione continua e Deploy automatizzato
Integrazione continua e Deploy automatizzato
 
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
 
Total Testing in DevOps
Total Testing in DevOpsTotal Testing in DevOps
Total Testing in DevOps
 

More from Alessandro Ceseno

Test Driven Development for iOS
Test Driven Development for iOSTest Driven Development for iOS
Test Driven Development for iOSAlessandro Ceseno
 
TDD patterns and TDD strategies
TDD patterns and TDD strategiesTDD patterns and TDD strategies
TDD patterns and TDD strategiesAlessandro Ceseno
 
TDD - Test Driven Development - Come scrivere un software migliore
TDD - Test Driven Development - Come scrivere un software miglioreTDD - Test Driven Development - Come scrivere un software migliore
TDD - Test Driven Development - Come scrivere un software miglioreAlessandro Ceseno
 

More from Alessandro Ceseno (6)

Test Driven Development for iOS
Test Driven Development for iOSTest Driven Development for iOS
Test Driven Development for iOS
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
TDD patterns and TDD strategies
TDD patterns and TDD strategiesTDD patterns and TDD strategies
TDD patterns and TDD strategies
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
TDD - Test Driven Development - Come scrivere un software migliore
TDD - Test Driven Development - Come scrivere un software miglioreTDD - Test Driven Development - Come scrivere un software migliore
TDD - Test Driven Development - Come scrivere un software migliore
 

Continuos Integration

  • 1. Continuos Integration Una pratica XP Alessandro Ceseno contact me, my website is: www.alexceseno.it Add me on Linkedin: http://www.linkedin.com/in/alessandroceseno
  • 2. Come rispondere al cambiamento... Ogni “giorno”... i requisiti la tecnologia il business il design la risposta è... Continuos Integration
  • 3. CI Continuos Integration è una pratica dell’ eXtreme Programming CI è realizzata: ● Continuos Integration Server ● Tools: Jenkins o Hudson
  • 4. Implementazione del SW e CI ● Sviluppatore ha una copia locale del codice ● Source code management system ● Pratica agile ha come caratteristica il fatto che il codice sviluppato abbia dei tests automatici (ref. TDD)
  • 5. Implementazione del SW e CI (2) ● build in locale (master e non master) ● anche test automatici nella build
  • 6. ● ● ● ● ● aggiornamento della copia locale nuova build in locale verifica build ok (anche i tests) commit sul server di versionamento nel caso di errori, risolvere tutti i problemi prima del commit sul server
  • 7. Continuos Integration Server ● deve avere accesso al repository del codice ● la macchina di integrazione effettua una nuova build, se ha successo (anche i tests), si ha l’implementazione della feature effettuata ● la build è effettuata da un sw (Jenkins o Hudson)
  • 8. ● Nel caso in cui due sviluppatori hanno effettuato il commit “contemporaneamente”, il server di continuos integration avvertirà nel caso di errori della build o tests.
  • 9. ● Possibili problemi possono essere risolti velocemente e avere di nuovo una build funzionante. ● Il server di integrazione non dovrebbe avere una build non funzionante per più di 24/48 ore.
  • 10. Le pratiche di CI ● Avere un solo repository del codice sorgente ● build automatizzata ● Includi i tests nella tua build
  • 11. Le pratiche di CI (2) ● I commits devono essere consistenti e frequenti: piccole funzionalità implementate in modo incrementale
  • 12. Le pratiche CI (3) ● Ciascun commit nel repository dovrebbe essere seguito da una nuova build sulla macchina di integrazione: Continuos Integration Server Avere una build funzionante di ambienti diversi consente di aver un maggior controllo e consapevolezza del codice
  • 13. Le pratiche CI (4) ● Mantieni veloce la build ● Ambiente di Test/Collaudo/Preproduzione simile all’ambiente di produzione ● Semplicity (mantieni il processo semplice)
  • 14. Le pratiche CI (5) ● Comunicazione ● Il deployment deve essere automatizzato
  • 15. I vantaggi di CI ● riduce gli errori e i rischi ● maggior conoscenza del codice da parte di tutti i membri del team ● maggior velocità nel riconoscere e risolvere i bugs
  • 16. I vantaggi di CI (2) ● meno bugs cumulativi ● deployment frequenti
  • 17. I vantaggi di CI (3) ● si amministra e si automatizza il processo di build ● si integra il lavoro del singolo nel lavoro del team
  • 18. I vantaggi di CI (4) ● si hanno feedbacks sui cambiamenti di codice, ma anche sui reports, documenti... ● si diminuiscono radicalmente i problemi di integrazione
  • 19. Continuos Integration Una pratica XP Alessandro Ceseno contact me, my website is: www.alexceseno.it Add me on Linkedin: http://www.linkedin.com/in/alessandroceseno