如何将testing服务器的更改推送到Live服务器?

作为一个初学者,我已经到了这个阶段,我意识到取消我的生产服务器来进行更改的问题经常发生,现在我已经有几个用户了。

我创build了一个EC2镜像,并在EC2上创build了一个独立的实例,现在我有两个EC2实例,Stage和Production。 我build立了GitHub,并且推动了变化,在那里testing我的代码,当它完成并工作的时候,我把它推到生产分支上,一切都很好。 这里有一个小问题,因为我命名我的文件config_stage.js和config_production.js并在每个服务器上设置.gitignore,在我的代码中,我会让它读取ENV标志并设置相应的configuration,这是正确的做法?

而我的主要问题是:如何跟踪服务器的非代码更改? 例如,我将HAProxy,Stunnel,Redis,MongoDB和其他一些东西安装到了Stage服务器上进行testing,现在它们都运行良好,我如何将它们部署到生产环境中? 现在,我只是跟踪我所安装的所有东西,并复制configuration文件,这非常乏味,恐怕我可能错过了某个步骤。

有没有更好的方法将这些改变从我的testing服务器移植到我的实时服务器?

您可以考虑使用结构来收集,自动化和logging您的部署例程。 它非常灵活,并为这些问题提供了一个非常好的解决scheme。