Azure中的分布式应用程序服务-API管理,服务结构,ASE,应用程序网关?

时间:2018-08-11 13:22:54

标签: azure azure-service-fabric azure-api-management azure-app-service-envrmnt azure-application-gateway

我计划有多个Azure App Service API应用程序,其中一些应该可以通过一个根URL公开访问(两个客户端应用程序),这些应用程序将连接到不是的内部服务公开可用。

enter image description here

我已经研究了Azure上的各种选项,包括:

Azure API Management

Azure Application Gateway

Azure Service Fabric Mesh

Azure App Service Environments

Ocelot

Azure Function Proxies

我似乎无法找到能够明显满足我的要求的解决方案(我发现它确实令人困惑):

  1. 外部客户端的单个URL根
  2. 内部服务之间的连通性(REST)
  3. 基于无服务器架构
  4. 支持App Service API应用程序和潜在的Azure功能
  5. 安全
  6. 可扩展

任何帮助或建议都非常感谢!

谢谢

2 个答案:

答案 0 :(得分:1)

您的问题过于笼统,很难涵盖所有这些问题。 我将加2美分并指导以下信息,以向您详细说明正确的问题:

我可以看到您面临的3个主要挑战:

  • 应用平台
  • 负载平衡和访问管理
  • 服务到服务的沟通

您无法做出涵盖所有这些主题的单一决定,因为对一个主题的决定会影响其他主题:

首先,我建议您确定哪个应用程序平台将更好地适合您的服务,在功能,AppService,Service Fabric Mesh之间做出决定是一项艰难的决定,而这里的一个答案不足以提供正确的信息。

在您的选择中,您缺少容器,这是Service Fabric Mesh的基础,如果选择了容器,则还必须增加许多其他平台的列表。

您的决定将很艰难:

  • 功能
  • AppService API
  • 服务结构网格
  • Azure容器实例
  • 用于容器的Web应用程序
  • Kubernetes(AKS)

可扩展性是相对于每个应用程序而言的,一个解决方案可能在一个平台上可扩展,而其他解决方案则不能,您必须针对每个应用程序评估您的应用程序设计。

一旦选择了正确的平台,下一步便是服务到服务的通信,每个平台都有一种比其他平台更有效的方法。

一旦找到了这两个答案,就可以决定选择哪个Proxy \ Gateway来处理负载平衡和访问管理,并且根据上面的选择,Azure API Management或Azure Application Gateway可能不是一个好选择。选项,但您还有其他选择。

答案 1 :(得分:1)

Azure API管理是一项很棒的选择,可用于从一项服务的多个后端聚合和管理您的API。您可以观看this recording来更好地理解它。

它支持从Azure Function应用程序导入,并且可以与Service Fabric一起使用。您可以使用auth或use a virtual network setup保护您的后端服务,以将其从Internet隐藏起来。