无需持续部署即可将代码部署到负载均衡器下的多个生产服务器

时间:2019-12-02 10:24:39

标签: deployment server digital-ocean

我是公司中唯一的(全栈)开发人员,除了到目前为止自动化部署之外,我还有很多工作要做。将来,我们可能会雇用同样的DevOps员工。

问题:我们在Load Balancer下有3台服务器。我不想在第二台和第三台服务器更新之前阻塞第二台和第三台服务器,并在第二台和第三台服务器上重复同样的操作,因为一台服务器最初可能会有大量流量,并且可能在其他服务器投入使用之前的某个特定时间失败。 >

                                        Server 1


    User's ----> Load Balancer ---->    Server 2  -----> Database


                                        Server 3       

个人意见 :有没有一种方法可以通过在负载均衡器中编写任何脚本来提取代码。我可以用Nginx Server代替传统的Digital Ocean负载均衡器,使其成为反向代理。

  

注意:我知道Stack中还有很多其他问题   溢出相同,但没有一个可以解决我的查询。

我知道的解决方案

  1. GIT Hooks -我对GIT Hooks有所了解,但不想使用它,因为如果我错误地承诺使用master分支,那么它一定不能与我的产品同步并创建破坏实时服务器和实时用户。

  2. 打开服务器的多个选项卡,然后手动进行(当前方案)。相信我在屁股上的痛苦:)

任何建议或重定向到解决方案都将对我有帮助。预先感谢。

1 个答案:

答案 0 :(得分:0)

解决方案之一是为此编写一个有趣的剧本。使用Ansible,您可以指定一次在每个主机上运行它,并且作为最后一步,您可以包括验证检查,以检查您的应用程序是否以响应代码200响应,或者可以查询某些指示应用程序状态的端点。如果检查失败,Ansible将停止执行。例如,在您的情况下,Server1部署良好,但在server2上失败。该剧本将停止,您将运行服务器1和3。

我自己做了。在没有连续部署的环境中运行良好。 Here is one example