Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il passaggio da Azure DevOps Server ad Azure DevOps Services è un passaggio essenziale per le organizzazioni che vogliono sfruttare la collaborazione, la scalabilità e le funzionalità avanzate basate sul cloud. In questa panoramica vengono esaminate le opzioni per trasferire i dati importanti dal server Azure DevOps locale ad Azure DevOps Services basato sul cloud.
Per informazioni sulle principali differenze tra Azure DevOps Server locale e Azure DevOps Services basato sul cloud, vedere Confrontare Azure DevOps Services con Azure DevOps Server - Azure DevOps Server - Azure DevOps.
Indipendentemente dall'opzione di migrazione selezionata, è consigliabile determinare gli asset più importanti, ad esempio il codice sorgente e gli elementi di lavoro. È consigliabile considerare le dimensioni dei dati, la complessità dell'organizzazione e assicurarsi di avere tempo sufficiente per le esecuzioni dei test prima della migrazione effettiva per una transizione uniforme e corretta.
Approcci alla migrazione
È fondamentale valutare i vantaggi e i svantaggi di ogni approccio alla migrazione, in base alle motivazioni specifiche per l'adozione di Azure DevOps Services. La strategia corretta dipende dal contesto e dai requisiti univoci.
Opzioni | Scenari consigliati | Limiti |
---|---|---|
1: Migrazione manuale | Usare per progetti più piccoli o subset di dati specifici. | Non tutti i dati possono essere migrati con la massima fedeltà e sono soggetti a limitazioni. Questa migrazione non supporta la migrazione di modelli XML, quindi è necessario ricreare i modelli di processo come modelli ereditati. |
2: Strumento di migrazione dei dati di Azure DevOps | Usare per migrazioni di medie e grandi dimensioni con tipi di dati e strutture complesse diverse. | È possibile spostare in modalità lift-and-shift solo una raccolta di Azure DevOps Server in una nuova organizzazione di Azure DevOps Services, senza modifiche. Per altre informazioni, vedere la sezione Limitazioni. |
3: migrazione basata su API | Offre flessibilità e personalizzazione per le organizzazioni con requisiti di migrazione univoci o esigenze di automazione. | Possono verificarsi bassa fedeltà, perdita di dati e cambiamenti di ID. Per altre informazioni, vedere la sezione Limitazioni. |
Opzione 1: Migrazione manuale
Ad esempio, quando il team di Azure DevOps in Microsoft ha scelto di passare da Azure DevOps Server ad Azure DevOps Services, è stato anche deciso di passare da controllo della versione di Team Foundation (TFVC) a Git. La migrazione ha richiesto molta pianificazione, ma quando abbiamo eseguito la migrazione, abbiamo creato un nuovo repository Git utilizzando la versione più recente delle origini TFVC e abbiamo lasciato la cronologia indietro in Azure DevOps Server. Abbiamo anche spostato gli elementi di lavoro attivi e abbiamo lasciato indietro tutti i nostri vecchi bug, le storie utente completate e le attività e così via.
Processo di migrazione manuale
- Identificare gli asset più importanti di cui è necessario eseguire la migrazione, in genere codice sorgente, elementi di lavoro o entrambi. Altri asset in Azure DevOps Server: pipeline di compilazione, piani di test e così via, sono più difficili da migrare manualmente.
- Identificare un momento appropriato per eseguire la transizione.
- Prepara le organizzazioni di riferimento. Crea le organizzazioni e i progetti del team necessari, effettua il provisioning degli utenti e così via.
- Eseguire la migrazione dei dati.
- Si consiglia di rendere di sola lettura le distribuzioni sorgente di Azure DevOps Server. È possibile farlo nei modi seguenti:
- Modificare le autorizzazioni a livello di progetto: impostare le autorizzazioni per tutti gli utenti o i gruppi in sola lettura a livello di progetto, che è possibile eseguire modificando i ruoli di sicurezza nelle impostazioni di Project.
- Modificare le impostazioni del repository: per ogni repository è possibile modificare le impostazioni in modo da renderle di sola lettura, che comporta la modifica delle autorizzazioni per ogni utente o gruppo in modo da consentire solo le azioni di lettura.
- Usare i gruppi di sicurezza predefiniti: usare i gruppi di sicurezza predefiniti per gestire le autorizzazioni in modo più efficiente. È possibile assegnare utenti a gruppi come "Lettori" per fornire l'accesso in sola lettura.
- Modificare le autorizzazioni con script: se hai molti progetti o repository, potrebbe essere necessario scriptarli. È possibile usare l'estensione DevOps dell'interfaccia della riga di comando di Azure per elencare tutte le autorizzazioni e aggiornarle in base alle esigenze.
- Disabilitare la funzionalità del repository: disabilita l'accesso al repository, incluse le compilazioni e le richieste pull, ma mantiene il repository individuabile con un avviso. Accedi a Impostazioni progetto>Repository> del tuo repository, e accanto a Disabilita repository, sposta l'interruttore su Attivato.
Opzione 2: Strumento di migrazione dei dati di Azure DevOps
Azure DevOps Data Migration Tool è un set di utilità fornite da Microsoft per facilitare la migrazione dei dati da Azure DevOps Server ad Azure DevOps Services. Questi strumenti offrono un approccio semplificato per eseguire la migrazione di vari artefatti, tra cui codice sorgente, elementi di lavoro, test case e altri dati correlati al progetto.
Prima di avviare il processo di migrazione, gli strumenti possono eseguire un'analisi di premigration per valutare l'idoneità dell'ambiente di origine e identificare potenziali problemi o dipendenze che potrebbero influire sulla migrazione. Valutare l'idoneità, in modo da poter pianificare e mitigare le potenziali sfide in anticipo.
Limitazioni dello strumento di migrazione
Lo strumento consente di spostare in modalità lift-and-shift una raccolta di Azure DevOps Server in una nuova organizzazione del servizio Azure DevOps, senza apportare modifiche per i motivi seguenti:
- Integrità e coerenza dei dati:
- Quando si esegue la migrazione dei dati, è fondamentale mantenere l'integrità e la coerenza. La possibilità di apportare modifiche durante la migrazione potrebbe causare danneggiamento o incoerenze dei dati.
- Lo strumento garantisce che i dati rimangano intatti durante il processo di trasferimento, riducendo al minimo il rischio di errori.
- Conservazione dei dati di origine:
- Lo strumento di migrazione mira a replicare fedelmente i dati di origine nell'ambiente di destinazione.
- Le modifiche possono modificare i dati originali, causando potenzialmente discrepanze tra i dati migrati e i dati di origine.
- Comportamento prevedibile:
- Limitando le modifiche, lo strumento garantisce un comportamento prevedibile durante la migrazione.
- Gli utenti possono basarsi su risultati coerenti senza modifiche impreviste.
- Stato attivo della migrazione, non trasformazione:
- Lo scopo principale dello strumento di migrazione è spostare i dati da una posizione a un'altra.
- La trasformazione dei dati, ad esempio la modifica dei valori, in genere viene gestita separatamente dopo la migrazione.
- Scenari di migrazione supportati:
- Lo spostamento di progetti da un'organizzazione di Azure DevOps Services a un'altra organizzazione di Azure DevOps Services non è attualmente supportata.
- La migrazione da un'istanza di Azure DevOps Server a un'altra non è supportata.
È possibile eliminare i dati che non sono necessari prima o dopo la migrazione.
Processo dello strumento di migrazione
- Completare i prerequisiti, ad esempio l'aggiornamento di Azure DevOps Server a una delle due versioni più recenti.
- Convalidare ogni raccolta da spostare in Azure DevOps Services.
- Generare file di migrazione.
- Preparare tutti gli elementi per l'esecuzione della migrazione.
- Eseguire un test.
- Eseguire una migrazione.
- Verificare che gli utenti e i dati siano stati migrati e che la raccolta funzioni come previsto.
Opzione 3: migrazione basata su API
Se non è possibile usare lo strumento di migrazione dei dati, ma si vuole comunque una migrazione più fedele rispetto all'opzione 2 opzione 2, è consigliabile usare vari strumenti che sfruttano le API pubbliche per spostare i dati. Questi strumenti includono le estensioni disponibili in Visual Studio Marketplace.
Limitazioni della migrazione basata su API
Le limitazioni seguenti si verificano con la migrazione basata su API:
- Migrazione a bassa fedeltà:
- Limitazione: gli strumenti basati su API offrono una maggiore precisione rispetto alla copia manuale, ma restano comunque a bassa precisione.
- Implicazione: anche se questi strumenti offrono una certa fedeltà, non mantengono tutti gli aspetti dei dati.
- Esempio: nessuno di essi mantiene le date originali dei set di modifiche TFVC (controllo della versione di Team Foundation).
- Molti non mantengono neanche le date modificate delle revisioni degli elementi di lavoro.
- Perdita di dati e modifiche all'ID:
- Limitazione: durante la migrazione, gli strumenti riproducono i cambiamenti degli elementi di lavoro, i set di modifiche TFVC, i feed dei pacchetti e gli artefatti della pipeline.
- Implicazione: questo processo potrebbe causare la perdita di dati, generare nuovi ID e modificare le date di creazione, modifica e chiusura.
- Esempio: il contesto cronologico associato a date specifiche potrebbe andare perso, che influisce sulla creazione di report e sulla tracciabilità.
Processo di migrazione basato su API
In generale, è consigliabile questo approccio solo se maggiore fedeltà oltre a una copia manuale è fondamentale. Se si decide di adottare questo approccio, è possibile prendere in considerazione l'assunzione di un consulente con uno o più strumenti e di eseguire una migrazione di test prima della migrazione finale.
Molte organizzazioni necessitano di una migrazione altamente fedele solo per un sottoinsieme del loro lavoro. Un nuovo lavoro potrebbe essere avviato direttamente in Azure DevOps Services. Altre operazioni, con requisiti di fedeltà meno rigorosi, possono essere migrate usando uno degli altri approcci.
Modelli di processo supportati
Azure DevOps Services supporta i modelli di processo seguenti:
Per impostazione predefinita, Hosted XML è disattivato in Azure DevOps Services. Il modello di processo XML ospitato viene attivato durante la migrazione solo se è stato personalizzato un progetto in Azure DevOps Server. Una volta che il progetto è in Xml ospitato, è possibile aggiornarlo a ereditato dopo la migrazione.
Principi chiave
Quando si esegue la migrazione ad Azure DevOps Services, tenere presenti i principi chiave e le limitazioni seguenti:
- Azure DevOps Services è solo in inglese: Azure DevOps Server supporta più lingue, ma attualmente Azure DevOps Services supporta solo l'inglese. Se la raccolta usa la lingua non inglese o non inglese in passato e la lingua è stata convertita in inglese durante un aggiornamento, non è possibile usare lo Strumento di migrazione dei dati.
- Ereditarietà: un progetto creato dal modello di processo Agile, Scrum o CMMI e non è mai stato personalizzato, si trova nel modello processo di ereditarietà dopo la migrazione.
- XML ospitato: qualsiasi progetto con personalizzazioni usa il modello di processo XML ospitato.
- Processo per progetto personalizzato: anche se Azure DevOps Services consente ai progetti di condividere un processo, lo strumento di migrazione dei dati crea un processo XML ospitato per ogni progetto team personalizzato. Ad esempio, se sono presenti 30 progetti personalizzati, sono disponibili 30 processi XML ospitati da gestire. Per personalizzare ulteriormente il processo XML ospitato per tutti i progetti, è necessario aggiornare separatamente ogni processo XML ospitato.
- Convalida del processo: la convalida del processo dello strumento di migrazione dei dati rileva il modello di processo di destinazione per ogni progetto. Prima di poter eseguire la migrazione, è necessario correggere eventuali errori di convalida dei processi per i progetti XML ospitati. È consigliabile aggiornare il processo dei progetti in modo che corrisponda a uno dei processi (Agile, Scrum o CMMI) per sfruttare il modello di processo di ereditarietà. Altre informazioni sui tipi di convalida dei processi sono disponibili nella documentazione.
Risorse
- Segnalare un problema nella community degli sviluppatori
- Ottenere supporto e inviare commenti e suggerimenti