我不知道这是否是一个就基础设施架构提出问题的正确论坛。但希望如此发布这个问题:
我的一个客户有一个web应用程序,它是用最新的微服务技术开发的。库伯奈特是底层。最重要的是,他们正在使用CDN、API托管等等。现在,从公共云(azure或AWS)的角度来看,我怎么才能在这里创建下面的架构呢?关于他们使用的服务,我有几个问题。为了简单起见,我将从Azure POV中进行讨论。决定使用Azure中的以下组件:
Azure CDN,Azure应用网关,Azure FrontDoor。
我对这些服务的呼叫流程感到困惑。从客户端(如web浏览器),当有对应用程序的请求时,理想情况下,静态内容需要由Azure CDN和其他动态内容通过检查容器或服务器来响应。因此,这就是我对调用流的假设:
浏览器-> Azure前门->应用网关-> API管理微服务->其他微服务-> Azure CDN ->浏览器
这是正确的吗?如果没有,你能引导我理解更好的架构吗?任何帮助都会很感激的。
发布于 2020-02-03 11:19:39
好的,首先,您有几个不同的服务在那里做同样的事情,所以您想要评估是否需要它们。
无论你选择前门还是CDN,他们都想站在你的前排。理想情况下,您希望通信量到达FD/CDN,得到缓存的响应,这是请求的结束。
如果您不能从Cache服务,那么现在您需要将您的流量输入到Kubernetes,所以您的堆栈资源的前端(CDN或前门)现在将转发到向外部世界公开您的Kubernetes集群。这可能是App,如果您决定需要它,外部负载均衡器,或Azure API管理器,如果您使用它来公开API的。
前门是一项不附加vNet的全球服务。您的Kubernetes集群是vNet附加的,因此您需要一种将您的Kubernetes资源公开给前门的方法。这可以通过App来完成,但是它会增加额外的开销,您也可以用一个Azure负载均衡器设置你的Kubernetes入口和一个公共IP,然后进行前门对话。
如果您摆脱了App,那么您将需要运行在集群中的另一个入口控制器,如NGinx、Traefik等。或者,您可以保留App,但是我会使用CDN而不是前门。
前门和CDN使用相同的端点,因此提供相同的缓存。
https://serverfault.com/questions/1001535
复制相似问题