Een Team Foundation Server-implementatie herstructureren in Azure DevOps ServicesRefactor a Team Foundation Server deployment to Azure DevOps Services

In dit artikel wordt beschreven hoe het fictieve bedrijf contoso refactories zijn on-premises Visual Studio Team Foundation Server-implementatie door het te migreren naar Azure DevOps Services in Azure.This article shows how the fictional company Contoso refactors its on-premises Visual Studio Team Foundation Server deployment by migrating it to Azure DevOps Services in Azure. Het ontwikkel team Contoso heeft Team Foundation Server voor team samenwerking en broncode beheer voor de afgelopen vijf jaar gebruikt.The Contoso development team has used Team Foundation Server for team collaboration and source control for the past five years. Het team wil nu overstappen op een Cloud oplossing voor dev en test werk en voor broncode beheer.Now, the team wants to move to a cloud-based solution for dev and test work and for source control. Azure DevOps Services speelt een rol als het contoso-team wordt verplaatst naar een Azure DevOps-model en ontwikkelt nieuwe Cloud toepassingen.Azure DevOps Services will play a role as the Contoso team moves to an Azure DevOps model and develops new cloud-native applications.

Commerciële drijfverenBusiness drivers

Het contoso IT-leiderschaps team heeft nauw samengewerkt met zakelijke partners om toekomstige doelen te identificeren.The Contoso IT leadership team has worked closely with business partners to identify future goals. De partners zijn niet bezorgd bij ontwikkel hulpprogramma's en-technologieën, maar het team heeft deze punten vastgelegd:The partners aren't overly concerned with dev tools and technologies, but the team has captured these points:

  • Software: Ongeacht de kern activiteit zijn alle bedrijven nu software bedrijven, waaronder contoso.Software: Regardless of the core business, all companies are now software companies, including Contoso. Bedrijfs leiders is van belang dat de IT-mede werkers van gebruikers en nieuwe ervaringen aan hun klanten kunnen voldoen aan het bedrijf.Business leadership is interested in how IT can help lead the company with new working practices for users and new experiences for its customers.
  • Efficiëntie: Contoso moet zijn processen stroom lijnen en overbodige procedures voor ontwikkel aars en gebruikers verwijderen.Efficiency: Contoso needs to streamline its processes and remove unnecessary procedures for developers and users. Als u dit doet, kan het bedrijf efficiënter aan klant vereisten leveren.Doing so will allow the company to deliver on customer requirements more efficiently. Het bedrijf moet het snel verplaatsen, zonder dat er tijd of geld wordt verspild.The business needs IT to move quickly, without wasting time or money.
  • Flexibiliteit: Om het succes in een wereld wijde economie in te scha kelen, moet contoso het reageren op de behoeften van het bedrijf.Agility: To enable its success in a global economy, Contoso IT needs to be more responsive to the needs of the business. Het moet snel kunnen reageren op wijzigingen in de Marketplace.It must be able to react more quickly to changes in the marketplace. Het mag niet in de weg worden gekomen of als er geen Business Blocker wordt.IT must not get in the way or become a business blocker.

MigratiedoelenMigration goals

Het contoso-Cloud team heeft de volgende doelen voor de migratie naar Azure DevOps Services vastgemaakt:The Contoso cloud team has pinned down the following goals for its migration to Azure DevOps Services:

  • Het team heeft een hulp programma nodig om de gegevens naar de cloud te migreren.The team needs a tool to migrate its data to the cloud. Er zijn enkele handmatige processen nodig.Few manual processes should be needed.
  • De werkitemgegevens en -geschiedenis van het afgelopen jaar moeten worden gemigreerd.Work item data and history for the last year must be migrated.
  • Het team wil geen nieuwe gebruikers namen en wacht woorden instellen.The team doesn't want to set up new user names and passwords. Alle huidige systeemtoewijzingen moeten worden behouden.All current system assignments must be maintained.
  • Het team wil zich verplaatsen van Team Foundation Version Control (TFVC) naar Git voor broncode beheer.The team wants to move away from Team Foundation Version Control (TFVC) to Git for source control.
  • De overgang naar Git is een tip-migratie waarbij alleen de meest recente versie van de bron code wordt geïmporteerd.The transition to Git will be a tip migration that imports only the latest version of the source code. De overgang gebeurt tijdens een downtime, wanneer alle werk wordt gestopt, omdat de code basis verschuift.The transition will happen during a downtime, when all work will be halted as the code base shifts. Het team begrijpt dat alleen de huidige hoofd vertakkings geschiedenis na de verplaatsing beschikbaar is.The team understands that only the current main branch history will be available after the move.
  • Het team is betrokken bij de wijziging en wil deze testen voordat het een volledige verplaatsing doet.The team is concerned about the change and wants to test it before it does a full move. Het team wil de toegang tot Team Foundation Server zelfs na de overstap naar Azure DevOps Services behouden.The team wants to retain access to Team Foundation Server even after the move to Azure DevOps Services.
  • Het team heeft meerdere verzamelingen en, om het proces beter te begrijpen, wil het beginnen met een abonnement dat slechts een paar projecten heeft.The team has multiple collections and, to better understand the process, it wants to start with one that has only a few projects.
  • Het team begrijpt dat Team Foundation Server verzamelingen een een-op-een-relatie zijn met organisaties van Azure DevOps Services, zodat deze meerdere Url's heeft.The team understands that Team Foundation Server collections are a one-to-one relationship with Azure DevOps Services organizations, so it will have multiple URLs. Maar dit komt overeen met het huidige model van de schei ding van code bases en projecten.But this matches its current model of separation for code bases and projects.

Voorgestelde architectuurProposed architecture

  • Contoso verplaatst de Team Foundation Server projecten naar de Cloud en zal de projecten of broncode beheer niet meer on-premises hosten.Contoso will move its Team Foundation Server projects to the cloud, and it will no longer host its projects or source control on-premises.
  • Team Foundation Server worden gemigreerd naar Azure DevOps Services.Team Foundation Server will be migrated to Azure DevOps Services.
  • Op dit moment heeft Contoso een Team Foundation Server verzameling ContosoDev met de naam, die wordt gemigreerd naar een Azure DevOps Services-organisatie met de naam contosodevmigration.visualstudio.com .Currently, Contoso has one Team Foundation Server collection, named ContosoDev, which will be migrated to an Azure DevOps Services organization called contosodevmigration.visualstudio.com.
  • De projecten, werk items, bugs en herhalingen van het afgelopen jaar worden gemigreerd naar Azure DevOps Services.The projects, work items, bugs, and iterations from the last year will be migrated to Azure DevOps Services.
  • Contoso gebruikt het Azure Active Directory (Azure AD)-exemplaar dat het heeft ingesteld bij het implementeren van de Azure-infra structuur aan het begin van de migratie planning.Contoso will use its Azure Active Directory (Azure AD) instance, which it set up when it deployed its Azure infrastructure at the beginning of the migration planning.

Diagram van de voorgestelde architectuur.

MigratieprocesMigration process

Contoso voltooit het migratieproces als volgt:Contoso will complete the migration process as follows:

  1. Aanzienlijke voor bereiding is vereist.Significant preparation is required. Eerst moet Contoso de Team Foundation Server-implementatie upgraden naar een ondersteund niveau.First, Contoso must upgrade its Team Foundation Server implementation to a supported level. Contoso wordt momenteel uitgevoerd Team Foundation Server 2017 update 3, maar voor het gebruik van de data base-migratie moet er een ondersteunde 2018-versie met de nieuwste updates worden uitgevoerd.Contoso is currently running Team Foundation Server 2017 Update 3, but to use database migration it needs to run a supported 2018 version with the latest updates.
  2. Nadat Contoso is bijgewerkt, wordt het hulp programma voor Team Foundation Server migratie uitgevoerd en wordt de verzameling ervan gevalideerd.After Contoso upgrades, it will run the Team Foundation Server migration tool and validate its collection.
  3. Contoso bouwt een set voorbereidende bestanden en voert vervolgens een droog proces uit voor het uitvoeren van tests.Contoso will build a set of preparation files and then perform a migration dry run for testing.
  4. Contoso voert vervolgens nog een migratie uit. Dit is een volledige migratie van werkitems, bugs, sprints en code.Contoso will then run another migration, this time a full migration that includes work items, bugs, sprints, and code.
  5. Na de migratie verplaatst Contoso de code van TFVC naar Git.After the migration, Contoso will move its code from TFVC to Git.

Diagram van het contoso-migratie proces.

VereistenPrerequisites

Om dit scenario uit te voeren, moet contoso voldoen aan de volgende vereisten:To run this scenario, Contoso needs to meet the following prerequisites:

VereistenRequirements DetailsDetails
Azure-abonnementAzure subscription In een eerder artikel in deze reeks is beschreven hoe Contoso abonnementen heeft gemaakt.Contoso created subscriptions in an earlier article in this series. Als u nog geen abonnement op Azure hebt, maakt u een gratis account aan.If you don't have an Azure subscription, create a free account.

Als u een gratis account maakt, bent u de beheerder van uw abonnement en kunt u alle acties uitvoeren.If you create a free account, you're the administrator of your subscription and can perform all actions.

Als u een bestaand abonnement hebt en niet de beheerder bent, moet u de beheerder vragen om u machtigingen als Eigenaar of Inzender voor het abonnement te verlenen.If you use an existing subscription and you're not the administrator, you need to work with the admin to assign you Owner or Contributor permissions.

Als u meer gedetailleerde machtigingen nodig hebt, raadpleegt u Manage Site Recovery Access with Azure op rollen gebaseerd toegangs beheer (Azure RBAC).If you need more granular permissions, see Manage Site Recovery access with Azure role-based access control (Azure RBAC).
Azure-infrastructuurAzure infrastructure Contoso heeft de Azure-infra structuur ingesteld zoals beschreven in Azure-infra structuur voor migratie.Contoso set up its Azure infrastructure as described in Azure infrastructure for migration.
Team Foundation Server exemplaar van on-premisesOn-premises Team Foundation Server instance Het on-premises exemplaar moet worden uitgevoerd Team Foundation Server 2018 upgrade 2 of moeten worden bijgewerkt als onderdeel van dit proces.The on-premises instance needs to either run Team Foundation Server 2018 upgrade 2 or be upgraded to it as part of this process.

ScenariostappenScenario steps

Hier ziet u hoe Contoso de migratie uitvoert:Here's how Contoso will complete the migration:

  • Stap 1: Maak een Azure-opslag account.Step 1: Create an Azure storage account. Dit opslagaccount wordt tijdens het migratieproces gebruikt.This storage account will be used during the migration process.
  • Stap 2: Team Foundation Server bijwerken.Step 2: Upgrade Team Foundation Server. Contoso werkt de implementatie bij naar Team Foundation Server 2018 upgrade 2.Contoso will upgrade its deployment to Team Foundation Server 2018 upgrade 2.
  • Stap 3: de verzameling Team Foundation Server valideren.Step 3: Validate the Team Foundation Server collection. Contoso valideert de Team Foundation Server verzameling in de voor bereiding voor de migratie.Contoso will validate the Team Foundation Server collection in preparation for the migration.
  • Stap 4: de migratie bestanden bouwen.Step 4: Build the migration files. Contoso maakt de migratie bestanden met behulp van het hulp programma Team Foundation Server migratie.Contoso will create the migration files by using the Team Foundation Server migration tool.

Stap 1: een Azure Storage-account makenStep 1: Create an Azure storage account

  1. In de Azure Portal maken contoso-beheerders een opslag account ( contosodevmigration ).In the Azure portal, Contoso admins create a storage account (contosodevmigration).

  2. Ze plaatsen het account in de secundaire regio, die ze gebruiken voor failover ( Central US ).They place the account in the secondary region, which they use for failover (Central US). Ze gebruiken een standaardaccount voor algemeen gebruik met lokaal redundante opslag.They use a general-purpose standard account with locally redundant storage.

    Scherm afbeelding van het deel venster opslag account maken.

Meer hulp nodig?Need more help?

Stap 2: Team Foundation Server bijwerkenStep 2: Upgrade Team Foundation Server

Contoso-beheerders upgraden het Team Foundation Server-exemplaar naar Team Foundation Server 2018 update 2.Contoso admins upgrade the Team Foundation Server instance to Team Foundation Server 2018 Update 2. Voordat ze worden gestart:Before they start, they:

De upgrade wordt als volgt uitgevoerd:They upgrade as follows:

  1. Om te starten, maken de beheerders een back-up van hun Team Foundation Server-exemplaar, dat wordt uitgevoerd op een virtuele VMware-machine (VM) en maken ze een VMware-moment opname.To start, the admins back up their Team Foundation Server instance, which is running on a VMware virtual machine (VM), and they take a VMware snapshot.

    Scherm opname van het deel venster aan de slag voor het upgraden van Team Foundation Server.

  2. Het installatie programma van Team Foundation Server wordt gestart en de installatie locatie wordt gekozen.The Team Foundation Server installer starts, and they choose the installation location. Het installatieprogramma heeft internettoegang nodig.The installer needs internet access.

    Scherm afbeelding van de Team Foundation Server-installatie site in Visual Studio.

  3. Wanneer de installatie is voltooid, wordt de wizard Serverconfiguratie gestart.After the installation finishes, the Server Configuration Wizard starts.

    Scherm afbeelding van de configuratie wizard voor Team Foundation Server 2018-update 2.

  4. Na de verificatie voltooit de wizard Server configuratie de upgrade.After verification, the Server Configuration Wizard completes the upgrade.

    Scherm afbeelding van het deel venster upgrade van de wizard Team Foundation Server configuratie.

  5. De beheerders verifiëren de Team Foundation Server-installatie door projecten, werk items en code te controleren.The admins verify the Team Foundation Server installation by reviewing projects, work items, and code.

    Scherm opname van het deel venster ' product achterstand ' voor het controleren van de Team Foundation Server-installatie.

Notitie

Sommige Team Foundation Server upgrades moeten de wizard functies configureren uitvoeren nadat de upgrade is voltooid.Some Team Foundation Server upgrades need to run the Configure Features Wizard after the upgrade finishes. Meer informatie.Learn more.

Meer hulp nodig?Need more help?

Meer informatie over het upgraden van Team Foundation Server.Learn about upgrading Team Foundation Server.

Stap 3: de verzameling Team Foundation Server validerenStep 3: Validate the Team Foundation Server collection

Contoso-beheerders voeren het Team Foundation Server Migration-hulp programma uit op de contosodev verzamelings database om het te valideren vóór de migratie.Contoso admins run the Team Foundation Server migration tool against the contosodev collection database to validate it before migration.

  1. Ze downloaden en uitpakken het Team Foundation Server-migratie programma.They download and unzip the Team Foundation Server migration tool. Het is belang rijk om de versie te downloaden voor de Team Foundation Server update die wordt uitgevoerd.It's important to download the version for the Team Foundation Server update that's running. U kunt de versie controleren in de beheerconsole.The version can be checked in the admin console.

    Scherm afbeelding van het deel venster Team Foundation Server voor het controleren van de product versie.

  2. Ze voeren het hulp programma uit om de validatie uit te voeren door de URL van de project verzameling op te geven, zoals wordt weer gegeven in de volgende opdracht:They run the tool to perform the validation by specifying the URL of the project collection, as shown in the following command:

    TfsMigrator validate /collection:http://contosotfs:8080/tfs/ContosoDev

    Er wordt een fout weergegeven in het hulpprogramma.The tool shows an error.

    Scherm opname van een validatie fout in het hulp programma Team Foundation Server migratie.

  3. Ze vinden de logboek bestanden in de Logs map, net voor de locatie van het hulp programma.They locate the log files in the Logs folder, just before the tool location. Voor elke belangrijke validatie wordt er een logboekbestand gegenereerd.A log file is generated for each major validation. TfsMigration.log bevat de hoofdgegevens.TfsMigration.log holds the main information.

    Scherm afbeelding van de locatie van het logboek bestand in Team Foundation Server.

  4. Ze vinden deze vermelding, die betrekking heeft op identiteit.They find this entry, which is related to identity.

    Scherm afbeelding met de fout die is opgetreden tijdens het valideren van de identiteit.

  5. Ze TfsMigrator validate /help worden uitgevoerd op de opdracht regel en ze zien dat de opdracht /tenantDomainName vereist is om identiteiten te valideren.They run TfsMigrator validate /help at the command line, and they see that the command /tenantDomainName seems to be required to validate identities.

    Scherm afbeelding met de opdracht die is vereist voor het valideren van identiteiten.

  6. Ze voeren de validatie opdracht opnieuw uit en bevatten deze waarde en hun Azure AD-naam, TfsMigrator validate /collection:http://contosotfs:8080/tfs/ContosoDev /tenantDomainName:contosomigration.onmicrosoft.com .They run the validation command again and include this value and their Azure AD name, TfsMigrator validate /collection:http://contosotfs:8080/tfs/ContosoDev /tenantDomainName:contosomigration.onmicrosoft.com.

    Scherm opname van opdracht prompt met de juiste opdracht.

  7. In het aanmeldings venster van Azure AD dat wordt geopend, voeren ze de referenties in van een gebruiker met een globale beheerder.In the Azure AD sign-in window that opens, they enter the credentials of a global admin user.

    Scherm afbeelding van het Azure AD-aanmeld venster met beheerders referenties.

  8. De validatie wordt door gegeven en is door het hulp programma bevestigd.The validation passes and is confirmed by the tool.

    Scherm opname die laat zien dat de validatie is geslaagd.

Stap 4: de migratie bestanden bouwenStep 4: Build the migration files

Als de validatie is voltooid, kunnen contoso-beheerders het Team Foundation Server-migratie hulpprogramma gebruiken om de migratie bestanden te bouwen.With the validation complete, Contoso admins can use the Team Foundation Server migration tool to build the migration files.

  1. Ze voeren de voorbereidende stap in het hulp programma uit.They run the preparation step in the tool.

    TfsMigrator prepare /collection:http://contosotfs:8080/tfs/ContosoDev /tenantDomainName:contosomigration.onmicrosoft.com /accountRegion:cus

    Scherm afbeelding van de opdracht voor bereiding in het hulp programma Team Foundation Server migratie.

    De voorbereidings stap doet het volgende:The preparation step does the following:

    • Hiermee wordt de verzameling gescand op zoek naar een lijst met alle gebruikers en wordt vervolgens het logboek van de identificerende map ( IdentityMapLog.csv ) ingevuld.Scans the collection to find a list of all users and then populates the identify map log (IdentityMapLog.csv).
    • Bereidt de verbinding met Azure AD voor om een overeenkomst voor elke identiteit te vinden.Prepares the connection to Azure AD to find a match for each identity.
    • Contoso heeft Azure AD al geïmplementeerd en dit gesynchroniseerd met behulp van Azure AD Connect, dus de voorbereidings opdracht kan de overeenkomende identiteiten vinden en deze markeren als actief.Contoso has already deployed Azure AD and synchronized it by using Azure AD Connect, so the prepare command should be able to find the matching identities and mark them as Active.
  2. Er wordt een aanmeldings scherm van Azure AD weer gegeven en de beheerders voeren de referenties van een globale beheerder in.An Azure AD sign-in screen appears, and the admins enter the credentials of a global admin.

    Scherm opname van het Azure AD-teken venster met beheerders referenties die in het tekstvak gebruiker zijn ingevoerd.

  3. De voor bereiding is voltooid en het hulp programma rapporteert dat de import bestanden zijn gegenereerd.The preparation is completed, and the tool reports that the import files have been generated successfully.

    Scherm opname van het migratie hulpprogramma, met de melding dat de verzameling is gevalideerd.

  4. De beheerders kunnen nu zien dat zowel het IdentityMapLog.csv bestand als de import.jsin het bestand zijn gemaakt in een nieuwe map.The admins can now see that both the IdentityMapLog.csv file and the import.json file have been created in a new folder.

    Voorbereiden

  5. Het import.json bestand bevat import instellingen.The import.json file provides import settings. Het bevat informatie zoals de gewenste organisatie naam en de details van het opslag account.It includes information such as the desired organization name, and storage account details. De meeste velden worden automatisch ingevuld.Most of the fields are populated automatically. Voor sommige velden is invoer van de gebruiker vereist.Some fields require user input. De beheerders openen het bestand en voegen de naam van de Azure DevOps Services-organisatie toe om te maken, contosodevmigration .The admins open the file and add the Azure DevOps Services organization name to be created, contosodevmigration. Met deze naam is de URL van Contoso Azure DevOps Services contosodevmigration.visualstudio.com .With this name, the Contoso Azure DevOps Services URL will be contosodevmigration.visualstudio.com.

    Scherm afbeelding met de naam van de Azure DevOps Services-organisatie.

    Notitie

    De organisatie moet worden gemaakt voordat de migratie wordt gestart.The organization must be created before the migration begins. Het kan worden gewijzigd nadat de migratie is voltooid.It can be changed after the migration is completed.

  6. De beheerders controleren het identiteits logboek bestand, waarin de accounts worden weer gegeven die tijdens het importeren in azure DevOps services worden gebracht.The admins review the identity log map file, which shows the accounts that will be brought into Azure DevOps Services during the import.

    • Actieve identiteiten verwijzen naar identiteiten die na het importeren gebruikers worden in Azure DevOps Services.Active identities refer to identities that will become users in Azure DevOps Services after the import.
    • In azure DevOps services worden deze identiteiten gelicentieerd en weer gegeven als gebruikers in de organisatie na de migratie.In Azure DevOps Services, these identities will be licensed and displayed as users in the organization after migration.
    • De identiteiten worden in de kolom verwachte import status in het bestand gemarkeerd als actief .The identities are marked as Active in the Expected Import Status column in the file.

    Scherm opname van het id-logboek bestand met de accounts die moeten worden opgenomen in azure DevOps Services.

Stap 5: migreren naar Azure DevOps ServicesStep 5: Migrate to Azure DevOps Services

Als de voor bereiding is voltooid, kunnen contoso-beheerders zich richten op de migratie.With the preparation completed, Contoso admins can focus on the migration. Nadat de migratie is uitgevoerd, scha kelen ze van TFVC naar Git voor versie beheer.After they run the migration, they'll switch from using TFVC to Git for version control.

Voordat ze worden gestart, plannen de beheerders uitval tijd met het ontwikkel team, zodat ze kunnen plannen om de verzameling offline te zetten voor migratie.Before they start, the admins schedule downtime with the dev team, so that they can plan to take the collection offline for migration.

Dit is het migratie proces dat ze volgen:Here is the migration process they'll follow:

  1. De verzameling ontkoppelen.Detach the collection. Identiteits gegevens voor de verzameling bevinden zich in de configuratie database voor het Team Foundation Server-exemplaar terwijl de verzameling is gekoppeld en online is.Identity data for the collection resides in the configuration database for the Team Foundation Server instance while the collection is attached and online.

    Wanneer een verzameling wordt losgekoppeld van het Team Foundation Server-exemplaar, wordt er een kopie van die identiteits gegevens gemaakt en vervolgens ingepakt met de verzameling voor Trans Port.When a collection is detached from the Team Foundation Server instance, a copy of that identity data is made and then packaged with the collection for transport. Zonder deze gegevens kan het id-gedeelte van de import bewerking niet worden uitgevoerd.Without this data, the identity portion of the import can't be executed.

    We raden aan dat de verzameling wordt losgekoppeld totdat het importeren is voltooid, omdat wijzigingen die zich voordoen tijdens het importeren, niet kunnen worden geïmporteerd.We recommended that the collection stay detached until the import has been completed, because changes that occur during the import can't be imported.

  2. Genereer een back-up.Generate a backup. De volgende stap bestaat uit het genereren van een back-up die in azure DevOps Services kan worden geïmporteerd.The next step is to generate a backup that can be imported into Azure DevOps Services. Het pakket met de gegevenslaagtoepassing (DACPAC) is een SQL Server-functie waarmee database wijzigingen in één bestand kunnen worden verpakt en vervolgens kunnen worden geïmplementeerd naar andere exemplaren van SQL.The data-tier application component package (DACPAC) is a SQL Server feature that allows database changes to be packaged into a single file and then deployed to other instances of SQL.

    De back-up kan ook rechtstreeks worden teruggezet naar Azure DevOps Services en wordt gebruikt als verpakkings methode voor het ophalen van verzamelings gegevens in de Cloud.The backup can also be restored directly to Azure DevOps Services, and it's used as the packaging method for getting collection data to the cloud. Contoso maakt gebruik van het sqlpackage.exe hulp programma om de DACPAC te genereren.Contoso will use the sqlpackage.exe tool to generate the DACPAC. Dit hulpprogramma is opgenomen in SQL Server Data Tools.This tool is included in SQL Server Data Tools.

  3. Uploaden naar de opslag.Upload to storage. Nadat de DACPAC is gemaakt, worden deze door de beheerders geüpload naar Azure Storage.After the DACPAC is created, the admins upload it to Azure Storage. Nadat ze het hebben geüpload, krijgen ze een SAS (Shared Access Signature) waarmee het Team Foundation Server migratie programma toegang kan krijgen tot de opslag.After they've uploaded it, they get a shared access signature (SAS) to allow the Team Foundation Server migration tool access to the storage.

  4. Vul het import veld in.Fill out the import. Contoso kan de ontbrekende velden in het import bestand vervolgens volt ooien, met inbegrip van de DACPAC-instelling.Contoso can then complete the missing fields in the import file, including the DACPAC setting. Om ervoor te zorgen dat alles goed werkt voordat de volledige migratie wordt uitgevoerd, geeft de beheerder op dat ze een import bewerking met droge uitvoering willen uitvoeren.To ensure that everything's working properly before the full migration, the admins will specify that they want to perform a dry-run import.

  5. Voer een import bewerking met een droge uitvoering uit.Perform a dry-run import. Met een chemisch uitgevoerde import kunt u de migratie van de verzameling testen.A dry-run import helps them test the collection migration. Droge uitvoeringen hebben een beperkte levens duur, zodat ze worden verwijderd voordat een productie migratie wordt uitgevoerd.Dry runs have a limited life, so they're deleted before a production migration runs. Ze worden automatisch na een ingestelde duur verwijderd.They're deleted automatically after a set duration. Een notitie die contoso informeert wanneer de droge uitvoering wordt verwijderd, wordt opgenomen in het e-mail bericht dat wordt verzonden nadat het importeren is voltooid.A note that informs Contoso when the dry run will be deleted is included in the success email that's sent after the import finishes. Het team neemt opmerkingen en plannen dienovereenkomstig.The team takes note and plans accordingly.

  6. Voltooi de productie migratie.Complete the production migration. Wanneer de migratie van het droog proces is voltooid, doen contoso-beheerders de definitieve migratie door het bestand bij te werken import.json en vervolgens het importeren opnieuw uit te voeren.With the dry-run migration completed, Contoso admins do the final migration by updating the import.json file and then running import again.

De verzameling loskoppelenDetach the collection

Voordat de verzameling wordt losgekoppeld, nemen contoso-beheerders een lokale SQL Server exemplaar van een back-up en een VMware-moment opname van het Team Foundation Server exemplaar.Before they detach the collection, Contoso admins take a local SQL Server instance backup and a VMware snapshot of the Team Foundation Server instance.

  1. In de Team Foundation Server-beheer console selecteren de beheerders de verzameling die ze willen ontkoppelen, ContosoDev.In the Team Foundation Server Administration Console, the admins select the collection they want to detach, ContosoDev.

    Scherm afbeelding van de sectie team project Collections van de Foundation Server-beheer console.

  2. Ze selecteren het tabblad Algemeen en selecteer vervolgens verzameling loskoppelen.They select the General tab and then select Detach Collection.

    Scherm afbeelding van de koppeling verzameling loskoppelen in de beheer console van de Foundation-Server.

  3. In de wizard team project verzameling loskoppelen , in het deel venster onderhouds bericht , bieden de beheerders een bericht voor gebruikers die kunnen proberen verbinding te maken met projecten in de verzameling.In the Detach Team Project Collection wizard, on the Servicing Message pane, the admins provide a message for users who might try to connect to projects in the collection.

    Scherm opname van het deel venster ' onderhouds bericht ' in de wizard team project verzameling loskoppelen.

  4. In het deel venster voortgang loskoppelen worden de voortgang gecontroleerd.On the Detach Progress pane, they monitor progress. Wanneer het proces is voltooid, selecteren ze volgende.When the process finishes, they select Next.

    Scherm opname van het deel venster voortgang loskoppelen in de wizard team project verzameling loskoppelen.

  5. In het deel venster gereedheids controles selecteert u de optie loskoppelen wanneer de controles zijn voltooid.On the Readiness Checks pane, when the checks finish, they select Detach.

    Scherm opname van het deel venster gereedheids controles in de wizard team project verzameling loskoppelen.

  6. Wanneer de verzameling is ontkoppeld, selecteert ze sluiten om te volt ooien.When the collection has been successfully detached, they select Close to finish up.

    Scherm opname van het deel venster "volt ooien" in de wizard team project verzameling loskoppelen.

    Er wordt niet meer verwezen naar de verzameling in de Team Foundation Server-beheer console.The collection is no longer referenced in the Team Foundation Server Administration Console.

    Scherm opname van de Team Foundation Server-beheer console, waarin wordt weer gegeven dat de verzameling niet meer wordt weer gegeven.

Een DACPAC genererenGenerate a DACPAC

Contoso-beheerders maken een back-up of DACPAC om deze te importeren in azure DevOps-Services.Contoso admins create a backup, or DACPAC, to import into Azure DevOps Services.

  • De beheerders gebruiken het sqlpackage.exe hulp programma in SQL Server Data tools (SSDT) om de DACPAC te maken.The admins use the sqlpackage.exe utility in SQL Server Data Tools (SSDT) to create the DACPAC. Er zijn meerdere versies van sqlpackage.exe geïnstalleerd met SQL Server Data tools en ze bevinden zich in mappen met namen als 120 , 130 en 140 .There are multiple versions of sqlpackage.exe installed with SQL Server Data Tools, and they're located under folders with names like 120, 130, and 140. Het is belangrijk dat u de juiste versie gebruikt om de DACPAC voor te bereiden.It's important to use the right version to prepare the DACPAC.

  • Team Foundation Server 2018-import bewerkingen moeten sqlpackage.exe gebruiken uit de map 140 of hoger.Team Foundation Server 2018 imports need to use sqlpackage.exe from the 140 folder or higher. Voor CONTOSOTFS is dit bestand te vinden in C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\140 .For CONTOSOTFS, this file is located in C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\140.

Contoso-beheerders genereren de DACPAC als volgt:Contoso admins generate the DACPAC as follows:

  1. Hiermee opent u een opdracht prompt en gaat u naar de sqlpackage.exe locatie.They open a command prompt and go to the sqlpackage.exe location. Voor het genereren van de DACPAC voert de volgende opdracht uit:To generate the DACPAC, they run the following command:

    SqlPackage.exe /sourceconnectionstring:"Data Source=SQLSERVERNAME\INSTANCENAME;Initial Catalog=Tfs_ContosoDev;Integrated Security=True" /targetFile:C:\TFSMigrator\Tfs_ContosoDev.dacpac /action:extract /p:ExtractAllTableData=true /p:IgnoreUserLoginMappings=true /p:IgnorePermissions=true /p:Storage=Memory

    Scherm opname van de opdracht prompt met de opdracht voor het genereren van de DACPAC.

    Het volgende bericht wordt weergegeven:The following message is displayed:

    Scherm opname van de opdracht prompt, waarin een bericht wordt weer gegeven dat de data base is geëxtraheerd en opgeslagen in een DACPAC-bestand.

  2. Ze verifiëren de eigenschappen van het DACPAC-bestand.They verify the properties of the DACPAC file.

    Scherm opname van de DACPAC-bestands eigenschappen voor verificatie.

Upload het bestand naar opslagUpload the file to storage

Nadat de beheerders het DACPAC-bestand hebben gemaakt, uploaden ze het naar het Azure-opslag account.After the admins create the DACPAC file, they upload it to the Azure storage account.

  1. Ze downloaden en installeren Azure Storage Explorer.They download and install Azure Storage Explorer.

    Scherm opname van ' down load Storage Explorer Free '.

  2. In Storage Explorer maakt de beheerders verbinding met hun abonnement en zoeken en selecteren het opslag account dat is gemaakt voor de migratie ( contosodevmigration ).In Storage Explorer, the admins connect to their subscription and then search for and select the storage account they created for the migration (contosodevmigration). Ze maken een nieuwe BLOB-container azuredevopsmigration .They create a new blob container, azuredevopsmigration.

    Scherm afbeelding van de koppeling ' BLOB-container maken ' in Storage Explorer.

  3. In het deel venster bestanden uploaden in de vervolg keuzelijst type BLOB geeft de beheerder blok-BLOB op voor het uploaden van DACPAC-bestanden.On the Upload files pane, in the Blob type drop-down list, the admins specify Block Blob for the DACPAC file upload.

    Scherm opname van het deel venster "bestanden uploaden" in Storage Explorer.

  4. Nadat het bestand is geüpload, selecteren ze de bestands naam en selecteer vervolgens SAS genereren.After they upload the file, they select the file name and then select Generate SAS. Ze vouwen de lijst BLOB-containers onder het opslag account, selecteer de container met de import bestanden en selecteer vervolgens Shared Access Signature ophalen.They expand the Blob Containers list under the storage account, select the container with the import files, and then select Get Shared Access Signature.

    Scherm afbeelding van de koppeling ' Shared Access Signature ophalen ' in Storage Explorer.

  5. In het deel venster Shared Access Signature worden de standaard instellingen geaccepteerd en vervolgens maken geselecteerd.On the Shared Access Signature pane, they accept the default settings and then select Create. Ze hebben nu toegang gedurende 24 uur.This enables access for 24 hours.

    Scherm afbeelding van het deel venster "Shared Access Signature" in Storage Explorer.

  6. Ze kopiëren de URL voor de Shared Access-hand tekening, zodat deze kan worden gebruikt door het hulp programma voor Team Foundation Server migratie.They copy the shared access signature URL, so that it can be used by the Team Foundation Server migration tool.

    Scherm afbeelding van de URL van de hand tekening voor gedeelde toegang in Storage Explorer.

Notitie

De migratie moet plaatsvinden binnen het toegestane tijd venster of de machtigingen verlopen.The migration must happen within the allowed time window or the permissions will expire. Genereer geen SAS-sleutel van de Azure Portal.Do not generate an SAS key from the Azure portal. Sleutels die zijn gegenereerd op basis van de portal, zijn account bereik en werken niet bij het importeren.Keys that are generated from the portal are account-scoped and won't work with the import.

Vul de importinstellingen inFill in the import settings

Eerder werden contoso-beheerders deels ingevuld in het import specificatie bestand import.jsop.Earlier, Contoso admins partially filled in the import specification file, import.json. Nu moeten ze de overige instellingen toevoegen.Now, they need to add the remaining settings.

Ze openen de import.jsin het bestand en voeren de volgende velden in:They open the import.json file and complete the following fields:

  • Locatie: Ze voeren de locatie in van de SAS-sleutel die eerder is gegenereerd.Location: They enter the location of the SAS key that was generated previously.
  • DACPAC: De naam van het DACPAC-bestand dat u eerder hebt geüpload naar het opslag account, moet de extensie . DACPAC bevatten.DACPAC: They enter the name of the DACPAC file that they uploaded earlier to the storage account, making sure to include the .dacpac extension.
  • ImportType: Ze voeren DryRun nu in.ImportType: They enter DryRun for now.

Scherm opname van het bestand ' import.jsop ' met de velden die zijn ingevuld.

Voer een droog migratie uitPerform a dry-run migration

Contoso-beheerders voeren een droog migratie uit om ervoor te zorgen dat alles werkt zoals verwacht.Contoso admins perform a dry-run migration to make sure that everything's working as expected.

  1. Ze openen een opdracht prompt en gaan vervolgens naar de TfsMigrator locatie ( C:\TFSMigrator ).They open a command prompt and then go to the TfsMigrator location (C:\TFSMigrator).

  2. Ze willen er zeker van zijn dat het bestand correct is ingedeeld en dat de SAS-sleutel werkt.They want to make sure that the file is formatted properly and that the SAS key is working. Ze valideren het import bestand door de volgende opdracht uit te voeren:They validate the import file by running the following command:

    TfsMigrator import /importFile:C:\TFSMigrator\import.json /validateonly

    De validatie retourneert een fout melding dat de SAS-sleutel een langere periode nodig heeft voordat deze verloopt.The validation returns an error saying that the SAS key needs a longer period before it expires.

    Scherm opname van de opdracht prompt waarin een validatie fout wordt weer gegeven.

  3. Ze gebruiken Azure Storage Explorer om een nieuwe SAS-sleutel te maken met de periode voordat de verval datum is ingesteld op zeven dagen.They use Azure Storage Explorer to create a new SAS key with the period before expiration set to seven days.

    Scherm afbeelding van het deel venster met de Storage Explorer Shared Access Signature de verval datum weer gegeven.

  4. Ze werken het import.json bestand bij en voeren de opdracht opnieuw uit.They update the import.json file and rerun the command. Deze keer dat de validatie is voltooid.This time, the validation is completed successfully.

    TfsMigrator import /importFile:C:\TFSMigrator\import.json /validateonly

    Scherm opname van de opdracht prompt waarin het bericht validatie voltooid wordt weer gegeven.

  5. De droge uitvoering wordt gestart door de volgende opdracht uit te voeren:They start the dry run by running the following command:

    TfsMigrator import /importFile:C:\TFSMigrator\import.json

    Er wordt een bericht weer gegeven waarin wordt gevraagd om te bevestigen dat ze willen door gaan met de migratie.A message is displayed asking them to confirm that they want to continue with the migration. Let op de periode van zeven dagen na de droge uitvoering waarbij de gefaseerde gegevens behouden blijven.Note the seven-day period after the dry run during which the staged data will be maintained.

    Scherm opname van het bericht waarin contoso wordt gevraagd om te bevestigen dat ze willen door gaan met de migratie.

  6. Het aanmeldings venster van Azure AD wordt geopend.The Azure AD sign-in window opens. Contoso-beheerders melden zich aan bij Azure AD met beheerders machtigingen.Contoso admins sign in to Azure AD with admin permissions.

    Scherm afbeelding van het Azure AD-aanmeld venster in Visual Studio.

    Er wordt een bericht weer gegeven waarin wordt bevestigd dat het importeren is gestart.A message is displayed confirming that the import has been started successfully.

    Scherm opname die laat zien dat het importeren is gestart.

  7. Na ongeveer 15 minuten gaat u naar de website en raadpleegt u de volgende informatie:After about 15 minutes, the admins go to the website and see the following information:

    Scherm opname die laat zien dat de verzameling wordt hersteld.

  8. Nadat de migratie is voltooid, meldt een contoso dev-lead zich aan bij Azure DevOps Services om ervoor te zorgen dat de droge uitvoering goed werkte.After the migration finishes, a Contoso dev lead signs in to Azure DevOps Services to ensure that the dry run worked properly. Na verificatie heeft Azure DevOps Services nog enkele details nodig om de organisatie te bevestigen.After authentication, Azure DevOps Services needs a few details to confirm the organization.

    Scherm afbeelding van het Azure DevOps Services-venster dat aanvullende informatie aanvraagt bij het contoso-team.

    De potentiële klant kan zien dat de projecten zijn gemigreerd.The dev lead can see that the projects have been migrated successfully. In een bericht aan de bovenkant van de pagina wordt een waarschuwing weer gegeven dat het account voor droge uitvoering in 15 dagen wordt verwijderd.A notice near the top of the page warns that the dry run account will be deleted in 15 days.

    Scherm opname van de Azure DevOps Services-Interface, met een bericht waarin wordt gemeld dat het droge uitvoerings account in 15 dagen wordt verwijderd.

  9. De dev lead opent een van de projecten en selecteert vervolgens werk items > die aan mij zijn toegewezen.The dev lead opens one of the projects and then selects Work Items > Assigned to me. Op deze pagina wordt gecontroleerd of de gegevens van het werk item zijn gemigreerd, samen met de identiteit.This page verifies that the work item data has been migrated successfully, along with the identity.

    Scherm afbeelding van het deel venster werk items van Azure DevOps Services, waarin alle gemigreerde projecten worden weer gegeven.

  10. Om te bevestigen dat de bron code en-geschiedenis zijn gemigreerd, controleert de ontwikkelings leider andere projecten en code.To confirm that the source code and history have been migrated, the dev lead checks other projects and code.

    Scherm afbeelding van het deel venster geschiedenis van Azure DevOps Services, waarin wordt weer gegeven dat alle code en geschiedenis zijn gemigreerd.

De productiemigratie voltooienRun the production migration

Nu de droge uitvoering is voltooid, worden contoso-beheerders verplaatst naar de productie migratie.Now that the dry run is complete, Contoso admins move on to the production migration. Ze verwijderen de proefdraai, werken de importinstellingen bij en voeren de import opnieuw uit.They delete the dry run, update the import settings, and run import again.

  1. In de Azure DevOps Services-portal wordt de organisatie voor chemisch uitvoeren verwijderd.In the Azure DevOps Services portal, they delete the dry-run organization.

  2. Ze werken het import.json bestand bij om de ImportType in te stellen op ProductionRun.They update the import.json file to set the ImportType to ProductionRun.

    Scherm opname van de Azure DevOps Services-portal, waarbij het veld ImportType is ingesteld op ProductionRun.

  3. Net als bij de droge uitvoering, starten ze de migratie door de volgende opdracht uit te voeren:As they did for the dry run, they start the migration by running the following command:

    TfsMigrator import /importFile:C:\TFSMigrator\import.json.TfsMigrator import /importFile:C:\TFSMigrator\import.json.

    Er wordt een bericht weer gegeven met de vraag of de beheerder de migratie heeft bevestigd.A message is displayed asking the admins to confirm the migration. Er wordt een waarschuwing gegeven dat gegevens Maxi maal zeven dagen kunnen worden bewaard op een veilige locatie als tijdelijke ruimte.It warns that data could be held in a secure location as a staging area for up to seven days.

    Scherm opname van een Azure DevOps Services-bericht dat de gemigreerde gegevens Maxi maal zeven dagen kunnen worden bewaard.

  4. In het aanmeldings venster van Azure AD geven ze een aanmelden bij Contoso-beheerder.In the Azure AD sign-in window, they specify a Contoso admin sign-in.

    Scherm afbeelding van het aanmeldings scherm van Azure AD in Visual Studio.

    Er wordt een bericht weer gegeven dat het importeren is gestart.A message is displayed that the import has started successfully.

    Scherm opname van een Azure DevOps Services-bericht dat het importeren is gestart.

  5. Na ongeveer 15 minuten gaat u naar de website en raadpleegt u de volgende informatie:After about 15 minutes, the admins go to the website and see the following information:

    Scherm opname die laat zien dat de gegevens naar de cloud worden gekopieerd.

  6. Nadat de migratie is voltooid, meldt een ontwikkelaar zich aan bij Azure DevOps Services om ervoor te zorgen dat de migratie goed werkt.After the migration finishes, a dev lead signs into Azure DevOps Services to ensure that the migration worked properly. Nadat u zich hebt aangemeld, kan de lead van de ontwikkelaar zien dat projecten zijn gemigreerd.After signing in, the dev lead can see that projects have been migrated.

    Scherm opname die laat zien dat de projecten zijn gemigreerd.

  7. De dev lead opent een van de projecten en selecteert werk items > die aan mij zijn toegewezen.The dev lead opens one of the projects and selects Work Items > Assigned to me. Dit geeft aan dat de gegevens van het werk item zijn gemigreerd, samen met de identiteit.This shows that the work item data has been migrated, along with the identity.

    Scherm opname waarin wordt getoond dat de gegevens van het werk item en de identiteit zijn gemigreerd.

  8. De dev-lead controleert of andere gegevens van het werk item zijn gemigreerd.The dev lead checks to confirm that other work item data has been migrated.

    Scherm afbeelding met meer gegevens over werk items die moeten worden bevestigd.

  9. Om te bevestigen dat de bron code en-geschiedenis zijn gemigreerd, controleert de ontwikkelings leider andere projecten en code.To confirm that the source code and history have been migrated, the dev lead checks other projects and code.

    Scherm afbeelding met aanvullende project-en bron code migratie om te bevestigen.

Broncode beheer van TFVC naar Git verplaatsenMove source control from TFVC to Git

Nu de migratie is voltooid, willen contoso-beheerders broncode beheer verplaatsen van TFVC naar Git.With the migration now completed, Contoso admins want to move source code management from TFVC to Git. De beheerders moeten de bron code in de Azure DevOps Services-organisatie importeren als Git opslag plaatsen in dezelfde organisatie.The admins need to import the source code that's currently in their Azure DevOps Services organization as Git repos in the same organization.

  1. In de Azure DevOps Services-portal openen ze een van de TFVC-opslag plaatsen $/PolicyConnect en bekijken ze het.In the Azure DevOps Services portal, they open one of the TFVC repos, $/PolicyConnect, and review it.

    Scherm opname van de opslag plaats ' $/PolicyConnect ' in de Azure DevOps Services-portal.

  2. In de vervolg keuzelijst bron $/PolicyConnect selecteert u opslag plaats importeren.In the source $/PolicyConnect drop-down list, they select Import repository.

    Scherm opname van de koppeling ' opslag plaats importeren ' in de Azure DevOps Services-portal.

  3. In de vervolg keuzelijst bron type selecteert u TFVC.In the Source type drop-down list, they select TFVC. In het vak pad geeft u het pad naar de opslag plaats op en selecteert u vervolgens importeren.In the Path box, they specify the path to the repo, and then select Import. Ze willen het selectie vakje migratie geschiedenis uitgeschakeld laten.They decide to leave the Migrate History check box cleared.

    Scherm afbeelding van het deel venster "importeren uit TFVC".

    Notitie

    Omdat de TFVC-en Git-versie beheer gegevens anders zijn, raden we aan dat Contoso de bibliotheek geschiedenis niet migreert.Because TFVC and Git store version control information differently, we recommend that Contoso not migrate its repository history. Dit is de aanpak die micro soft heeft ondernomen toen we Windows en andere producten van gecentraliseerd versie beheer naar Git hebben gemigreerd.This is the approach that Microsoft took when we migrated Windows and other products from centralized version control to Git.

  4. Nadat het importeren is voltooid, wordt de code door de beheerders gecontroleerd.After the import finishes, the admins review the code.

    Scherm opname waarin wordt bevestigd dat het importeren is gelukt.

  5. Ze herhalen het proces voor de tweede opslag plaats $/smarthotelcontainer .They repeat the process for the second repository, $/smarthotelcontainer.

    Scherm afbeelding van het deel venster "importeren uit TFVC" voor de tweede opslag plaats.

  6. Nadat de ontwikkelings lead de bron heeft gecontroleerd, gaan ze ermee akkoord dat de migratie naar Azure DevOps Services is voltooid.After the dev lead reviews the source, they agree that the migration to Azure DevOps Services is done. Azure DevOps Services wordt nu de bron voor alle ontwikkeling binnen de teams die bij de migratie betrokken zijn.Azure DevOps Services now becomes the source for all development within the teams involved in the migration.

    Scherm opname waarin wordt getoond dat de migratie naar Azure DevOps Services is voltooid.

Meer hulp nodig?Need more help?

Zie opslag plaatsen van TFVC naar Git importerenvoor meer informatie.For more information, see Import repositories from TFVC to Git.

Opschonen na migratieClean up after migration

Nu de migratie is voltooid, moet het contoso-team het volgende doen:With the migration now complete, the Contoso team needs to do the following:

  • Raadpleeg het artikel post- import voor informatie over aanvullende importactiviteiten.Review the post-import article for information about additional import activities.
  • Verwijder de TFVC-opslag plaatsen of plaats deze in de modus alleen-lezen.Either delete the TFVC repos or place them in read-only mode. De code bases mogen niet worden gebruikt, maar er kan naar worden verwezen voor de geschiedenis.The code bases must not be used, but they can be referenced for their history.

Post-migratietrainingPost-migration training

Het contoso-team moet Azure DevOps Services en git-training bieden voor relevante team leden.The Contoso team will need to provide Azure DevOps Services and Git training for relevant team members.