为标题措辞道歉;我敢肯定它可以更清楚。
在十二因素应用程序方法中,我们鼓励使用环境变量来存储 Web 应用程序配置。在使用 Heroku 等托管平台时,此配置作为平台的一项功能安全地保存,自动提供给每个部署,并且易于开发人员检查。假定此功能是稳定的,据我所知,不需要在其他地方维护生产配置的单独副本。
当使用更简单的非托管部署过程时,例如git push
- 将非容器化代码添加到 VPS,环境变量仍然可以使用(例如,非源代码控制.env
文件),但它们现在实际上是短暂的,并且如果 VPS 通过一些错误或事件,项目可以在其他地方重新部署,但配置变量将需要从某些东西重建。
我的问题是,在这种情况下,围绕“某事”应该是什么被认为是最佳实践?加入新项目时,我通常cp .env.example .env
可以设置典型的本地配置。示例文件中的值通常可以安全地保存在源代码管理中。但是,我不知道应该在哪里(如果在任何地方)保存生产配置,以便可以配置上述类型的新生产部署。在 Heroku 示例中,始终可以检查配置。但在 VPS 示例中,如果正在运行的 VPS 是完整生产配置存在的唯一位置,那么它的意外消失会带来问题。
显然,配置中的任何凭据都可以重新生成,但这很快就会变成一个不平凡的练习。我想知道更有经验的人如何处理这个问题。谢谢!