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

应用程序是由一个小团队的开发人员在一个房间里创建的时代已经过去了。企业软件开发现在是由遍布全球的多个站点的交叉团队共享的包的高度协作的努力。

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

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

联合存储库拓扑

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

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

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

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

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

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

使用联合存储库的双向镜像

多站点同步

容易管理

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

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

在Artifactory中配置联合存储库

管理员查看

面向企业的可扩展性

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

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

安全的信任圈

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

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

如何配置联合存储库

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

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

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

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

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

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

明星拓扑

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

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

星型拓扑中的联合存储库

在这个例子中:

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

奥兰多

X X

沃尔瑟姆

X

X

圣克拉拉

X

X

AWS

可以看到,这种拓扑结构有很大的局限性。例如,在奥兰多创建的工件对Waltham的本地开发人员来说是不可用的(尽管所有站点都可以通过AWS上的云实例访问所有工件)。

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

全网格拓扑

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

为了实现这一点,平台管理员必须注意在他们的联合连接中保持完整。

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

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

虽然这个拓扑图似乎通过这个循环的连接集创建了一个完整的网状网络,但事实并非如此。工件和元数据的双向镜像只发生在存储库之间直接在联邦中连接。

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

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

X

沃尔瑟姆

X

圣克拉拉

X

AWS

X

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

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

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

沃尔瑟姆

圣克拉拉

AWS

由众到一

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

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

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

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