【问题标题】:CloudFoundry user-provided services vs environment variablesCloudFoundry 用户提供的服务与环境变量
【发布时间】:2018-10-24 03:22:29
【问题描述】:

全部,

我正在寻找一种方法来指定特定于环境的配置值。我很难理解何时使用用户提供的服务与环境变量。看来我可以完成我需要的任何一种方式。

一些比较点...

用户提供的服务:

  • 作用于空间
  • 由同一空间中的应用共享
  • 应用必须显式绑定到它
  • 对相关属性进行逻辑分组(例如 URL、用户名、密码)

环境变量:

  • 特定于应用程序

我的具体用例涉及连接到 MQ。在 CloudFoundry 之外,我将拥有带有主机名、队列名称等的特定于 env 的配置文件。我认为 CF 环境变量是一个近似的模拟,但我认为数据库也是如此,但我看到了很多使用用户的示例- 为数据库提供服务。

谢谢

【问题讨论】:

    标签: cloud-foundry


    【解决方案1】:

    您阐述的用例非常适合 Spring Cloud Config。

    环境特定设置将在配置存储库中外部化。

    这是一篇很好的文章,解释了如何利用给定环境/配置文件的外部属性 - https://www.baeldung.com/spring-cloud-configuration

    那么您的下一个问题是,您不想将凭据放入 git 存储库中。那是对的。

    为了避免像这样损害信誉,Spring Cloud Config 允许与 Vault 集成。 Vault 是来自 HashiCorp 的加密凭证存储。您必须安装并设置它。

    查看 DZone 的这篇文章,了解如何将 Vault 与您的 SC Config 集成 - https://dzone.com/articles/integrating-vault-with-spring-cloud-config-server

    关于用户提供的服务的问题,您可以使用 CUPS,但更好的方法是使用服务代理。 AWS、GCP 和 Azure 提供自己的 Service Broker 磁贴,运维团队可以将其安装在 PCF 上。有了它,您可以以安全的方式访问 AWS / GCP / Azure 提供的任何资源。

    您始终可以编写自己的服务代理 - https://pivotal.io/open-service-broker

    【讨论】:

      【解决方案2】:

      如果您希望存储凭据,我建议您使用 Cloud Foundry 的 Credhub 或 Hashicorp 的 Vault 等服务。

      我相信更简化的方式是 Credhub,因为它的设计考虑了 CF。它有一个服务代理,使应用程序能够获取凭据。

      【讨论】:

        【解决方案3】:

        本质上,用户提供的服务和环境变量是完全一样的。用户提供的服务只是与 Cloud Foundry 一起使用并为您的数据提供一些结构的不同抽象。最终,所有内容都作为环境变量呈现给您的应用程序。

        对我来说,最大的问题是如何在我的应用中使用这些信息。如果我使用的应用程序框架可以轻松地从环境变量中提取配置,那么我将使用环境变量。我为我的 Python/Flask 应用程序这样做,我听说它也适用于 Ruby on Rails(尽管我不是 Rails 用户)。

        我通常会使用用户为 Java/Spring 应用程序提供的服务,因为它们更容易与 Spring Cloud Connector 一起使用。不过这有点折腾,因为 Spring Boot 也可以很容易地使用环境变量中的值。

        我发现环境变量也更容易使用。在 CF 中,没有 cli 命令可以查看用户提供的服务。您必须将服务绑定到某个东西,然后查看cf env,这很尴尬。

        无论如何,不​​要太强调它。选择对您的应用更容易的方法。


        仅供参考,@poy 的解决方案也不错。但这需要更多的工作,所以你必须决定你的项目是否真的需要它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-20
          • 2014-08-17
          • 1970-01-01
          • 1970-01-01
          • 2015-04-17
          相关资源
          最近更新 更多