使用联合存储库启用多站点DevOps

应用程序由一个小开发团队在一个房间里创建的日子早已过去。企业软件开发现在是一个高度协作的过程,由遍布全球的多个站点的交叉团队共享包。

对于企业来说,JFrog Artifactory长期以来一直通过不同的推/拉复制拓扑选项支持多站点复制,使地理上分布的团队能够在相同的工件(二进制文件及其元数据)上工作,通过本地存储库的延迟最小。

最近,我们介绍了JFrog人工联合存储库,一个创新的;双向镜像技术提供DevOps对于多站点团队和项目来说,Teams是一个易于设置和维护的选项。这种存储库镜像技术可以跨多个站点连续同步一组联合存储库。

联合存储库拓扑

使用JFrog人工联合存储库,企业可以:

  • 跨地理分布的团队协作开发软件
  • 安全有效地在站点之间同步频繁更新的二进制文件
  • 全球规模化发展
  • 确保所有共享的工件和元数据都是最新版本
  • 复制用于灾难恢复

使用联合存储库进行全局扩展

JFrog联合存储库通过授权地理上分布的团队共同共享工件及其元数据来支持多站点开发。

通过联合,可以将一个Artifactory部署(例如,在阿姆斯特丹)中的本地存储库逻辑地连接起来,以与另一个Artifactory部署(例如,在曼谷)中的本地存储库同步。当以这种方式连接时,推送到阿姆斯特丹存储库的工件和元数据将自动复制到曼谷的存储库。由于这种联合是双向的,所以推送到曼谷存储库的数据也会在阿姆斯特丹复制。

通过这种方式,加入到联合中的人工存储库为每个站点提供了一个统一的、本地可访问的共享全局数据存储库。

联合存储库的双向镜像

多站点同步

容易管理

使用JFrog联合存储库,一个站点的授权管理员可以创建多个JFrog平台部署中的本地存储库,并将其加入到一个单一的多站点联合中。不需要在跨时区的不同物理站点的平台管理员之间协调设置来创建联合拓扑。

可以从任何附属的物理站点快速轻松地完成设置和维护:对配置和存储库设置的所有更改在所有联邦成员之间自动同步。

在Artifactory中配置联合存储库

管理员查看

企业可伸缩

您可以在Artifactory通用版中支持的30种存储库类型中的任何一种中联合存储库包管理。当然,联合中的所有存储库必须具有相同的类型,但是您可以为不同的包类型创建多个联合。例如,你可以有一个npm仓库联盟,一个Maven仓库联盟,一个Docker仓库联盟。

任何储存库联合都可以包含多达10个相同储存库类型的成员(远程站点上不同JFrog平台部署(jpd)中的本地储存库),从而提供广泛的地理覆盖。

安全信任圈

联合存储库使用二进制提供程序令牌在成员之间建立信任圈,而无需在每个站点设置证书。JFrog任务控制自动启用所有jpd进行安全联合,或者您可以手动指定安全的JFrog平台url。

每个站点的管理员都可以通过在自己的jpa上管理的权限组启用或限制自己的用户对联合存储库的访问。

如何配置联合存储库

要开始使用Federated存储库,首先需要进行设置跨实例身份验证(信任圈)在jpd之间。一旦配置完成,平台管理员就可以根据存储库的预定义权限集对其执行CRUD(创建、删除、更新和删除)操作。

在一个联邦存储库上执行的所有操作将自动同步并反映在所有联邦成员上,不仅包括存储库内容,还包括关键配置更改。

重要的是要理解,在联合中,工件和元数据的双向镜像只发生在声明了a的存储库之间直接它们之间的联系。镜像并自动级联到其他辅助连接的存储库。

例如,考虑使用以下四个JFrog平台部署的多站点示例:

  1. 上的云实例亚马逊网络服务(AWS)
  2. 位于佛罗里达州奥兰多的主数据中心的本地站点
  3. 位于加利福尼亚州圣克拉拉市的公司总部的本地站点
  4. 位于马萨诸塞州沃尔瑟姆的分支开发办公室的现场

让我们看一些示例拓扑,看看它是如何工作的。

明星拓扑

在星型拓扑中,JPD中的本地存储库充当联合中其他JPD存储库的中心集线器。中心JPD存储库与联合中的每个人共享其工件和元数据,每个人与中心共享他们的工件和元数据。然而,其他网站可以互相分享。

在本例中,我们将来自AWS上的云实例的联合配置为中心集线器,以连接到附属站点。在三个本地站点上不进行联合存储库配置。

星型拓扑中的联合存储库

所以在这个例子中:

  • 推送到AWS中的存储库的工件将在Orlando、Santa Clara和Waltham中得到镜像
  • 推送到奥兰多存储库的工件将被镜像只有在AWS上。
  • 推送到Santa Clara存储库的工件将被镜像只有在AWS
  • 推送到沃尔瑟姆存储库的工件将被镜像只有在AWS
奥兰多 沃尔瑟姆 圣克拉拉 AWS

奥兰多

X X

沃尔瑟姆

X

X

圣克拉拉

X

X

AWS

可以看到,这种拓扑结构有很大的局限性。例如,在奥兰多创建的工件将无法在本地提供给沃尔瑟姆的开发人员(尽管所有站点都可以通过AWS上的云实例访问所有工件)。

这种类型的拓扑在某些情况下可能是有用的,例如当大多数工件和元数据期望在中心站点产生,但需要在本地对附属站点可用时。

全网状拓扑

在完全网状拓扑中,联合中的所有工件和元数据都镜像到所有站点的本地存储库中。所有站点上的所有用户都可以根据其本地管理的权限访问所有数据,网络延迟最小。

要做到这一点,平台管理员必须小心完成其联合连接。

例如,我们的示例组织中的管理员可能会错误地配置联邦,如下图所示:

联合存储库,而不是全网格

虽然这个拓扑图似乎通过这个圆形连接集创建了一个完整的网状网络,但事实并非如此。工件和元数据的双向镜像仅发生在直接在federation中连接。

在这种配置中,每个站点将只镜像其他站点中的两个,而不是全部三个:

奥兰多 沃尔瑟姆 圣克拉拉 AWS
奥兰多

X

沃尔瑟姆

X

圣克拉拉

X

AWS

X

要正确配置全网格的联合存储库,每一个必须将站点配置为与其他三个站点直接联合。

在这个全网格配置中,每个站点将镜像所有其他站点:

奥兰多 沃尔瑟姆 圣克拉拉 AWS
奥兰多

沃尔瑟姆

圣克拉拉

AWS

来自众多,一

联合存储库提供了一种灵活的方法来跨多个站点共享工件存储库,这种方法易于设置和维护。如何配置拓扑由您自己决定,选择最适合您需要的样式。

一旦配置完毕,联合存储库就充当单个单元,每个站点的开发人员都可以将其作为单个本地URL进行寻址。由于工件及其元数据被镜像到所有存储库,因此每个站点都可以以超本地速度运行,免受间歇性或断开连接的影响。

安全性仍然可以在每个站点进行管理,本地管理员通过JFrog平台的细粒度权限控制来管理个人或团队的存储库访问。

想了解更多?你可以申请免费试用JFrog平台(企业或企业+)为自己探索!