谁能指导我了解何时应该创建 Azure Service Fabric 应用程序与 Azure App Service 应用程序?我有一个想要构建的应用程序,但无法确定是应该使用 Azure Service Fabric 还是 Azure App Service 来构建它。
5 回答
不幸的是,没有关于何时使用什么的官方指导。它们是两个独立的平台,遵循不同的开发范式。
应用服务将为您提供 Service Fabric 未提供的现成功能。诸如自动缩放、身份验证、速率限制、与 SaaS 应用程序集成等内容。其中一些或所有这些东西可能会逐渐出现在 Service Fabric 中,但我想说的是,目前它们针对的是不同的受众——a经验不足的团队可能会发现使用应用服务更容易。
另一方面,Service Fabric 使部件的组合更容易。例如,在“传统”方法中,如果您有一个与数据存储和缓存对话的 API 以避免破坏数据存储,则您必须处理各种容错场景。使用 Service Fabric,您的缓存可以位于 API 进程中的可靠集合中,您无需处理外部缓存组件。数据与服务位于同一位置(检索/编辑速度更快!)并且是可靠的,因为它分布在服务部署到的所有节点上。与队列类似的事情。如果您想到一个工作流类型的系统,其中有一个 API、一个作业服务和一个位于它们之间并允许它们通信的队列,那么您必须管理 3 个不同的组件以及它们之间的通信。使用 Service Fabric,队列进入应用程序。这只是其中的一半 :) 您还可以使用 Actor 模型进行分布式计算,而不会遇到通常的并发问题。最后,使用 Service Fabric,您可以获得在本地机器上拥有更完整的开发环境的好处 - 您不必处理在 Azure 开发帐户或类似的任何东西上创建队列等。
还值得注意的是,没有什么能阻止您使用这两种范式 - 想象两个应用程序,其中至少一个是服务结构应用程序,它公开 API 和位于其之上的逻辑应用程序。
您的决定应基于您要构建的内容、时间、要发布的时间(Service Fabric 目前仅提供私人预览版,因此需要一段时间才能发布 GA)以及什么样的版本你拥有的团队。我想,即使您没有经验丰富的团队,使用 App Service 也可以轻松上手,但 Service Fabric 将为您提供更多功能、灵活性和控制力。
Microsoft 创建了该文档,其中比较了 Azure 应用服务、虚拟机、Service Fabric 和云服务。此外,您可能会发现此决策树很有帮助。
应用服务是一种更托管的服务,SF 更多的是你自己管理,你也可以在自己的场所运行。SF 更好地支持非 MS 堆栈开发,例如本机应用程序等。
正如该文档所述,“如果您要创建新应用或重写现有应用以使用微服务架构,Service Fabric 是一个不错的选择。”
如果您托管一些应用程序,您不应该查看 SF,另一方面,如果您部署超过 10 个服务,那么它会成为一个更好的解决方案。
另请注意,SF 具有包含在服务中的数据存储机制。它擅长 3 件事 1)海量数据集群 2)简单数据,通常在 Micros 服务中 数据库成为沉重的负担,因为每个服务都应该有自己的数据,而当你只有 1-3 个表时,像 SQL 这样的东西有点矫枉过正。3) Actor 编程模型的状态存储。
我认为 SF 和 Web 应用程序将在未来分割“云服务”用户群。
如果(应用程序将来可能需要扩展 || 想要构建具有微服务架构的应用程序)去 Azure Service Fabric
否则 Azure 应用服务没问题
当您需要对底层基础架构进行更多控制或直接访问时,请使用 Service Fabric。
当您的 Web 应用需要完全托管的托管平台时,请使用应用服务。
- 根据文档