在GCP上使用人工进行开发的技巧和最佳实践

在基于云的服务上托管基础设施正在成为科技行业的一种标准。这并不奇怪,因为提高效率的多方面解决方案是迁移到云的驱动优势。更具体地说,使云解决方案处于优势的一些原因包括灵活性、成本和更容易维护,允许团队分配更多的时间用于应用程序开发。
JFrog Artifactory可以安装在所有主要的云提供商上包括谷歌云平台(GCP)。这篇博文概述了在GCP上进行开发时设置JFrog Artifactory的一些最佳实践,无论是独立的还是在高可用性(HA)配置中。在以后的文章中,我将详细介绍在GCP上使用Artifactory所需的修改,以便为生产系统添加安全性和健壮性层。
体系结构
GCP上的人工体系结构由三个主要组件组成:网络、应用程序和存储。

网络
推荐的设置包括四个部分:
- VPC(虚拟私有云)
- 防火墙规则
- vm(虚拟机)
- 一个路由
VPC
VPC是实例的核心容器,需要在一个区域内创建。区域中的子网和vpc组将根据您是作为独立安装运行Artifactory还是作为高可用性多节点集群运行Artifactory而有所不同。
| 设置 | 建议 |
| 独立的 | 独立安装需要Artifactory实例的子网。如果您的独立实例托管的工件数量超过500,000个,我们还强烈建议使用没有外部IP地址的外部数据库,在这种情况下,您将需要第二个子网来确保只有应用程序可以访问数据库。 |
| 哈 | HA安装需要三个或三个以上子网。一个用于数据库,它不应该有任何外部IP地址。第二个子网应该包含主节点,任何其他子网将承载辅助节点。 |
防火墙规则
防火墙规则是在网络级别创建和应用的,用于管理进出虚拟机的流量。我们建议在以下用例中设置防火墙规则:
| 设置 | 建议 |
| 外部数据库 | 如果您在私有子网内使用外部数据库,则应该有一个防火墙规则允许SSH访问该子网。 |
| 外部IP /主机名 | 如果您希望通过外部IP/主机名访问实例,而不是使用“localhost”,则需要另一个防火墙规则。 |
中介绍了如何创建防火墙规则GCP的文档.
虚拟机
虚拟机将用作VPN网关。虚拟机的类型和数量也取决于您的人工设置。
| 设置 | 建议 |
| 独立,没有外部DB | 一个独立的Artifactory实例需要一个VM。 |
| 独立使用外部DB | 一个独立的Artifactory实例需要一个VM,它还可能包括NAT网关。NAT网关也可能在一个单独的节点上,这将需要另一个VM。在任何一种情况下,网关都必须有一个外部IP。 |
| 哈 | HA安装需要为每个节点使用单独的虚拟机。主节点1台虚拟机,备节点每增加1个子网,添加1台虚拟机。此外,由于HA需要外部数据库,因此将NAT网关放在单独的节点上将需要额外的VM。 |
网络路由(年代)
网络路由引导流量通过两个子网,以便Artifactory实例和数据库相互通信。
应用程序
该应用程序由三个部分组成:
- Artifactory实例
- 反向代理
- 谷歌云负载平衡器
Artifactory实例(年代)
根据您正在运行的平台,在GCP上安装Artifactory有多种选择,包括独立安装和HA集群。对于独立安装,请参考安装Artifactory对于HA集群,请参考HA安装和设置在JFrog Artifactory用户指南中。如果你想利用这些特性容器注册平台可以提供自动重启和自动缩放,你可以查看我们的码头工人安装或者我们的舵图安装Kubernetes。有关CPU、内存和磁盘空间使用等详细要求,请参见系统需求在JFrog Artifactory用户指南中。
反向代理
选择使用反向代理可能有不同的原因。您还应该注意,如果使用Artifactory作为服务器,则必须使用反向代理码头工人注册表.
谷歌云负载平衡器
负载平衡器有效地将所有进入Artifactory实例的请求分发给这些实例。的谷歌云负载平衡器推荐作为GCP内部实例中最兼容的负载平衡器。最终用户将通过该组件访问Artifactory实例。
存储
Artifactory架构在GCP上的存储组件包括:
- 云存储
- 外部数据库
存储由数据(二进制文件)和元数据组成。二进制文件存储在云存储中,而元数据在数据库中管理。
| 存储管理器 | 建议 |
| 云存储 | 显然,如果您使用的是GCP,我们建议您使用Google Cloud Storage (GCS)来托管二进制文件。要配置Artifactory使用GCS,请参考谷歌云存储在JFrog Artifactory用户指南中 |
| 数据库 | Artifactory附带了一个内置的嵌入式Derby数据库,但是您可以将此默认值更改为许多其他流行的数据库(这是HA安装所必需的)。有关如何选择数据库的指导方针以及如何配置Artifactory以使用每个受支持的数据库的详细信息,请参阅配置数据库在JFrog Artifactory用户指南中 |
最终的清单
| 实例类型 | 独立,没有外部DB | 独立使用外部DB | 哈 |
网络 |
|||
| VPC | 1 | 1 | 1 |
| 子网 | 1 | 2 | 3+ |
| 防火墙规则 | 1 *如果你想要一个外部IP/主机名 |
1 + *一个用于外部数据库,外部IP/主机名(可选) |
1 + *一个用于外部数据库,外部IP/主机名(可选) |
| 虚拟机 | 1 | 2+ | 3+ |
| 路线 | - - - - - - | 1 | 1 |
应用程序 |
|||
| Artifactory实例 | 1 | 1 | 2+ |
| 谷歌云负载平衡器 | - - - - - - | - - - - - - | 1 |
存储 |
|||
| 云存储 | 1 | 1 | 1 |
| 数据库 | - - - - - - | 1 | 1 |
不想这么麻烦?
如果您不想担心所有这些配置,JFrog Artifactory可以作为云原生托管服务在GCP(和其他主要云提供商)上使用。可以选择在多租户配置或完全专用服务器上进行订阅。你可以找到网站详情,甚至可以弄湿你的脚免费试用.