Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between Kubernetes and Service Fabric

I have worked on Kubernetes and currently reading about Service Fabric, I know Service Fabric provides microservices framework models like stateful, stateless and actor but other than that it also provides GuestExecutables or Containers as well which is what Kubernetes also does manage/orchestrate containers. Can anyone explain a detailed difference between the two?

like image 894
Ali Kahoot Avatar asked Jan 24 '18 04:01

Ali Kahoot


People also ask

What is Kubernetes Fabric?

What is Kubernetes? Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions. Kubernetes Stats.

What is a service Fabric?

Service Fabric is Microsoft's container orchestrator for deploying and managing microservices across a cluster of machines, benefiting from the lessons learned running Microsoft services at massive scale.

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.

Is service Fabric deprecated?

Today, we are announcing the retirement of Azure Service Fabric Mesh. We will continue to support existing deployments until April 28th, 2021, however new deployments will no longer be permitted through the Service Fabric Mesh API.


1 Answers

You can see in this project paolosalvatori/service-fabric-acs-kubernetes-multi-container-appthe same containers implemented both in Service Fabric, and in Kubernetes.

Their "service" (for external ingress access) is different, with Kubernetes being a bit more complete and diverse: see Services.

The reality is: there are "two slightly different offering" because of market pressure.
The Microsoft Azure platform, initially released in 2010, has implemented its own Microsoft Azure Fabric Controller, in order to ensure the services and environment do not fail if one or more of the servers fails within the Microsoft data center, and which also provides the management of the user's Web application such as memory allocation and load balancing.

But in order to attract other clients on their own Microsoft Data Center, they had to adapt to Kubernetes, released initially in 2014, which is now (2018) either adopted or closely considered by... pretty much everybody (as reported in late December)
(That does not mean one is "better" than the other,
only that the "other" is more "visible" than the first ;) )

So it is less about "a detailed difference between the two", and more about the ability to integrate Kubernetes-based system on Microsoft Data Centers.

This is in line (source: detailed here) with Microsoft continued its unprecedented shift toward an open (read: non-proprietary) staging platform for Azure (with Deis).
And Kubernetes orchestrator is available on Microsoft's Azure Container Service since February 2017.


You can see other differences in their architecture of a deployed application:

Service Fabric:

https://github.com/paolosalvatori/service-fabric-acs-kubernetes-multi-container-app/raw/master/Images/ServiceFabricArchitecture.png

Vs. Kubernetes:

https://github.com/paolosalvatori/service-fabric-acs-kubernetes-multi-container-app/raw/master/Images/KubernetesArchitecture.png


thieme mentions in the comments the article "Service Fabric and Kubernetes comparison, part 1 – Distributed Systems Architecture", from Marcin Kosieradzki.

like image 120
VonC Avatar answered Sep 23 '22 02:09

VonC