对于过去的几个项目,我使用 BitBucket 私有存储库来为不同项目保持生产就绪配置。该存储库中的每个项目都有自己的分支,以使敏感和私人信息远离公众视线。
有些项目是开源的,同时存在于真实的生产环境中;当需要使用诸如等工具进行部署时chef
。fabric
我只是检查有关项目的必要分支并将配置上传到生产服务器。
当您必须管理生产配置并同时保持项目开源时,我很好奇您如何管理开源项目的配置?
对于过去的几个项目,我使用 BitBucket 私有存储库来为不同项目保持生产就绪配置。该存储库中的每个项目都有自己的分支,以使敏感和私人信息远离公众视线。
有些项目是开源的,同时存在于真实的生产环境中;当需要使用诸如等工具进行部署时chef
。fabric
我只是检查有关项目的必要分支并将配置上传到生产服务器。
当您必须管理生产配置并同时保持项目开源时,我很好奇您如何管理开源项目的配置?
简短的回答:应用程序存储库不应包含任何特定于部署的配置。
虽然不是应用程序代码的配置文件确实经常进入项目存储库以方便使用,但这通常是 a) 糟糕的安全实践(因此您不愿意开源它)和 b) 违反关注点分离。
相反,您应该为所有应用程序部署和脚本创建一个单独的存储库。部署存储库中的文件将引用您的应用程序存储库。按照这种模式,应用程序存储库包含“什么”,部署存储库包含“如何”——这通常会因部署而异。
此规则的例外情况包括在您的所有部署中永远不会更改的脚本或配置(例如,一个Procfile
或一个守护程序脚本),因此应该保留在您的应用程序存储库中。