内容提要
本文介绍Azure DevOps仓库迁移至GitHub Enterprise Cloud的新工具ELM。它支持数据驻留,通过验证、同步、切换三阶段实现低干扰迁移,持续同步变更,切换窗口通常少于30分钟。ELM支持仓库、分支、标签、规则集及PR元数据,但不迁移工作项、管道等。用户可保留Azure Pipelines和Boards,实现渐进式迁移,现处于公开预览阶段。
延伸解读
迁移范围与限制
ELM 仅迁移仓库、提交历史、分支、标签、分支策略(转换为规则集)以及 PR 元数据。工作项、管道定义、发布、Wiki、测试工件和 Azure Artifacts 不在迁移范围内。这意味着迁移后,这些数据仍需保留在 Azure DevOps 中,团队需要规划好跨平台的数据访问方式。
渐进式迁移策略
ELM 支持渐进式迁移,允许团队在迁移仓库的同时继续使用 Azure Pipelines 和 Azure Boards。通过克隆管道验证构建和部署,在切换时重新接线到 GitHub。这避免了“大爆炸”式迁移,降低了风险,但需要团队协调好两个平台的使用边界。
数据驻留与版本限制
ELM 目前仅支持 GitHub Enterprise Cloud with data residency(ghe.com),不支持标准版(github.com)。这意味着使用标准版的企业无法使用此工具,需要先确认自己的 GitHub 版本。数据驻留功能对于有合规要求的企业尤为重要,但迁移前需确保目标版本匹配。
Q&A
ELM是什么?它主要用于什么场景?
ELM(Enterprise Live Migrations)是微软提供的一个工具,用于将Azure DevOps中的仓库迁移到GitHub Enterprise Cloud(带数据驻留),旨在帮助企业以最小干扰的方式大规模迁移代码仓库。
ELM迁移过程分为哪几个阶段?每个阶段做什么?
ELM迁移分为三个阶段:验证(Validate)确认源仓库是否就绪;同步(Synchronize)迁移仓库数据并持续同步变更;切换(Cut over)执行最终同步并完成迁移。
使用ELM迁移时,开发团队需要停止开发吗?
不需要。迁移在后台进行,源仓库保持可用,变更会持续同步到GitHub,团队可以自行安排切换时间,通常切换窗口少于30分钟,无需长时间冻结开发。
ELM支持迁移哪些内容?不支持哪些?
支持迁移仓库、提交历史、分支、标签、分支策略(转换为GitHub规则集)、PR元数据、评论和用户历史,以及多仓库协调迁移。不支持迁移工作项、管道定义、发布、Wiki、测试工件和Azure Artifacts。
ELM支持哪种GitHub Enterprise Cloud?如何区分?
ELM支持带数据驻留的GitHub Enterprise Cloud(ghe.com),不支持标准GitHub Enterprise Cloud(github.com)。可通过URL判断:ghe.com为支持,github.com为不支持。
迁移后还能继续使用Azure Pipelines和Azure Boards吗?
可以。ELM可以将Azure Pipelines重新指向迁移后的GitHub仓库,迁移期间可使用克隆管道验证构建和部署;团队也可以继续使用Azure Boards进行计划和跟踪,实现渐进式迁移。