SlideShare a Scribd company logo
1 of 10
getlatestversion
Guarda, senza mani!
Automatizzare build e rilasci con Powershell senza farsi male
Marco Amendola
@marcoamendola
marco.amendola@outlook.com
Sponsor
Automatizzazione build e rilasci
• Non vuol dire fare CRTL+SHIFT+B in VisualStudio
• Operazioni precedenti o successive alla compilazione
• Test automatici (specie se di lunga durata)
• Preparazione e pubblicazione pacchetti Nuget, Setup o semplici zip
• Documentazione
• Deploy su ambienti di produzione
• Operazioni di manutenzione (import, export, statistiche, ecc.)
Cosa significa?
• Sana pigrizia
Fatica, noia ed “attrito” sono campanelli d’allarme.
Chiedersi se occorre cambiare qualcosa.
• Migliorare le pratiche di sviluppo
“Si è sempre fatto così” non è un buon motivo.
Imitare chi sta già facendo diversamente da tempo.
• Velocità del progetto
Le operazioni manuali impediscono la velocità.
L’automazione, invece, la promuove migliorando il ritmo.
Perché farlo?
• Gradualità
Non puntare subito al massimo grado: dopo primo interesse la difficoltà può
frenare. Passare dagli script alle build regolari fino alla continuous integration.
• Diminuire il rischio
Procedere per gradi raccogliendo subito i benefici e costruendo sui risultati
ottenuti.
• Convincere il cliente/l’azienda ostile
Introdurre piccole variazioni incrementalmente: sono meglio accettate (e in ogni
caso si notano meno!)
Come fare (per non farsi male)?
• Build tools
PSake, MSBuild, Rake, Nant
• Build server e Deploy server di terze parti
TeamCity, CruiseControl.NET, Octopus Deploy
• Visual Studio Team Services
Completamente integrato, setup semplice
Con quali strumenti?
Esperimento
Automazione
locale
Automazione e
pianificazione
remota
Build server
Semplice script Powershell
• E’ codice, flessibile e non (troppo) criptico
• Facile trovare documentazione e supporto
• Scala molto bene al crescere dei requisiti
Con quali strumenti?
• Rendere la build «autonoma» e riproducibile
Deve funzionare con il minimo indispensabile (scaricare il possibile da
web, oppure metterlo nel repository).
Alcuni SDK, comunque, vanno preinstallati.
• Non perdere tempo ad automatizzare proprio tutto
Specialmente per il deploy, installare i prerequisiti e configurare
l’ambiente in anticipo semplifica la vita.
Consigli finali
• PowerShell Tools for Visual Studio 2015
extension
• Open Command Line extension
• Invoke-Build: Build Automation in PowerShell
• psake: A build automation tool... now with less
XML...
https://doc.co/Mc2NQS
Link utili
Feedback Form
http://bit.ly/DOAW16FEED1
Dedicateci 2 minuti del vostro tempo,
e ci aiuterete a crescere e migliorare!
Track Intro
http://bit.ly/DOAW16FEED2
Track Avanzata

More Related Content

What's hot

Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie Agili
Alessandro Astarita
 
Scrumban a Methodology Fusion - Bettersoftware & Codemotion 2011
Scrumban a Methodology Fusion - Bettersoftware & Codemotion 2011Scrumban a Methodology Fusion - Bettersoftware & Codemotion 2011
Scrumban a Methodology Fusion - Bettersoftware & Codemotion 2011
Fabio Armani
 

What's hot (12)

Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOps
 
La tua prima kanban board
La tua prima kanban boardLa tua prima kanban board
La tua prima kanban board
 
ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie Agili
 
Introduction to the Particular Platform
Introduction to the Particular PlatformIntroduction to the Particular Platform
Introduction to the Particular Platform
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a git
 
Festivalmente: Getting Things done
Festivalmente: Getting Things doneFestivalmente: Getting Things done
Festivalmente: Getting Things done
 
Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!
 
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
 
Sviluppo Agile secondo l'approccio SCRUM
Sviluppo Agile secondo l'approccio SCRUMSviluppo Agile secondo l'approccio SCRUM
Sviluppo Agile secondo l'approccio SCRUM
 
Scrumban a Methodology Fusion - Bettersoftware & Codemotion 2011
Scrumban a Methodology Fusion - Bettersoftware & Codemotion 2011Scrumban a Methodology Fusion - Bettersoftware & Codemotion 2011
Scrumban a Methodology Fusion - Bettersoftware & Codemotion 2011
 
Hybrid DevOps Stack
Hybrid DevOps StackHybrid DevOps Stack
Hybrid DevOps Stack
 

Similar to Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi male

Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web Sites
Gian Maria Ricci
 
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2016
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
DotNetCampus
 

Similar to Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi male (20)

Rapid prototyping with Ionic Framework
Rapid prototyping with Ionic FrameworkRapid prototyping with Ionic Framework
Rapid prototyping with Ionic Framework
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step Functions
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web Sites
 
Continuos Integration
Continuos IntegrationContinuos Integration
Continuos Integration
 
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
 
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
 
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
 
Automatic Server Provisioning
Automatic Server ProvisioningAutomatic Server Provisioning
Automatic Server Provisioning
 
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...
 
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
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
 
JAVASCRIPT TASK AUTOMATION
JAVASCRIPT TASK AUTOMATIONJAVASCRIPT TASK AUTOMATION
JAVASCRIPT TASK AUTOMATION
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
 
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...
 
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
 
AgileIoT, da Arduino al Delivery
AgileIoT, da Arduino al DeliveryAgileIoT, da Arduino al Delivery
AgileIoT, da Arduino al Delivery
 
VS Package @ CD2008
VS Package @ CD2008VS Package @ CD2008
VS Package @ CD2008
 

More from Marco Amendola

Win8@work - Windows 8 e MVVM
Win8@work - Windows 8 e MVVMWin8@work - Windows 8 e MVVM
Win8@work - Windows 8 e MVVM
Marco Amendola
 

More from Marco Amendola (6)

LUIS e Bot SDK
LUIS e Bot SDKLUIS e Bot SDK
LUIS e Bot SDK
 
Divertirsi anche con il codice legacy
Divertirsi anche con il codice legacyDivertirsi anche con il codice legacy
Divertirsi anche con il codice legacy
 
Come farsi autorizzare gli unit test dal boss
Come farsi autorizzare gli unit test dal bossCome farsi autorizzare gli unit test dal boss
Come farsi autorizzare gli unit test dal boss
 
Win8@work - Windows 8 e MVVM
Win8@work - Windows 8 e MVVMWin8@work - Windows 8 e MVVM
Win8@work - Windows 8 e MVVM
 
WP7, MVVM e Caliburn.Micro
WP7, MVVM e Caliburn.MicroWP7, MVVM e Caliburn.Micro
WP7, MVVM e Caliburn.Micro
 
MVVM senza fronzoli con Caliburn.Micro
MVVM senza fronzoli con Caliburn.MicroMVVM senza fronzoli con Caliburn.Micro
MVVM senza fronzoli con Caliburn.Micro
 

Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi male

  • 1. getlatestversion Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi male Marco Amendola @marcoamendola marco.amendola@outlook.com
  • 3. Automatizzazione build e rilasci • Non vuol dire fare CRTL+SHIFT+B in VisualStudio • Operazioni precedenti o successive alla compilazione • Test automatici (specie se di lunga durata) • Preparazione e pubblicazione pacchetti Nuget, Setup o semplici zip • Documentazione • Deploy su ambienti di produzione • Operazioni di manutenzione (import, export, statistiche, ecc.) Cosa significa?
  • 4. • Sana pigrizia Fatica, noia ed “attrito” sono campanelli d’allarme. Chiedersi se occorre cambiare qualcosa. • Migliorare le pratiche di sviluppo “Si è sempre fatto così” non è un buon motivo. Imitare chi sta già facendo diversamente da tempo. • Velocità del progetto Le operazioni manuali impediscono la velocità. L’automazione, invece, la promuove migliorando il ritmo. Perché farlo?
  • 5. • Gradualità Non puntare subito al massimo grado: dopo primo interesse la difficoltà può frenare. Passare dagli script alle build regolari fino alla continuous integration. • Diminuire il rischio Procedere per gradi raccogliendo subito i benefici e costruendo sui risultati ottenuti. • Convincere il cliente/l’azienda ostile Introdurre piccole variazioni incrementalmente: sono meglio accettate (e in ogni caso si notano meno!) Come fare (per non farsi male)?
  • 6. • Build tools PSake, MSBuild, Rake, Nant • Build server e Deploy server di terze parti TeamCity, CruiseControl.NET, Octopus Deploy • Visual Studio Team Services Completamente integrato, setup semplice Con quali strumenti?
  • 7. Esperimento Automazione locale Automazione e pianificazione remota Build server Semplice script Powershell • E’ codice, flessibile e non (troppo) criptico • Facile trovare documentazione e supporto • Scala molto bene al crescere dei requisiti Con quali strumenti?
  • 8. • Rendere la build «autonoma» e riproducibile Deve funzionare con il minimo indispensabile (scaricare il possibile da web, oppure metterlo nel repository). Alcuni SDK, comunque, vanno preinstallati. • Non perdere tempo ad automatizzare proprio tutto Specialmente per il deploy, installare i prerequisiti e configurare l’ambiente in anticipo semplifica la vita. Consigli finali
  • 9. • PowerShell Tools for Visual Studio 2015 extension • Open Command Line extension • Invoke-Build: Build Automation in PowerShell • psake: A build automation tool... now with less XML... https://doc.co/Mc2NQS Link utili
  • 10. Feedback Form http://bit.ly/DOAW16FEED1 Dedicateci 2 minuti del vostro tempo, e ci aiuterete a crescere e migliorare! Track Intro http://bit.ly/DOAW16FEED2 Track Avanzata