负载均衡器背后的Git部署

时间:2016-11-17 21:19:36

标签: git google-compute-engine

我正试图在一个充满挑战的环境中实施有效的部署策略。我们有几个(Google Compute Engine)HTTP服务器实例,它们位于具有单个公共IP地址的负载均衡器后面。 Web服务器没有公共IP地址,因此在此设置中执行接收挂钩几乎与我所知道的不同。

在我们即将迁移的环境中,我们做了不那么推荐的git pull master部署,并希望尽可能远离该工作流程。但截至目前,我还没有看到一个非常好的选择。

有没有人处理过这种部署挑战,哪种解决方案有效?

1 个答案:

答案 0 :(得分:2)

这个问题有很多可能的解决方案,但这里有几个:

使用API​​

部署到所有服务器

一种选择是一次将命令或代码集部署到所有服务器。要做到这一点,您首先需要使用CLI调用来查找Web服务器的所有IP地址,然后通过堡垒主机(SSH)连接到它们(SSH),然后在所有服务器上执行相同的命令马上。

为了达到这个目的,你可能需要编写一个脚本来将步骤放在一起作为一个执行。

不可变地部署

这是"现代"方法,您需要服务器(在负载均衡器之外),将代码部署到它并确保它准备就绪,然后获取它的快照/图像并将该图像推送到负载均衡器 - 替换当前服务器

这种方法更安全",因为你不依赖于git pull命令在连接方面工作等等。你知道它&#39 ; s将包含您在图像中烘焙的内容。

要实现此类功能,您可以使用Packer等工具从现有映像(可以从当前实例中创建)中配置服务器,和/或各种自动化工具,如Chef,Puppet, TerraForm等将新配置的实例部署到负载均衡器。