Azure 应用服务与 Azure 服务结构

Azure App Service vs Azure Service Fabric

任何人都可以指导我解释什么时候应该创建 Azure Service Fabric 应用程序和 Azure App Service 应用程序吗?我有一个要构建的应用程序,但无法确定是应该使用 Azure Service Fabric 还是 Azure App Service 来构建它。

遗憾的是,没有关于何时使用什么的任何官方指南。它们是两个独立的平台,遵循不同的开发范例。

应用服务将为您提供 Service Fabric 未提供的现成功能。诸如自动缩放、身份验证、速率限制、与 SaaS 应用程序集成等之类的东西。这些东西中的一部分或全部可能会逐渐出现在 Service Fabric 中,但我要说的是,目前它们针对的是不同的受众——a经验不足的团队可能会发现使用应用服务更容易。

另一方面,Service Fabric 使部件的组合更加容易。例如,在 "traditional" 方法中,如果您有一个与数据存储和缓存对话以避免破坏数据存储的 API,则您必须处理各种容错场景。使用 Service Fabric,您的缓存可以位于可靠集合中的 API 进程中,您不必处理外部缓存组件的问题。数据与服务位于同一位置(更快 retrieve/edit!)并且可靠,因为它分布在服务部署到的所有节点上。与队列类似的事情。如果你想到一个工作流类型系统,其中有一个 API、一个作业服务和一个位于它们之间并允许它们进行通信的队列,你必须管理 3 个不同的组件以及它们之间的通信.使用 Service Fabric,队列进入应用程序。这只是其中的一半 :) 您还可以使用角色模型进行分布式计算,而不会遇到常见的并发问题。最后,借助 Service Fabric,您可以获得在本地机器上拥有更完整的开发环境的好处 - 您不必在 Azure 开发帐户或类似的任何东西上处理创建队列等问题。

还值得注意的是,没有什么可以阻止您使用这两种范例 - 想象两个应用程序,其中至少一个是服务结构应用程序,公开 APIs 和一个位于其之上的逻辑应用程序那些。

您的决定应基于您要构建的内容、构建的时间、发布时间(Service Fabric 目前仅处于私人预览阶段,因此他们需要一段时间才能正式发布) 以及您拥有什么样的团队。我想即使您没有经验丰富的团队,使用 App Service 也很容易上手 运行,但 Service Fabric 将为您提供更多的功能、灵活性和控制力。

Microsoft 已创建 document with a comparison for Azure App Service, Virtual Machines, Service Fabric, and Cloud Services. Also, you might find helpful this decision 树。

应用服务是一种托管服务,SF 是您自己管理的服务,您也可以 运行 在自己的场所。 SF 更好地支持非 MS 堆栈开发,例如本机应用程序等。

正如该文档所述 "Service Fabric is a good choice if you’re creating a new app or re-writing an existing app to use a microservice architecture. "

如果您托管了一些应用程序,则不应查看 SF,另一方面,如果您部署的服务超过 10 个,则它会成为更好的解决方案。

另请注意,SF 具有包含在服务中的数据存储机制。它擅长三件事 1)海量数据集群 2) 简单数据,通常在 Micros 服务中 数据库成为一个沉重的负担,因为每个服务都应该有自己的数据,而当你只有 1-3 个表时,像 SQL 这样的东西有点矫枉过正。 3) Actor 编程模型的状态存储。

我认为 SF 和 Web 应用程序将在未来分割 "Cloud Service" 用户群。

当您需要更好地控制或直接访问底层基础结构时,请使用 Service Fabric。

当您需要为 Web 应用程序提供完全托管的托管平台时,请使用应用程序服务。

-根据文档

如果(App将来可能需要扩展||想用微服务架构构建App) 选择 Azure Service Fabric

其他 Azure 应用服务正常