为什么OpenMRS从Sonatype Nexus迁移到JFrog Artifactory和Bintray

更新:自2021年5月1日起,Bintray服务将不再可用(ConanCenter和JCenter不受影响)中心弃用博客
OpenMRS,协作的开源该项目旨在开发支持发展中国家医疗保健服务的软件,最近宣布他们已从使用Sonatype Nexus和Maven Central转向使用JFrog解决方案Artifactory和Bintray.
“这一切都很顺利,在迁移之后我们没有听到任何来自开发者的问题。到目前为止,Artifactory Cloud服务对我们来说非常完美,可以缓解我们繁忙的基础设施团队的压力。”
Rafal Korytkowski OpenMRS软件工程师
OpenMRS已经加入了数百万已经在使用OpenMRS的开发人员和项目由JFrog和Google赞助的特别节目通过在GCP上提供二进制管理和分发的解决方案来支持开源社区。
OpenMRS去年二月加入了这个项目,并迁移了他们的Maven存储库从Sonatype联系Artifactory。整个过程分两个阶段在几小时内完成。本文介绍了迁移路径和原因,如OpenMRS博客.
迁移OpenMRS以使用Artifactory和Bintray
每个OpenMRS开发人员每天使用的OpenMRS maven存储库被迁移到Artifactory云一个多月前。这一切之所以成为可能,要感谢联合国的慷慨捐助JFrog公司让我们使用免费的云实例。
Artifactory是各种软件构件的存储库,但我们主要将其用于maven构建构件。此外,我们正在努力将我们的软件通过Bintray,它与Artifactory无缝集成。
大约在2016年底,我们遇到了空间限制联系部署到基础设施硬件的存储库。这项服务也没有得到我们繁忙的DevOps团队的太多关注。我们缺乏适当的备份和更新。然而,不知何故,它为我们服务了大约6年。在此期间,开发人员使用约10 gb的磁盘空间部署了约20,000个工件。
首先我们考虑搬到Maven中央由Sonatype并且对OSS项目是免费的,但是当涉及到部署谁和什么时,它没有为我们提供与Nexus实例相同的灵活性。根据Maven Central repo的要求调整历史工件也是一项重要的工作。
JFrog公司的报价来得正是时候。我们决定使用一个专用的Artifactory云实例,它几乎可以替代我们的Nexus仓库。
我们将迁移分为两个阶段。第一阶段比第二阶段提前两周开始。
在第一阶段,我们使用nexus2人工迁移工具将所有的工件和配置从Nexus移动到Artifactory。它只用了不到4个小时就完成了。我们还配置了许多重定向,从旧仓库中的url(在项目的pom中广泛使用)重定向到新的Artifactory实例。这样我们就不需要更改项目pom中的任何内容,并且可以通过将mavenrepo.openmrs.org指向Apache实例来进行DNS更改,该实例将请求重定向到openmrs.jfrog.io。
最乏味的工作是将用户迁移到Artifactory。虽然迁移工具可以迁移用户帐户,但它不能迁移密码。不幸的是,在我们进行迁移时,Artifactory没有要求用户通过电子邮件重置密码的功能。
我们决定让所有用户的密码过期,并通过向每个用户发送带有新密码的电子邮件,要求登录并将其重置为以前使用的密码。这样,当我们准备切换时,用户甚至不会注意到我们从Nexus转移到Artifactory,因为他们的凭证将继续工作。
在迁移的第二阶段,提前向开发人员宣布,我们关闭了将工件部署到Nexus,这保证了在迁移工件之后和更改DNS条目之前不会部署任何东西。接下来,我们再次运行迁移工具来迁移自上次运行以来部署的所有构件。这次花了不到一个小时。最后,我们更改了DNS条目。
一切都很顺利,在迁移之后,我们没有听到任何来自开发人员的问题。到目前为止,Artifactory Cloud服务对我们来说是完美的,它可以缓解我们繁忙的基础设施团队的压力。
我们现在正在考虑将Artifactory与OpenMRS Bintray帐户连接起来,以便自动将发布版本推送到Bintray,以便最终用户可以使用它们。Bintray将被用作后端,以取代我们在https://modules.openmrs.org/.
我们希望Aritfactory和Bintray能够让我们跟上对OpenMRS贡献的增长势头!
最后,我要感谢Cintia Del Rio,她是OpenMRS的DevOps志愿者之一,在迁移过程中帮助我。
Rafal Korytkowski
有一个OSS项目?
想要在GCP上免费托管JFrog Artifactory Cloud ?加入这个项目.
了解更多关于JFrog vs Sonatype.