AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1001535
Accepted
serverstackqns
serverstackqns
Asked: 2020-02-04 02:53:43 +0800 CST2020-02-04 02:53:43 +0800 CST 2020-02-04 02:53:43 +0800 CST

微服务应用程序架构

  • 772

我不确定这是否是就基础架构架构提出问题的正确论坛。但是希望如此发布问题:

我的一位客户有一个使用最新微服务技术开发的 Web 应用程序。Kubernetes 是底层。最重要的是,他们正在使用 CDN、API 托管等。现在,从公共云(azure 或 AWS)的角度来看,我如何在这里构建基础设施?关于他们使用的服务,我有几个问题。为简单起见,我将从 Azure POV 开始讨论。决定使用 Azure 中的以下组件:

Azure CDN、Azure 应用程序网关、Azure FrontDoor。

我对这些服务的呼叫流程感到困惑。从客户端(如 Web 浏览器),当有对应用程序的请求时,理想情况下,静态内容需要由 Azure CDN 响应,而其他动态内容需要通过检查容器或服务器来响应。所以,这就是我对呼叫流程的假设:

浏览器 -> Azure 前门 -> 应用程序网关 -> API 管理微服务 -> 其他微服务 -> Azure CDN -> 浏览器

这个对吗?如果没有,您能否指导我了解更好的架构。任何帮助将不胜感激。

infrastructure architecture docker kubernetes azure
  • 1 1 个回答
  • 187 Views

1 个回答

  • Voted
  1. Best Answer
    Sam Cogan
    2020-02-04T03:19:39+08:002020-02-04T03:19:39+08:00

    好的,首先你有几个不同的服务在那里做同样的事情,所以你想评估你是否需要它们。

    • Azure CDN 和 Front Door 都提供相同的本地存在点和缓存,因此您真的只需要一个或另一个
    • Azure Front Door 和 App Gateway 都提供第 7 层负载平衡和 Web 应用程序防火墙,因此您可能不需要两者。App GW 确实具有一些额外的功能,例如 vNet 附件和 K8s Ingress,因此两者可能存在争议

    无论您选择 Front Door 还是 CDN,他们都希望在您的堆栈中处于领先地位。理想情况下,您希望流量到达 FD/CDN,获得缓存响应,然后请求结束。

    如果您不能从缓存中提供服务,那么现在您需要将您的流量导入 Kubernetes,因此您的前端资源(CDN 或 Front Door)现在将转发到您将 Kubernetes 集群暴露给外部世界的情况。如果您决定需要它,这可能是应用程序网关、外部负载均衡器或 Azure API 管理器(如果您使用它来公开 API)。

    Front Door 是一项未附加 vNet 的全局服务。您的 Kubernetes 集群是附加的 vNet,因此您需要一种将 Kubernetes 资源公开给 Front Door 的方法。这可以通过 App GW 完成,但会增加额外费用,您也可以使用具有公共 IP 的 Azure 负载均衡器设置 Kubernetes 入口,然后与前门对话。

    如果您摆脱 App GW,那么您将需要在集群中运行另一个入口控制器,例如 NGinx、Traefik 等。或者您可以保留 App GW,但我会使用 CDN 而不是 Front Door。

    Front Door 和 CDN 使用相同的端点,因此提供相同的缓存。

    • 2

相关问题

  • 生产机器的活动目录或工作组

  • 网口安装支架/盒

  • 办公室布线指南

  • 要更改哪些默认 Windows 设置以优化性能?

  • 区分生产环境和其他环境的良好做法是什么?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve