SlideShare uma empresa Scribd logo
1 de 25
STRATEGIE DI MIGRAZIONE DA TFS AD
AZURE DEVOPS SERVICES
Matteo Emili
matteo.emili@live.com||https://mattvsts.blogspot.com||https://twitter.com/MattVSTS
DEVOPS
AT WORK
DI COSA PARLIAMO?
Abbiamo una istanza di Team Foundation Server in uso da
diversi anni, e finalmente abbiamo luce verde per migrare
ad Azure DevOps Services. E adesso come faccio?
3
DEVOPS
AT WORK
LAVIA PIÚ SEMPLICE
Microsoft mette a disposizione un servizio di importazione dell’intera istanza
di Team Foundation Server verso Azure DevOps Services
Supporta lo scenario di completa ad altissima fedeltá
Ci sono alcuni limiti tecnici e pratici, potrebbe essere necessaria
una migrazione granulare e selettiva
https://docs.microsoft.com/en-us/azure/devops/articles/migration-import
4
DEVOPS
AT WORK
LAVIA MENO SEMPLICE
Situazioni in cui non possiamo effettuare un lift-and-shift di
Team Foundation Server nel cloud
Si deve migrare con approccio mirato e strumenti dedicati
Non esiste una soluzione standard, ma una serie di pratiche note
5
DEVOPS
AT WORK
TRE COMPONENTI
FONDAMENTALI
6
Work ItemsSource Code Build and Release
DEVOPS
AT WORK
BUILDAND RELEASE
7
DEVOPS
AT WORK
MIGRARE BUILD E RELEASE
8
É la parte piú semplice da eseguire!
Basta esportare le definizioni e re-importarle a
destinazione, sostituendo parametri di progetto
Ottima scusa per tenere traccia delle definizioni,
inserendole nel repository del codice sorgente
Build and Release
DEVOPS
AT WORK
MIGRARE BUILD E RELEASE
9
Facile, basta esportare le definizioni e re-
importarle a destinazione, sostituendo parametri
Build and Release
DEVOPS
AT WORK
SOURCE CODE
10
DEVOPS
AT WORK
MIGRARE IL CODICE SORGENTE
11
Scenari possibili? Molti.
Source Code
DEVOPS
AT WORK
MIGRARE GITAGIT
12
Sul serio?!
git clone --mirror https://tfs.acme.corp/Department/Project
cd Project
git push --mirror https://dev.azure.com/project
Ci possono essere delle varianti di questo approccio – con remote, utente esplicito, etc.
Source Code
DEVOPS
AT WORK
MIGRARE GITAGIT
13
Migrazione di solo codice
git clone https://tfs.acme.corp/Department/Project
cd Project
git remote add target https://dev.azure.com/project
git push --u target master
Source Code
DEVOPS
AT WORK
DEMO
14
DEVOPS
AT WORK
RECAP: MIGRARE TFVCAGIT
15
La via piú facile, Import Repository*
Source Code
* solo con TFS 2017 o superiore
DEVOPS
AT WORK
MIGRARE TFVC AGIT
16
La via piú facile, con Team Foundation Server 2017
Source Code
DEVOPS
AT WORK
RECAP: MIGRARE TFVCAGIT
17
Quella piú complessa, con git-tfs
https://github.com/git-tfs/git-tfs
Source Code
DEVOPS
AT WORK
WORK ITEM
18
DEVOPS
AT WORK
MIGRARE WORK ITEM
19
La maggior parte del tempo viene speso in questa attivitá
É considerato essenziale per il valore della storia
Spesso questo valore viene sovrastimato (ci servono revisioni vecchie di anni?)
Work Items
DEVOPS
AT WORK
IL VALORE DELLE REVISIONI STORICHE
20
Ha senso portare anni di storia in un nuovo sistema?
Possiamo consolidare la storia del Work Item
La migrazione diventa piú rapida e snella
Work Items
DEVOPS
AT WORK
ESSENZIALE: L’INTEGRITÁ DELL’INFORMAZIONE
21
I Work Item devono rimanere il piú fedeli possibili all’originale
Non c’é valore nell’avere delle copie malformate in un nuovo sistema
La soluzione migliore é migrare tutto quello di attivo
Ció che é considerato chiuso/risolto/eliminato rimane nel sistema legacy
Viene stabilito un collegamento fra il vecchio sistema ed il nuovo
Il sistema legacy viene mantenuto operativo in sola lettura
Work Items
DEVOPS
AT WORK
DEMO
22
DEVOPS
AT WORK
RECAP: AZURE DEVOPS MIGRATION TOOLS
23
Potentissimo strumento per manipolazione e migrazione di Work Item
Modifiche di massa
Migrazione ad alta fedeltá
Gestisce anche Work Item di Test Management
Permette il cambio di Process Template
https://github.com/nkdAgility/azure-devops-migration-tools
Work Items
DEVOPS
AT WORK
IN SOSTANZA
24
Una migrazione granulare é un progetto intenso e potenzialmente lungo
Si é sempre soggetti a limitazioni ambientali (throttling o hardware)
Ottenere alta fedeltá é abbastanza difficile, ma non impossibile
Se possibile, importate l’intera collection 
Work ItemsSource Code Build and Release
Slidedisponibilisuhttps://slideshare.net/matteoemili
GRAZIE!

Mais conteúdo relacionado

Semelhante a Strategie di migrazione da Team Foundation Server ad Azure DevOps Services

Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 
Giornata aperta sul web 2017 - Workshop WordPress
Giornata aperta sul web 2017 - Workshop WordPressGiornata aperta sul web 2017 - Workshop WordPress
Giornata aperta sul web 2017 - Workshop WordPressMarco Milesi
 
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 sviluppoAndrea Dottor
 
CCI 2019 - Exchange 2019 da 0 ad HA in 1 ora
CCI 2019 - Exchange 2019 da 0 ad HA in 1 oraCCI 2019 - Exchange 2019 da 0 ad HA in 1 ora
CCI 2019 - Exchange 2019 da 0 ad HA in 1 orawalk2talk srl
 
Il cielo è sempre più azure
Il cielo è sempre più azureIl cielo è sempre più azure
Il cielo è sempre più azureKlab
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Fabio Armani
 
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 feliceAndrea Dottor
 
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
 
[IT] CMS Proprietari creati da teaminterni: le best practices da seguire!
[IT] CMS Proprietari creati da teaminterni: le best practices da seguire![IT] CMS Proprietari creati da teaminterni: le best practices da seguire!
[IT] CMS Proprietari creati da teaminterni: le best practices da seguire!Federico Sasso
 
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...italianaSoftware
 
Marco Salvatore - Novità tecniche di PrestaShop 1.7.6 (and what’s next)
Marco Salvatore - Novità tecniche di PrestaShop 1.7.6 (and what’s next)Marco Salvatore - Novità tecniche di PrestaShop 1.7.6 (and what’s next)
Marco Salvatore - Novità tecniche di PrestaShop 1.7.6 (and what’s next)Ecommerce HUB
 
Web app slots and WebAPI versioning
Web app slots and WebAPI versioningWeb app slots and WebAPI versioning
Web app slots and WebAPI versioningNicolò Carandini
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioningNicolò Carandini
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
 
05 azure well architected framework
05 azure well architected framework05 azure well architected framework
05 azure well architected frameworkRauno De Pasquale
 
50 minutes as a DevOps
50 minutes as a DevOps50 minutes as a DevOps
50 minutes as a DevOpsseeweb
 

Semelhante a Strategie di migrazione da Team Foundation Server ad Azure DevOps Services (20)

Presentazione Unibo
Presentazione UniboPresentazione Unibo
Presentazione Unibo
 
Alfresco Day Roma 2015: TAI
Alfresco Day Roma 2015: TAIAlfresco Day Roma 2015: TAI
Alfresco Day Roma 2015: TAI
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
Giornata aperta sul web 2017 - Workshop WordPress
Giornata aperta sul web 2017 - Workshop WordPressGiornata aperta sul web 2017 - Workshop WordPress
Giornata aperta sul web 2017 - Workshop WordPress
 
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
 
CCI 2019 - Exchange 2019 da 0 ad HA in 1 ora
CCI 2019 - Exchange 2019 da 0 ad HA in 1 oraCCI 2019 - Exchange 2019 da 0 ad HA in 1 ora
CCI 2019 - Exchange 2019 da 0 ad HA in 1 ora
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Il cielo è sempre più azure
Il cielo è sempre più azureIl cielo è sempre più azure
Il cielo è sempre più azure
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)
 
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
 
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
 
[IT] CMS Proprietari creati da teaminterni: le best practices da seguire!
[IT] CMS Proprietari creati da teaminterni: le best practices da seguire![IT] CMS Proprietari creati da teaminterni: le best practices da seguire!
[IT] CMS Proprietari creati da teaminterni: le best practices da seguire!
 
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
 
Modernizziamo IBM i con PHP
Modernizziamo IBM i con PHPModernizziamo IBM i con PHP
Modernizziamo IBM i con PHP
 
Marco Salvatore - Novità tecniche di PrestaShop 1.7.6 (and what’s next)
Marco Salvatore - Novità tecniche di PrestaShop 1.7.6 (and what’s next)Marco Salvatore - Novità tecniche di PrestaShop 1.7.6 (and what’s next)
Marco Salvatore - Novità tecniche di PrestaShop 1.7.6 (and what’s next)
 
Web app slots and WebAPI versioning
Web app slots and WebAPI versioningWeb app slots and WebAPI versioning
Web app slots and WebAPI versioning
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioning
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio Online
 
05 azure well architected framework
05 azure well architected framework05 azure well architected framework
05 azure well architected framework
 
50 minutes as a DevOps
50 minutes as a DevOps50 minutes as a DevOps
50 minutes as a DevOps
 

Mais de Matteo Emili

Transforming the impossible
Transforming the impossibleTransforming the impossible
Transforming the impossibleMatteo Emili
 
How not to fall into the DevSecOps trap
How not to fall into the DevSecOps trapHow not to fall into the DevSecOps trap
How not to fall into the DevSecOps trapMatteo Emili
 
Il computer dice no!
Il computer dice no!Il computer dice no!
Il computer dice no!Matteo Emili
 
The computer says no v2
The computer says no v2The computer says no v2
The computer says no v2Matteo Emili
 
A selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconA selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconMatteo Emili
 
The computer says no! Software Quality in the DevOps world
The computer says no! Software Quality in the DevOps worldThe computer says no! Software Quality in the DevOps world
The computer says no! Software Quality in the DevOps worldMatteo Emili
 
What did i learn trying to migrate teams from legacy to modern?
What did i learn trying to migrate teams from legacy to modern?What did i learn trying to migrate teams from legacy to modern?
What did i learn trying to migrate teams from legacy to modern?Matteo Emili
 
Cosa ho imparato trasformando software factory?
Cosa ho imparato trasformando software factory?Cosa ho imparato trasformando software factory?
Cosa ho imparato trasformando software factory?Matteo Emili
 
PowerShell and Azure DevOps
PowerShell and Azure DevOpsPowerShell and Azure DevOps
PowerShell and Azure DevOpsMatteo Emili
 
Am i doing deployments right v2
Am i doing deployments right v2Am i doing deployments right v2
Am i doing deployments right v2Matteo Emili
 
Am i doing deployments right?
Am i doing deployments right?Am i doing deployments right?
Am i doing deployments right?Matteo Emili
 
How telemetry can be your best friend
How telemetry can be your best friendHow telemetry can be your best friend
How telemetry can be your best friendMatteo Emili
 
Containers jumpstart from a DevOps perspective
Containers jumpstart from a DevOps perspectiveContainers jumpstart from a DevOps perspective
Containers jumpstart from a DevOps perspectiveMatteo Emili
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementMatteo Emili
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsMatteo Emili
 
Tools and practices to use in a Continuous Delivery pipeline
Tools and practices to use in a Continuous Delivery pipelineTools and practices to use in a Continuous Delivery pipeline
Tools and practices to use in a Continuous Delivery pipelineMatteo Emili
 
Uno sguardo a Team Foundation Server 2017
Uno sguardo a Team Foundation Server 2017Uno sguardo a Team Foundation Server 2017
Uno sguardo a Team Foundation Server 2017Matteo Emili
 
A year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSA year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSMatteo Emili
 
Packages as the first choice when deploying - how?
Packages as the first choice when deploying - how?Packages as the first choice when deploying - how?
Packages as the first choice when deploying - how?Matteo Emili
 
Hybrid DevOps Stack
Hybrid DevOps StackHybrid DevOps Stack
Hybrid DevOps StackMatteo Emili
 

Mais de Matteo Emili (20)

Transforming the impossible
Transforming the impossibleTransforming the impossible
Transforming the impossible
 
How not to fall into the DevSecOps trap
How not to fall into the DevSecOps trapHow not to fall into the DevSecOps trap
How not to fall into the DevSecOps trap
 
Il computer dice no!
Il computer dice no!Il computer dice no!
Il computer dice no!
 
The computer says no v2
The computer says no v2The computer says no v2
The computer says no v2
 
A selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconA selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the bacon
 
The computer says no! Software Quality in the DevOps world
The computer says no! Software Quality in the DevOps worldThe computer says no! Software Quality in the DevOps world
The computer says no! Software Quality in the DevOps world
 
What did i learn trying to migrate teams from legacy to modern?
What did i learn trying to migrate teams from legacy to modern?What did i learn trying to migrate teams from legacy to modern?
What did i learn trying to migrate teams from legacy to modern?
 
Cosa ho imparato trasformando software factory?
Cosa ho imparato trasformando software factory?Cosa ho imparato trasformando software factory?
Cosa ho imparato trasformando software factory?
 
PowerShell and Azure DevOps
PowerShell and Azure DevOpsPowerShell and Azure DevOps
PowerShell and Azure DevOps
 
Am i doing deployments right v2
Am i doing deployments right v2Am i doing deployments right v2
Am i doing deployments right v2
 
Am i doing deployments right?
Am i doing deployments right?Am i doing deployments right?
Am i doing deployments right?
 
How telemetry can be your best friend
How telemetry can be your best friendHow telemetry can be your best friend
How telemetry can be your best friend
 
Containers jumpstart from a DevOps perspective
Containers jumpstart from a DevOps perspectiveContainers jumpstart from a DevOps perspective
Containers jumpstart from a DevOps perspective
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle management
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOps
 
Tools and practices to use in a Continuous Delivery pipeline
Tools and practices to use in a Continuous Delivery pipelineTools and practices to use in a Continuous Delivery pipeline
Tools and practices to use in a Continuous Delivery pipeline
 
Uno sguardo a Team Foundation Server 2017
Uno sguardo a Team Foundation Server 2017Uno sguardo a Team Foundation Server 2017
Uno sguardo a Team Foundation Server 2017
 
A year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSA year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTS
 
Packages as the first choice when deploying - how?
Packages as the first choice when deploying - how?Packages as the first choice when deploying - how?
Packages as the first choice when deploying - how?
 
Hybrid DevOps Stack
Hybrid DevOps StackHybrid DevOps Stack
Hybrid DevOps Stack
 

Strategie di migrazione da Team Foundation Server ad Azure DevOps Services

  • 1. STRATEGIE DI MIGRAZIONE DA TFS AD AZURE DEVOPS SERVICES Matteo Emili matteo.emili@live.com||https://mattvsts.blogspot.com||https://twitter.com/MattVSTS
  • 2.
  • 3. DEVOPS AT WORK DI COSA PARLIAMO? Abbiamo una istanza di Team Foundation Server in uso da diversi anni, e finalmente abbiamo luce verde per migrare ad Azure DevOps Services. E adesso come faccio? 3
  • 4. DEVOPS AT WORK LAVIA PIÚ SEMPLICE Microsoft mette a disposizione un servizio di importazione dell’intera istanza di Team Foundation Server verso Azure DevOps Services Supporta lo scenario di completa ad altissima fedeltá Ci sono alcuni limiti tecnici e pratici, potrebbe essere necessaria una migrazione granulare e selettiva https://docs.microsoft.com/en-us/azure/devops/articles/migration-import 4
  • 5. DEVOPS AT WORK LAVIA MENO SEMPLICE Situazioni in cui non possiamo effettuare un lift-and-shift di Team Foundation Server nel cloud Si deve migrare con approccio mirato e strumenti dedicati Non esiste una soluzione standard, ma una serie di pratiche note 5
  • 6. DEVOPS AT WORK TRE COMPONENTI FONDAMENTALI 6 Work ItemsSource Code Build and Release
  • 8. DEVOPS AT WORK MIGRARE BUILD E RELEASE 8 É la parte piú semplice da eseguire! Basta esportare le definizioni e re-importarle a destinazione, sostituendo parametri di progetto Ottima scusa per tenere traccia delle definizioni, inserendole nel repository del codice sorgente Build and Release
  • 9. DEVOPS AT WORK MIGRARE BUILD E RELEASE 9 Facile, basta esportare le definizioni e re- importarle a destinazione, sostituendo parametri Build and Release
  • 11. DEVOPS AT WORK MIGRARE IL CODICE SORGENTE 11 Scenari possibili? Molti. Source Code
  • 12. DEVOPS AT WORK MIGRARE GITAGIT 12 Sul serio?! git clone --mirror https://tfs.acme.corp/Department/Project cd Project git push --mirror https://dev.azure.com/project Ci possono essere delle varianti di questo approccio – con remote, utente esplicito, etc. Source Code
  • 13. DEVOPS AT WORK MIGRARE GITAGIT 13 Migrazione di solo codice git clone https://tfs.acme.corp/Department/Project cd Project git remote add target https://dev.azure.com/project git push --u target master Source Code
  • 15. DEVOPS AT WORK RECAP: MIGRARE TFVCAGIT 15 La via piú facile, Import Repository* Source Code * solo con TFS 2017 o superiore
  • 16. DEVOPS AT WORK MIGRARE TFVC AGIT 16 La via piú facile, con Team Foundation Server 2017 Source Code
  • 17. DEVOPS AT WORK RECAP: MIGRARE TFVCAGIT 17 Quella piú complessa, con git-tfs https://github.com/git-tfs/git-tfs Source Code
  • 19. DEVOPS AT WORK MIGRARE WORK ITEM 19 La maggior parte del tempo viene speso in questa attivitá É considerato essenziale per il valore della storia Spesso questo valore viene sovrastimato (ci servono revisioni vecchie di anni?) Work Items
  • 20. DEVOPS AT WORK IL VALORE DELLE REVISIONI STORICHE 20 Ha senso portare anni di storia in un nuovo sistema? Possiamo consolidare la storia del Work Item La migrazione diventa piú rapida e snella Work Items
  • 21. DEVOPS AT WORK ESSENZIALE: L’INTEGRITÁ DELL’INFORMAZIONE 21 I Work Item devono rimanere il piú fedeli possibili all’originale Non c’é valore nell’avere delle copie malformate in un nuovo sistema La soluzione migliore é migrare tutto quello di attivo Ció che é considerato chiuso/risolto/eliminato rimane nel sistema legacy Viene stabilito un collegamento fra il vecchio sistema ed il nuovo Il sistema legacy viene mantenuto operativo in sola lettura Work Items
  • 23. DEVOPS AT WORK RECAP: AZURE DEVOPS MIGRATION TOOLS 23 Potentissimo strumento per manipolazione e migrazione di Work Item Modifiche di massa Migrazione ad alta fedeltá Gestisce anche Work Item di Test Management Permette il cambio di Process Template https://github.com/nkdAgility/azure-devops-migration-tools Work Items
  • 24. DEVOPS AT WORK IN SOSTANZA 24 Una migrazione granulare é un progetto intenso e potenzialmente lungo Si é sempre soggetti a limitazioni ambientali (throttling o hardware) Ottenere alta fedeltá é abbastanza difficile, ma non impossibile Se possibile, importate l’intera collection  Work ItemsSource Code Build and Release