首页 > 解决方案 > PCF(蓝/绿部署)- 如何根据用户属性对用户进行分段/路由

问题描述

我正在尝试为蓝/绿部署的 PCF 上的用户细分寻找解决方案。我想在 PCF 上部署两个版本的 Java 应用程序,比如一个蓝色版本和一个绿色版本。现在,我想将一组特定的用户路由到 GREEN,其余的路由到 BLUE。我需要知道是否有办法让网关(例如zuul)根据用户的属性路由用户。并非所有必需的用户属性都在请求的标头中——它们存储在数据库中。当请求到来时,用户 id 在请求中。但在将用户分段/路由到 BLUE/GREEN 之前,我需要从数据库中检索他们的一些信息。

任何评论/建议将不胜感激!谢谢

标签: cloudcloud-foundryblue-green-deployment

解决方案


CloudFoundry 中没有任何东西可以提供这种能力。您可以使用 CF 做的最好的事情是使用路由将流量推送到不同的地方,这是历史上使用蓝/绿部署所做的。

如果您需要更多自定义控制,就像您所描述的那样,您需要有一个额外的路由层来实现您的自定义路由要求。

既然您提到了 Java,我建议您查看Spring Cloud Gateway。这是一种非常灵活的流量路由方式。

您需要进行设置,以便您的所有流量都通过 CF 上的映射公共路由发送到您推送的 SCG 应用程序。然后,SCG 应用程序会将流量路由到您的实际应用程序,这可能发生在公共路由上,或者更好的是使用 CloudFoundry 容器网络和内部路由。通过这种方式,您可以强制所有流量通过您的网关,因为其他应用程序没有公共访问权限。

https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#internal-routes


推荐阅读