SlideShare a Scribd company logo
1 of 22
windows azure deployment & tfs
Ricci Gian Maria
alkampfer@nablasoft.com
http://www.getlatestversion.it
Template designed by
brought to you by
Chi sono
Visual Studio ALM MVP
Appassionato di community e libero professionista
Contatti
Skype: alkampferaok
Twitter: alkampfer
Blog: http://www.codewrecks.com
http://www.getlatestversion.it http://blogs.ugidotnet.org/rgm
E-Mail: alkampfer@nablasoft.com
agenda
Concetti di base di Continuous Deployment
Continuous deployment su Windows Azure Web Sites
Deploy tramite git
Deploy tramite TF Service
Personalizzazione del workflow di rilascio
Continuous Deployment
Rilascio automatizzato del software
Rilasci in test / produzione
Velocizzare i feedback nel mondo agile
Verifica costante dello stato di salute del software
Evitare il «bagno di sangue» durante i rilasci
Azure Web Sites

Supporto di sorgenti
di pubblicazione
eterogenee
demo

Deploy: Hello World con
Git
Dietro le quinte
Da dove posso pubblicare con Git
Github
Codeplex
Qualsiasi hosting che supporta git
Cartella locale
Subversion (git-svn)
TFS VCS (git-tf)
Come personalizzo lo script di build
@echo off
[config]
command = deploy.cmd

.deployment

Echo Questo è il mio script di build

deploy.bat
Powershell
Bash
Php
…
Non partire da zero con il build script
@echo off

azure site deploymentscript --aspWAP
DemoApplicationdemoapplication.csproj
-s "demoapplication.sln"

:: ---------------------:: KUDU Deployment Script
:: ---------------------:: Prerequisites
:: ------------:: Verify node.js installed
where node 2>nul >nul
IF %ERRORLEVEL% NEQ 0 (
echo Missing node.js executable, please install node.js
)
:: Setup
:: ----setlocal enabledelayedexpansion
SET ARTIFACTS=%~dp0%artifacts

I command line tool di azure
prevedono la generazione di
uno script base di rilascio che
potrete modificare

IF NOT DEFINED DEPLOYMENT_SOURCE (
SET DEPLOYMENT_SOURCE=%~dp0%.
)

deploy.cmd

IF NOT DEFINED DEPLOYMENT_TARGET (
SET DEPLOYMENT_TARGET=%ARTIFACTS%wwwroot
)
IF NOT DEFINED NEXT_MANIFEST_PATH (
SET NEXT_MANIFEST_PATH=%ARTIFACTS%manifest
IF NOT DEFINED PREVIOUS_MANIFEST_PATH (
...
...
...
...

goto error
TF Service
Con TF Service è possibile pubblicare tramite una TFS Build
demo

Deploy: Hello World con
TF Service
Dietro le quinte
Viene creata una build di TFS che si basa su un template
apposite per la pubblicazione in azure

TF Service

Build agent
(elastic build)

Azure Web
Site
Build on-premise
È naturalmente possibile usare un build agent on-premise
per la build

TF Service

Build agent
(on premise)

Azure Web
Site
Vantaggi
Trigger: ad ogni checkin, manuale, schedulato, …
Integrato con TF Service (TFS)
Basato su workflow foundation
Estendibile
Log, drop folder, pubblicazione simboli sorgenti, etc (TFS
Build)
Feedback tool
Personalizzazioni tipiche
Deploy di una struttura database mediante SSDT
Esecuzione di smoke test al termine del deploy
Pubblicazione del risultato di una build completata in passato
(build quality / testing team)

Warm up del sito dopo il deploy
Invio mail con cambiamenti (bug chiusi etc)

…
demo
Personalizzazione del
template per aggiornare
database con SSDT
Ulteriori dettagli
Non è possibile, per ora, pubblicare da un progetto TF
Service basato su git
• Ancora il workflow di build non è personalizzabile
• Si può semplicemente deployare da un git locale

È possibile pubblicare su azure anche se si ha una
installazione completa TFS on premise
• Importare da Visual Studio il file publishsettings

• Specificare i parametri di deploy specifici per msbuild
Deploy from TFS on-premise to Azure Web
Sites
Tutta l’infrastruttura TFS risiede on-premise

TFS Server

Build agent
(on premise)

Azure Web
Site
Smoke test

Running a web

performance test to «smoke
test» the site

After deploy a test is failed, deploy is flagged failed
Grazie
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
prossimi giorni
Per contattarmi

alkampfer@nablasoft.com, info@getlatestversion.it

More Related Content

Viewers also liked

Team Foundation Service
Team Foundation ServiceTeam Foundation Service
Team Foundation Service
Danijel Malik
 
In the Clouds with Windows Phone 7
In the Clouds with Windows Phone 7In the Clouds with Windows Phone 7
In the Clouds with Windows Phone 7
Danijel Malik
 

Viewers also liked (7)

TFS - Quale source control
TFS - Quale source controlTFS - Quale source control
TFS - Quale source control
 
Git branching model
Git branching modelGit branching model
Git branching model
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
Deploy applications with TFS Build
Deploy applications with TFS BuildDeploy applications with TFS Build
Deploy applications with TFS Build
 
Team Foundation Service
Team Foundation ServiceTeam Foundation Service
Team Foundation Service
 
In the Clouds with Windows Phone 7
In the Clouds with Windows Phone 7In the Clouds with Windows Phone 7
In the Clouds with Windows Phone 7
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and Git
 

Similar to Automatically deployment to Azure Web Sites

Similar to Automatically deployment to Azure Web Sites (20)

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...
 
Tfs Basic - Quick Intro
Tfs Basic - Quick IntroTfs Basic - Quick Intro
Tfs Basic - Quick Intro
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppo
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
 
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
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
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...
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
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
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
 
Workflow Dev-Test-Live per WordPress
Workflow Dev-Test-Live per WordPressWorkflow Dev-Test-Live per WordPress
Workflow Dev-Test-Live per WordPress
 
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
 
Development process
Development processDevelopment process
Development process
 
Build Automation Tips
Build Automation TipsBuild Automation Tips
Build Automation Tips
 
Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi reali
 
TDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastruttura
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016
 
Tdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastruttura
 

More from Gian Maria Ricci

Porfolio Management in TFS 2013
Porfolio Management in TFS 2013Porfolio Management in TFS 2013
Porfolio Management in TFS 2013
Gian Maria Ricci
 

More from Gian Maria Ricci (20)

Se non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoSe non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorando
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
 
Migrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a GitMigrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a Git
 
Real World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsReal World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOps
 
Gestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devops
 
Build and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesBuild and release in code with azure devops pipelines
Build and release in code with azure devops pipelines
 
Azure Pipeline in salsa yaml
Azure Pipeline in salsa yamlAzure Pipeline in salsa yaml
Azure Pipeline in salsa yaml
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teams
 
Distribute your code with NUget and build vNext
Distribute your code with NUget and build vNextDistribute your code with NUget and build vNext
Distribute your code with NUget and build vNext
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
 
Introduction to Application insights
Introduction to Application insightsIntroduction to Application insights
Introduction to Application insights
 
Branch model in Git
Branch model in GitBranch model in Git
Branch model in Git
 
Introduction to Visual Studio Online
Introduction to Visual Studio OnlineIntroduction to Visual Studio Online
Introduction to Visual Studio Online
 
Git si o Git No
Git si o Git NoGit si o Git No
Git si o Git No
 
Testing
TestingTesting
Testing
 
Come Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectCome Organizzare il proprio Team Project
Come Organizzare il proprio Team Project
 
Git Perchè Usarlo
Git Perchè UsarloGit Perchè Usarlo
Git Perchè Usarlo
 
Porfolio Management in TFS 2013
Porfolio Management in TFS 2013Porfolio Management in TFS 2013
Porfolio Management in TFS 2013
 
TFS or Team Foundation Service?
TFS or Team Foundation Service?TFS or Team Foundation Service?
TFS or Team Foundation Service?
 
Typical Developer Day
Typical Developer DayTypical Developer Day
Typical Developer Day
 

Automatically deployment to Azure Web Sites

  • 1. windows azure deployment & tfs Ricci Gian Maria alkampfer@nablasoft.com http://www.getlatestversion.it Template designed by
  • 3. Chi sono Visual Studio ALM MVP Appassionato di community e libero professionista Contatti Skype: alkampferaok Twitter: alkampfer Blog: http://www.codewrecks.com http://www.getlatestversion.it http://blogs.ugidotnet.org/rgm E-Mail: alkampfer@nablasoft.com
  • 4. agenda Concetti di base di Continuous Deployment Continuous deployment su Windows Azure Web Sites Deploy tramite git Deploy tramite TF Service Personalizzazione del workflow di rilascio
  • 5. Continuous Deployment Rilascio automatizzato del software Rilasci in test / produzione Velocizzare i feedback nel mondo agile Verifica costante dello stato di salute del software Evitare il «bagno di sangue» durante i rilasci
  • 6. Azure Web Sites Supporto di sorgenti di pubblicazione eterogenee
  • 9. Da dove posso pubblicare con Git Github Codeplex Qualsiasi hosting che supporta git Cartella locale Subversion (git-svn) TFS VCS (git-tf)
  • 10. Come personalizzo lo script di build @echo off [config] command = deploy.cmd .deployment Echo Questo è il mio script di build deploy.bat Powershell Bash Php …
  • 11. Non partire da zero con il build script @echo off azure site deploymentscript --aspWAP DemoApplicationdemoapplication.csproj -s "demoapplication.sln" :: ---------------------:: KUDU Deployment Script :: ---------------------:: Prerequisites :: ------------:: Verify node.js installed where node 2>nul >nul IF %ERRORLEVEL% NEQ 0 ( echo Missing node.js executable, please install node.js ) :: Setup :: ----setlocal enabledelayedexpansion SET ARTIFACTS=%~dp0%artifacts I command line tool di azure prevedono la generazione di uno script base di rilascio che potrete modificare IF NOT DEFINED DEPLOYMENT_SOURCE ( SET DEPLOYMENT_SOURCE=%~dp0%. ) deploy.cmd IF NOT DEFINED DEPLOYMENT_TARGET ( SET DEPLOYMENT_TARGET=%ARTIFACTS%wwwroot ) IF NOT DEFINED NEXT_MANIFEST_PATH ( SET NEXT_MANIFEST_PATH=%ARTIFACTS%manifest IF NOT DEFINED PREVIOUS_MANIFEST_PATH ( ... ... ... ... goto error
  • 12. TF Service Con TF Service è possibile pubblicare tramite una TFS Build
  • 13. demo Deploy: Hello World con TF Service
  • 14. Dietro le quinte Viene creata una build di TFS che si basa su un template apposite per la pubblicazione in azure TF Service Build agent (elastic build) Azure Web Site
  • 15. Build on-premise È naturalmente possibile usare un build agent on-premise per la build TF Service Build agent (on premise) Azure Web Site
  • 16. Vantaggi Trigger: ad ogni checkin, manuale, schedulato, … Integrato con TF Service (TFS) Basato su workflow foundation Estendibile Log, drop folder, pubblicazione simboli sorgenti, etc (TFS Build) Feedback tool
  • 17. Personalizzazioni tipiche Deploy di una struttura database mediante SSDT Esecuzione di smoke test al termine del deploy Pubblicazione del risultato di una build completata in passato (build quality / testing team) Warm up del sito dopo il deploy Invio mail con cambiamenti (bug chiusi etc) …
  • 18. demo Personalizzazione del template per aggiornare database con SSDT
  • 19. Ulteriori dettagli Non è possibile, per ora, pubblicare da un progetto TF Service basato su git • Ancora il workflow di build non è personalizzabile • Si può semplicemente deployare da un git locale È possibile pubblicare su azure anche se si ha una installazione completa TFS on premise • Importare da Visual Studio il file publishsettings • Specificare i parametri di deploy specifici per msbuild
  • 20. Deploy from TFS on-premise to Azure Web Sites Tutta l’infrastruttura TFS risiede on-premise TFS Server Build agent (on premise) Azure Web Site
  • 21. Smoke test Running a web performance test to «smoke test» the site After deploy a test is failed, deploy is flagged failed
  • 22. Grazie Grazie a tutti per la partecipazione Riceverete il link per il download a slide e demo via email nei prossimi giorni Per contattarmi alkampfer@nablasoft.com, info@getlatestversion.it