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