Azure Service Fabric 与 Azure 容器服务对比

52

我知道Azure Service Fabric和Azure Container Services都可以通过容器来托管微服务。

在什么情况下,使用其中一种是实际的和成本有效的?Azure Service Fabric和Azure Container Services模型托管的强大用例有哪些?

阅读了这篇比较文章,但没有发现它很全面。

更新:像这个图表中的表格将有助于在决定使用哪个选项时保持“粘性”和可记忆性

表格中使用的缩写 - AF - Azure Functions,ASF - Azure Service Fabric,ASE - App Service Environment,ACS - Azure Container Service,VMSS - Virtual Machine Scale Set

“Rank”不应被误解为好或坏


我认为这篇文章做得相当不错。它有哪些方面不够全面,或者你希望它在区分方面解释得更清楚? - masnider
1
@masnider 那篇文章确实很好,可能是目前唯一一个比较ACS和ASF的文章,我很感激作者分享了他的笔记。我还没有机会观看这篇文章提到的长达一个小时的视频,但很快就会去看。作为一个ASF的初学者,我正在寻找一个功能比较表,就像这个 - https://learn.microsoft.com/en-us/azure/app-service-web/choose-web-site-cloud-service-vm 或一个检查清单,可以帮助我在构建和托管微服务应用程序之前选择哪条路径,特别是成本效益方面。 - mvark
ACS严格限制于容器,而Service Fabric还可以运行进程。- https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-overview#comments-container - mvark
我从在线资源中编制了一个关于Azure容器托管选项的比较表 - http://mvark.blogspot.com/2018/06/options-for-hosting-containers-in-azure.html - mvark
1
请参阅微软文章为您的应用程序选择Azure计算服务,最后更新于2020年1月10日。 - Michael Freidgeim
3个回答

29
除了你粘贴的“在Azure容器服务、Azure Service Fabric和Azure Functions之间进行选择”这个链接之外,以下是我发现的内容。
Azure Service Fabric (ASF)更像是PaaS提供而Azure Container Service(ACS)更像是IaaS提供。
ASF提供了自己特定的编程模型,如果您遵循它,则可以利用ASF功能。这就是为什么需要使用ASF SDK for C#/Java。但是,ASF还允许使用客户负载并编排Docker容器(不确定相对于ACS会有多少优势或是否会达到同等水平)。
目前,ASF仅适用于Windows(ASF on Linux预览版现在可用于2017年2月),它似乎带有供应商的束缚气味。
ASF提供了Actor模型,这对于IoT解决方案非常有用(可能比在ACS上自己实现要快)。
从这个意义上说,ACS更加开放;它仅提供基于容器的模型,并且大量依赖和支持Docker生态系统。一旦它是一个容器,它几乎与技术无关。这也可能是Microsoft推动Windows Nano的原因,它是基于Windows(服务器级别)容器的基础(我的观点)。因此,在ACS中,您可以拥有Windows或Linux容器或两者。
ACS还允许您使用开源,业界著名的容器编排器,包括Docker Swarm、DC/OS-Mesos。而ASF提供了自己的编排方式。换句话说,ASF提供了更集成,更易于使用的功能丰富模型,而ACS为您提供了更多的开放性和灵活性。
Microsoft的某些演讲中还提到,可以认为ASF更多地面向面向Microsoft的商店,而ACS则更多地面向开源技术。

1
ASF在Linux上作为预览版可用,支持Docker容器(不仅限于Windows Server 2016容器)。请参考https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-linux-overview。 - Michael
1
以下是有关Actor模型的详细说明的有用链接:https://learn.microsoft.com/zh-cn/azure/service-fabric/service-fabric-reliable-actors-introduction。ASF的另一个特性是有状态服务,它允许您在容器上保存状态,并且该状态将复制到该服务的所有其他实例:https://learn.microsoft.com/zh-cn/azure/service-fabric/service-fabric-reliable-services-introduction。 - Michael
我认为你不必使用SDK(目前仅支持C#和Java)。他们有一种叫做“访客可执行文件”的东西,可以让你运行任何东西:https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-existing-app - Michael
2
Azure容器服务(ACS)现在更注重于Kubernetes作为容器编排器,因此更像AKS(2018)。 - hB0
1
@Michael 直接在容器内保存状态是否是一种不良惯例,因为容器本身是短暂的。 - Karl Xu

16

[2019年2月更新]

与Azure Service Fabric暴露应用程序框架相比,这是一个困难的比较。它对构建应用程序的方式有着明确的看法,这并不一定符合12-factor、云原生容器应用程序的概念。

这是一个不断变化的盛宴,但Azure中出现了越来越多的容器运行时:

总的来说,如果你从容器开始,我会跳过Service Fabric,直接使用Kubernetes。你可以在Service Fabric中运行容器,但你可能会感觉像是二等公民。我的看法是这样的。

1
过于简化了。如果你是Linux开发者,ACS可能更适合你的需求。如果你是Windows开发者编写Windows代码,ASF可能更适合你。

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