【问题标题】:Where to store config parameters?在哪里存储配置参数?
【发布时间】:2018-02-28 18:36:10
【问题描述】:

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

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

【问题讨论】:

标签: 12factor


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我同意提供答案超出了 12 个因素的范围。这很可能是@blue-sky 在这里提出这个问题的原因,因为即使它超出了 12factors 的范围,对于实际项目来说仍然是一个需要回答的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2013-09-06
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多