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
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
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)
…
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