Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Azure Service Fabric vs Azure Container Services

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

like image 995
mvark Avatar asked Jan 24 '17 17:01

mvark


People also ask

Is service Fabric a container?

Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and containers. Service Fabric is Microsoft's container orchestrator for deploying microservices across a cluster of machines.

What is Azure Service Fabric vs Kubernetes?

Service Fabric, the biggest difference between the two is that AKS only works with Docker-first applications using Kubernetes. Service Fabric is geared toward microservices and supports a number of different runtime strategies. Service Fabric can deploy Docker and Windows Server containers.

What is Azure container service?

Azure Container Instances is a service that enables a developer to deploy containers on the Microsoft Azure public cloud without having to provision or manage any underlying infrastructure.

What is an Azure service Fabric?

Azure Service Fabric is a Platform as a Service (PaaS) offering designed to facilitate the development, deployment and management of highly scalable and customizable applications for the Microsoft Azure cloud platform. Fabric, in this context, is a synonym for framework.


2 Answers

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.

like image 135
hB0 Avatar answered Sep 18 '22 12:09

hB0


[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:

  • Azure Kubernetes Service is the container orchestrator that replaced ACS. It seems to be moving very much in a PaaS direction.
  • Azure Container Instances are useful for small jobs and burst scale
  • Azure Batch is optimised for large, repetitive compute jobs
  • Azure Service Fabric is an IaaS offering geared more around lifting and shifting Windows applications to the cloud
  • Azure Service Fabric Mesh is the new kid on the block - a PaaS service for Service Fabric apps.

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.

like image 21
Ben Morris Avatar answered Sep 18 '22 12:09

Ben Morris