Deployment 在负载平衡器下将代码部署到多个生产服务器,而无需连续部署

Deployment 在负载平衡器下将代码部署到多个生产服务器,而无需连续部署,deployment,server,digital-ocean,Deployment,Server,Digital Ocean,我是我公司唯一的开发人员(全堆栈),目前除了自动化部署之外,我还有很多工作要做。将来,我们可能会雇佣一个DevOps的人来做同样的工作 问题:负载均衡器下有3台服务器。我不想在第一台服务器更新之前阻止第二台和第三台服务器,并在第二台和第三台服务器上重复相同的操作,因为一台服务器最初可能会有巨大的流量,并且可能在其他服务器上线之前的某个特定时间出现故障 Server 1 User's ----> Lo

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

问题:负载均衡器下有3台服务器。我不想在第一台服务器更新之前阻止第二台和第三台服务器,并在第二台和第三台服务器上重复相同的操作,因为一台服务器最初可能会有巨大的流量,并且可能在其他服务器上线之前的某个特定时间出现故障

                                        Server 1


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


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

注意:我知道在堆栈中还有很多其他问题 溢出在同一个上,但没有一个解决我的查询

我知道的解决方案
  • GIT Hooks-我对GIT Hooks有些了解,但不想使用它,因为如果我错误地提交给master branch,那么它就不能与我的生产同步,并在实时服务器和实时用户中造成严重破坏

  • 打开服务器的多个选项卡并手动执行(当前场景)。相信我,它的屁股痛:)


  • 任何关于解决方案的建议或重定向都会对我很有帮助。提前感谢。

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

    我自己做的。在没有连续部署的环境中工作良好。

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

    我自己做的。在没有连续部署的环境中工作良好。