52

I understand that both Azure Service Fabric and Azure Container Services can be used to host microservices through containers.

In what scenarios is it practical & cost effective to use one over the other? What are some strong use cases for Azure Service Fabric and Azure Container Services models of hosting

I read this comparison but did not find it comprehensive

Update: A comparison table like one in this diagram would help keep the points "sticky" & memorable while deciding which option to use

Acronyms used in the table - AF - Azure Functions, ASF - Azure Service Fabric, ASE - App Service Environment, ACS - Azure Container Service, VMSS - Virtual Machine Scale Set

The “rank” should not be misconstrued as good or bad

RJ Cuthbertson
  • 1,458
  • 1
  • 20
  • 36
mvark
  • 2,105
  • 2
  • 21
  • 36
  • I actually think that the article does a fairly good job. What about it is not comprehensive, or what do you wish it explained in terms of differentiators? – masnider Jan 24 '17 at 19:18
  • 1
    @masnider That article is indeed good and possibly the only one available currently that compares ACS & ASF and I appreciate that the author shared his notes. I didn't get a chance to watch the hour-long video that the article refers to but will soon. As a beginner to ASF, I was looking for a feature comparison table as in this one - https://learn.microsoft.com/en-us/azure/app-service-web/choose-web-site-cloud-service-vm or a checklist that will help me choose which path I should take before I build & host a microservice app for a set of priorities, especially cost effectiveness – mvark Jan 25 '17 at 04:08
  • ACS is strictly confined to containers whereas Service Fabric can also run processes - https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-overview#comments-container – mvark Nov 07 '17 at 13:24
  • I compiled a comparison table of container hosting options on Azure from online resources - http://mvark.blogspot.com/2018/06/options-for-hosting-containers-in-azure.html – mvark Jun 15 '18 at 08:13
  • 1
    See MS article [Choose an Azure compute service for your application](https://learn.microsoft.com/en-au/azure/architecture/guide/technology-choices/compute-decision-tree), last updated 10 Jan 2020 – Michael Freidgeim Mar 08 '20 at 10:12

3 Answers3

29

Beside the link you pasted for "Choosing between Azure Container Service, Azure Service Fabric and Azure Functions" - Following is what I have found out.

Azure Service Fabric (ASF) is more of a PaaS offering while Azure Container Service (ACS) is more like an IaaS offering.

  • ASF gives you its own specific programming model, which if you follow then you will be able to take advantage of ASF features. That is why there is an ASF SDK for C#/Java you need to use. However ASF additionally allows guest executables and orchestrating Docker containers (not sure how much will they be leveraged compared to ACS or will they be at par).
  • At the moment ASF is Windows only (ASF on Linux preview now available @ Feb 2017) (it smells vendor tie-in)
  • ASF offers you Actor model which is good for IoT solution (maybe quicker to implement than to DIY on ACS)

  • ACS in this sense is more open; it provides only container based model and heavily relies and support docker ecosystem. And once its a container its pretty much technology agnostic. This could also be the reason for Microsoft's push for Windows Nano which is a basis for the windows based (server level) containers (my opinion). So with ACS you can either have Windows or Linux containers or both.

  • ACS also allows you to use the open source, industry famous container orchestrators including Docker Swarm, DC/OS-Mesos. While ASF provides sort of its own orchestration. In other words ASF provides more integrated, easier to use feature rich model but ACS gives you much more openness and flexibility.

MS guys in some conference also mentioned that it could be considered that ASF is more of a Microsoft oriented shop while ACS is more oriented towards open source technologies.

hB0
  • 1,977
  • 1
  • 27
  • 33
  • 1
    ASF is available on Linux as preview https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-linux-overview and does support Docker containers (not just Windows Server 2016 containers). – Michael Mar 12 '17 at 03:25
  • 1
    Here's a useful link for details on Actor model: https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-introduction. ASF other feature is stateful services that allows you to save state on the container and it will be replicated to all the other instances of that service: https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-introduction. – Michael Mar 12 '17 at 03:26
  • I don't think you have to use the SDK (which currently only supports C# and Java). They have something called "Guest executable" that allows you to run anything: https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-existing-app – Michael Mar 12 '17 at 03:34
  • 2
    Azure Container Service (ACS) is more AKS (2018) now by focusing primarily on Kubernetes as the containers' orchestrator. – hB0 Apr 09 '18 at 08:35
  • 1
    @Michael isn't saving state directly inside container a bad practice, since container itself is ephemeral. – Karl Xu Mar 07 '19 at 00:44
16

[Feb 2019 Update]

It's a difficult comparison as Azure Service Fabric also exposes an application framework. It's pretty opinionated about the way applications should be built, which doesn't necessarily fit well with notions of 12-factor, cloud-native container apps.

This is an ever-moving feast, but there are a growing number of container runtimes in Azure:

All in all, if you're starting with containers then I would give Service Fabric a miss and head for Kubernetes. You can run containers in Service Fabric, but you can be made to feel like a second-class citizen. IMHO, OFC.

Ben Morris
  • 585
  • 3
  • 6
1

Gross over simplification. If your a Linux guy ACS will probably match what you want better. If you are a Windows dev writing windows code ASF will probably serve you better.

Jack Quincy
  • 106
  • 5