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

OpenMRS从Nexus迁移到Artifactory

更新:从2021年5月1日起,Bintray服务将不再可用(ConanCenter和JCenter不受影响),欲了解更多信息,请阅读Centers弃用博客

OpenMRS,合作的开源项目开发软件,支持在发展中国家的医疗保健交付,最近宣布他们已经从使用Sonatype Nexus和Maven中心迁移到JFrog解决方案Artifactory而且Bintray

“一切都很顺利,我们在迁移后没有从开发者那里听到任何问题。到目前为止,Artifactory云服务非常适合我们,让我们繁忙的基础设施团队松了一口气。”

Rafal Korytkowski, OpenMRS软件工程师

OpenMRS已经加入了数百万已经使用OpenMRS的开发人员和项目的行列由JFrog和谷歌赞助的特别节目通过在GCP上提供二进制管理和分发的解决方案来支持开源社区。

OpenMRS在去年2月加入了这个项目,并迁移了他们的Maven存储库从Sonatype Nexus到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中央回购所强加的要求。

JFrog公司的邀请来得正是时候。我们决定使用一个专用的Artifactory云实例,它几乎可以替代我们的Nexus回购。

我们将迁移分为两个阶段。第一阶段比第二阶段提前2周开始。

在第一阶段,我们使用Nexus2artifactory迁移工具将所有工件和配置从Nexus移动到Artifactory。不到4个小时就完成了。我们还配置了许多从旧repo中的url(在项目的POMs中广泛使用)到新的Artifactory实例的重定向。这样我们就不需要改变项目pom中的任何东西,通过将mavenrepo.openmrs.org指向一个Apache实例,将请求重定向到openmrs.jfrog.io,切换就可以发生。

最乏味的工作是将用户迁移到Artifactory。尽管迁移工具迁移了用户帐户,但它不能迁移密码。不幸的是,在我们进行迁移时,Artifactory没有要求用户通过电子邮件重置密码的功能。

我们决定让所有用户的密码过期,并通过发送带有新密码的电子邮件来联系每个用户,并要求登录并将其重置为以前使用的密码。这样,当我们准备切换时,用户甚至不会注意到我们从Nexus转移到Artifactory,因为他们的凭据将继续工作。

在迁移的第二阶段,我们提前向开发人员宣布,我们关闭了将构件部署到Nexus的功能,这保证了在迁移构件之后和更改DNS条目之前不会部署任何构件。接下来,我们再次运行迁移工具来迁移所有工件,这些工件是在上次运行后部署的。这次只花了不到一个小时。最后,我们更改了DNS条目。

一切都很顺利,在迁移之后,我们没有从开发人员那里听到任何问题。到目前为止,Artifactory云服务非常适合我们,让我们繁忙的基础设施团队松了一口气。

我们现在正在考虑将Artifactory与OpenMRS Bintray帐户连接起来,以便自动将版本推送到Bintray,以便最终用户可以使用它们。Bintray将用作后端,以取代我们的另一个自我维护的存储库https://modules.openmrs.org/

我们希望Aritfactory和Bintray能让我们跟上OpenMRS贡献的增长势头!

最后,我要感谢Cintia Del里约热内卢,她是OpenMRS志愿者DevOps之一,在迁移过程中帮助我。

Rafal Korytkowski


有一个OSS项目?

想要JFrog Artifactory云托管在GCP免费?加入计划

了解更多JFrog vs Sonatype