Service Fabric微服务的优势与Azure Cloud服务/ Web应用程序集合相比较是什么?

7
我有一个可以分解为多个相互通信服务的应用程序。我的当前实现是单块式的,我想重新组织它,以便可以部署、迭代和独立扩展各个组件。我看到在Azure中有两种方式可以实现:
  1. Service Fabric服务由一组通信微服务(无状态、Web API等)组成
  2. 一组单独的Azure Web应用程序/云服务,在http端点上相互调用。
是否有1优于2的明显优势?选择其中之一的经验法则也将非常有帮助。
2个回答

18

我认为这个页面对比得很好:https://learn.microsoft.com/zh-cn/azure/service-fabric/service-fabric-cloud-services-migration-differences/

我无法比这个更好地解释了。

实际上,并没有一条经验法则。Service Fabric 可能看起来更复杂,但它提供了一些 Cloud Services/Web Apps 所没有的东西。

以下是一个快速概述(摘自提供的链接):

Service Fabric 本身是一个运行在 Windows 或 Linux 上的应用程序平台层,而 Cloud Services 是一种用于部署带有工作负载的 Azure 管理的 VM 的系统。Service Fabric 应用程序模型具有许多优点:

  • 快速部署时间。创建 VM 实例可能需要耗费时间。在 Service Fabric 中,VM 仅在一次部署时形成用于托管 Service Fabric 应用程序平台的群集,从那时起,应用程序包可以非常快地部署到该群集中。
  • 高密度托管。在 Cloud Services 中,一个 Worker Role VM 仅托管一个工作负载。在 Service Fabric 中,应用程序与运行它们的 VM 分开,这意味着您可以将大量应用程序部署到少量 VM 中,这可以降低较大型部署的总体成本。
  • Service Fabric 平台可以在任何具有 Windows Server 或 Linux 机器的地方运行,无论是在 Azure 上还是在本地。该平台为潜在基础架构提供一个抽象层,以便您的应用程序可以在不同的环境中运行。
  • 分布式应用程序管理。Service Fabric 不仅可以托管分布式应用程序,而且还可以帮助独立于托管 VM 或机器生命周期管理它们的生命周期。

4

Peter已经做了很好的总结。以下是我的补充点:

  1. 云服务不适用于微服务模式,而Service Fabric适用。如果您想享受微服务带来的好处,Service Fabric是您最佳的选择。 使用云服务时,如果您想将应用程序分离成自治服务,您可以:

    • 创建多个云服务。但这很难监视和管理,因为没有一个统一的界面来管理一组云服务,云服务就不是为此模式而设计的。
    • 或者将多个角色添加到单个云服务中,这将导致a)您的云服务配置文件膨胀,因为所有服务配置都在单个配置文件中;b)升级单个角色会导致重新部署整个云服务!
  2. 云服务不支持跨区域/数据中心部署,而Service Fabric支持。这意味着您可以将数据中心级别的灾难恢复变成普通故障转移,由Service Fabric自动处理,详见此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接