PCF蓝/绿部署-如何根据用户的属性对用户进行细分/路由

问题描述

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

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

解决方法

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

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

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

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

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