我正在将web应用程序部署到多个服务器上。我想将代码推送到这些服务器中的一个,这样它就可以更新,但不会影响其他已部署的服务器。web应用程序和服务器对每个客户端都是唯一的,所以如果我为一个客户端添加一个功能,我不想将其添加到所有其他已部署的服务器中。有时可能需要对所有活动服务器进行更新。
我希望自动化这个功能,这样我就可以推送一个服务器的代码,而不会影响其他服务器。我一直在考虑使用Docker、Ansible和Kubernetes来完成这项工作,但总体来说,我对部署还是相当陌生的,我想了解一下这类工作的最佳实践。
谢谢。
它现在被部署为独立的web服务器,其中推送到主分支会导致该服务器的自动部署。我想出的唯一解决方案是单独部署多个服务器。
发布于 2019-08-11 11:29:59
你的问题与Docker/Kubernetes没有严格的关系,但我会尝试回答。有两种方法可以做到这一点
1)为每个客户维护一个repo -其中有客户的定制,并从其他地方提取公共代码。可能是Git子模块或其他方式。这样,每个客户都可以拥有自己的生命周期。我不喜欢这种方法,因为客户之间的偏差往往会越来越大。此外,这就像维护客户数量一样多的代码库--这是不可伸缩的
2)我能想到的唯一方法是用一种对所有客户都是统一的方式来做这件事,那就是做feature flags。这必须在开发期间进行,而不是纯粹的操作练习。这很难开始,但从长远来看,我认为这是唯一可以扩展的方法。然后,可以通过配置关闭一个客户的特定功能。也有一些像LaunchDarkly这样的公司实现了这一点
https://stackoverflow.com/questions/57444764
复制相似问题