移轉概觀
從 Azure DevOps Server 移至 Azure DevOps Services 是想要利用雲端式共同作業、延展性和增強功能的組織的重要步驟。 在此概觀中,我們會探索將寶貴數據從內部部署 Azure DevOps Server 傳輸到雲端式 Azure DevOps Services 的選項。
如需內部部署 Azure DevOps Server 與雲端式 Azure DevOps Services 之間主要差異的資訊,請參閱 比較 Azure DevOps Services 與 Azure DevOps Server - Azure DevOps。
無論您選取的移轉選項為何,建議您判斷最重要的資產,例如原始程式碼和工作專案。 您應該考慮您的數據大小、組織複雜性,並確定在實際移轉之前有足夠的時間進行測試執行,以順利且成功的轉換。
移轉的方法
請務必根據採用 Azure DevOps Services 的特定動機,評估每個移轉方法的優缺點。 正確的策略取決於您獨特的內容和需求。
選項。 | 建議的案例 | 限制 |
---|---|---|
1:手動移轉 | 用於較小的專案或特定數據子集。 | 並非所有的數據都可以以完全逼真度進行移轉,而且受限於節流。 此移轉不支援移轉 XML 範本,因此您必須將進程範本重新建立為繼承的範本。 |
2:Azure DevOps 數據遷移工具 | 用於具有不同數據類型和複雜結構的中型到大規模移轉。 | 您只能將一個 Azure DevOps Server 集合「隨即轉移」到一個新的 Azure DevOps Services 組織,而不需要修改。 如需詳細資訊,請參閱 一節。 |
3:以 API 為基礎的移轉 | 為具有獨特移轉需求或自動化需求的組織提供彈性和自定義功能。 | 可能會發生低精確度、數據遺失和標識碼變更。 如需詳細資訊,請參閱 一節。 |
選項 1:手動移轉
例如,當位於Microsoft的 Azure DevOps 小組選擇從 Azure DevOps Server 移至 Azure DevOps Services 時,我們也決定從 Team Foundation 版本控制 (TFVC) 移至 Git。 移轉需要大量規劃,但當我們移轉時,我們會使用 TFVC 來源的「小費」版本建立新的 Git 存放庫,並在 Azure DevOps Server 中留下我們的歷程記錄。 我們也移動了作用中的工作專案,並留下所有舊的 Bug、已完成用戶劇本和工作等等。
手動移轉程序
- 識別您需要移轉的最重要資產 - 通常是原始程式碼、工作專案或兩者。 Azure DevOps Server 中的其他資產 - 建置管線、測試計劃等等 - 較難手動移轉。
- 識別進行轉換的適當時間。
- 準備目標組織。 建立您需要的組織和小組專案、布建使用者等等。
- 遷移您的資料。
- 請考慮將來源 Azure DevOps Server 部署設定為唯讀。 您可以透過下列方式執行此動作:
- 調整專案層級許可權:在專案層級將所有使用者或群組的許可權設定為唯讀,您可以在 [項目設定] 中 修改安全性角色來執行此動作。
- 修改存放庫設定:針對每個存放庫,您可以變更設定使其變成只讀,這牽涉到調整每個使用者或群組的許可權,只允許讀取動作。
- 使用內建安全組:利用內建安全組更有效率地管理許可權。 您可以將使用者指派給「讀取者」之類的群組,以提供唯讀存取權。
- 腳本許可權變更:如果您有許多專案或存放庫,您可能需要編寫腳本。 您可以使用 Azure CLI DevOps 擴充功能 來列出所有許可權,並視需要加以更新。
- 停用存放庫功能:停用存放庫的存取權,包括組建和提取要求,但會使用警告讓存放庫保持可探索。 移至 [項目設定>>存放庫] 存放庫,然後在 [停用存放庫] 旁,將切換開關移至 [開啟]。
選項 2:Azure DevOps 資料遷移工具
Azure DevOps 數據遷移工具是由 Microsoft 提供的一組公用程式,可協助將數據從 Azure DevOps Server 移轉至 Azure DevOps Services。 這些工具提供簡化的方法,可移轉各種成品,包括原始程式碼、工作專案、測試案例和其他專案相關數據。
在起始移轉程式之前,這些工具可以執行預先移轉分析,以評估來源環境的整備程度,並找出可能影響移轉的潛在問題或相依性。 評估整備程度,以便事先規劃和減輕潛在挑戰。
移轉工具限制
此工具可讓您「隨即轉移」一個 Azure DevOps Server 集合至一個新的 Azure DevOps Service 組織,但基於下列原因而不需要修改:
- 數據完整性和一致性:
- 當您移轉數據時,維護完整性和一致性非常重要。 在移轉期間允許修改可能會導致數據損毀或不一致。
- 此工具可確保數據在傳輸過程中保持不變,將錯誤的風險降到最低。
- 來源資料保留:
- 移轉工具旨在忠實地復寫目標環境中的源數據。
- 修改可能會改變原始數據,這可能會導致移轉的數據與源數據之間的差異。
- 可預測的行為:
- 藉由限制修改,此工具可確保在移轉期間可預測的行為。
- 用戶可以依賴一致的結果,而不會發生非預期的變更。
- 移轉焦點,而非轉換:
- 移轉工具的主要目的是將數據從一個位置移到另一個位置。
- 數據轉換(例如修改值)通常會在移轉后個別處理。
您可以清除移轉前後不需要的數據。
移轉工具程式
- 完成必要條件,例如將 Azure DevOps Server 更新為兩個最新版本之一。
- 驗證您想要移至 Azure DevOps Services 的每個集合。
- 產生移轉檔案。
- 準備移轉執行的所有專案。
- 執行測試回合。
- 執行移轉。
- 確認您的使用者和數據已移轉,且集合如預期般運作。
選項3:以 API 為基礎的移轉
如果基於某些原因,您無法使用資料遷移工具,但仍想要比 選項 2 更高的精確度移轉,您可以從使用公用 API 來移動資料的各種工具中選擇。
API 型移轉限制
API 型移轉發生下列限制:
- 低精確度移轉:
- 限制:API 型工具提供比手動複製更高的逼真度,但仍相對較低的逼真度。
- 含意:雖然這些工具提供一些逼真度,但它們不會保留數據的所有層面。
- 範例:它們都未保留 TFVC 變更集的原始日期(Team Foundation 版本控制)。
- 許多人也不會保留工作專案修訂的變更日期。
- 資料遺失和識別碼變更:
- 限制:在移轉期間,工具會重新執行工作項目變更、TFVC 變更集、套件摘要和管線成品。
- 含意:此程式可能會導致數據遺失、產生新的標識符,以及改變建立、修改和關閉日期。
- 範例:系結至特定日期的歷程記錄內容可能會遺失,因而影響報告和可追蹤性。
API 型移轉程式
一般而言,只有在手動復本以外的額外逼真度很重要時,我們才建議使用此方法。 如果您決定採用這種方法,您可以考慮僱用具有一或多個工具經驗的顧問,並在最終移轉之前進行測試移轉。
許多組織只需要其工作子集的精確度非常高的移轉。 新的工作可能會直接在 Azure DevOps Services 中啟動。 其他工作,使用較不嚴格的逼真度需求,可以使用其中一種方法來移轉。
支援的進程模型
Azure DevOps Services 支援下列程式模型:
根據預設,Azure DevOps Services 中會 關閉 託管的 XML。 只有在您在 Azure DevOps Server 中自定義專案時,才會在移轉期間開啟託管的 XML 程式模型。 一旦項目位於託管 XML 上,您就可以 將它升級為移轉後繼承的 XML。
主要原則
移轉至 Azure DevOps Services 時,請記住下列重要原則和限制:
- Azure DevOps Services 僅限英文:Azure DevOps Server 支援多種語言,但目前 Azure DevOps Services 僅支援英文。 如果您的集合使用非英文或過去使用非英文,而且您在升級期間將語言轉換成英文,則無法使用數據遷移工具。
- 繼承:從敏捷式、Scrum 或 CMMI 程式範本建立且從未自定義的專案,會在移轉後位於繼承程式模型上。
- 裝載的 XML:具有自定義專案的任何項目都會使用託管的 XML 進程模型。
- 每個自定義專案的程式:雖然 Azure DevOps Services 允許專案共用程式,但數據遷移工具會為每個自定義小組專案建立託管的 XML 程式。 例如,如果您有 30 個自定義專案,您有 30 個要管理的託管 XML 程式。 如果您想要進一步自定義所有項目的託管 XML 程式,則必須個別更新每個託管的 XML 進程。
- 程序驗證:數據遷移工具的程式驗證會偵測每個專案的目標進程模型。 在移轉之前,您必須修正裝載 XML 專案的任何進程驗證錯誤。 您可能想要考慮更新項目的程式,以符合我們的其中一個程式(Agile、Scrum 或 CMMI),以利用繼承程式模型。 在我們的檔中深入瞭解程式驗證類型。