部署
我目前在一家通过github部署的公司工作。但是,我们必须登录到所有3台服务器,才能使用shell脚本手动更新它们。在与首席技术官谈话时,他非常清楚地表明,自动部署对他来说就像伏都教。这是可以理解的我们有来自4个不同国家的开发人员远程工作。如果有人不小心推到错误的分支,我们可以体验停机时间,我们的服务不能超过10分钟。和我们所有的开发人员在不同的时区,我们的CTO不会知道,直到第二天早上,我们会遇到困难的开发人员,谁有问题,因为巨大的时间差异。
我的问题是:为什么我要自动部署
在我的个人项目工作时,我决定使用自动部署可能是我最感兴趣的,但我的项目仍然是关键任务,我希望尽可能减少停机时间和人为错误。手动部署的问题是,我无法在合理的时间内通过SSH在多达20台服务器上手动部署。当我考虑自动缩放的时候,这个问题就会持续存在。我需要从映像中派生出一个新服务器并部署到它上。
我的书库
我的服务是在Node.js快捷框架上开发的。这些环境在部署和引导实用程序方面非常丰富。我的项目使用npm的package.json在部署时uglify脚本,并使用forever-monitor作为守护进程运行我的服务。我还考虑使用grunt.js来为生产和测试环境进一步引导我的环境。
部署方法
到目前为止我已经考虑过:
我对像Docker这样的技术不太熟悉,但我很感兴趣,而且我肯定会给出谁给了我一个很好的描述,为什么我应该或不应该使用Docker,因为我对它的使用非常感兴趣。其他方法是受欢迎的。
我的问题:为什么我害怕自动部署
在关键的任务环境中,停机可能会使您的业务暂停,更糟糕的是,有一群终端用户按下刷新按钮。如果有人推动一些不是构建的东西传递到生产部门,并且是自动部署的,那么我将看到一个非常混乱的情况。
我喜欢自动部署的优雅,但风险让我怀疑。我非常赞成尽可能地提高自己的生产力。因此,我正在寻找一种方法,以非常有效的方式,轻松地部署到许多服务器。
我要找的答案
向我解释如何减少自动部署的风险,或向我解释一个更适合我的项目的替代方案。请随时询问评论中缺少的细节。
发布于 2014-03-28 00:59:19
这里没有简单的答案。我提供了一组幻灯片,由Etsy公司的迈克·布里坦发布,该公司实行持续部署:
http://www.slideshare.net/mikebrittain/mbrittain-continuous-deploymentalm3public
精选重点:
希望这能有所帮助
https://stackoverflow.com/questions/22700147
复制相似问题