8

阅读 12 因素应用程序的配置部分:https ://12factor.net/config它指出“另一种配置方法是使用未检入修订控制的配置文件”。而是“十二因素应用程序将配置存储在环境变量中”如果不将配置存储在源代码/修订控制中,那么环境变量的配置应该存储在哪里?

例如,一位新开发人员加入了一个团队,该开发人员如何访问环境变量以运行应用程序?是否假设提供的环境包含允许应用程序运行的变量?

4

2 回答 2

1

“使用未检入修订控制的配置文件”的建议可能有点误导。您可以将其理解为“未与应用程序一起修订的配置文件”。

这意味着您可以将应用程序的修订版 X 与配置的修订版 Y 和修订版 Z 一起使用(甚至可能是未修订的配置),并且可以将应用程序的修订版 X1 和 X2 与配置的修订版 Y 一起使用。

解决了某些应用程序已内置配置的问题,例如,您需要不同的版本来进行登台和生产。

如何存储配置是一个没有详细说明的细节。您可以在 Kubernetes 上使用 ConfigMaps(可以作为环境变量使用),将配置存储在数据库中(即 etcd),使用 Hashicorp Vault 和 Consul 或将它们存储在 git 中(即 GitOps)。

通常,您的配置中会有静态部分(即税率)和动态部分(即外部服务的名称或 IP 地址)。您不必将所有内容存储在一个地方,并且在与您的应用程序相同的 git 服务器上定义一些内容是完全可以的。您的应用程序是访问 git 服务器上的配置还是通过其他机制将其注入取决于您的部署方法。

于 2021-12-20T10:51:49.667 回答
-4

将这些存储在哪里超出了 12 个因素的范围,重要的是要将源存储库与部署特定数据分离。

于 2017-11-25T08:27:12.503 回答