Search code examples
azurearchitecturemicroservicesazure-service-fabric

Azure Service Fabric v monolithic


Can I just bounce something of you? I’m reading about microservices and the Azure Service Fabric and need a nutshell on a concept.

To my understanding, it allows microservices to be deployed to its own container via Service Fabric magic. Each microservice container will be scaled out when a workload is put on it disregarding other services.

For example imagine there are

  • only 2 microservices at play.
  • first is a query handler – which uses n compute resources when idle and
  • a database microservice that uses m resources when idle.

Say that the query handler passes a ridiculously expensive query (e.g. select * from aMultiBillionRowTable;) to the database microservice that will require compute\VM scaling.

In the monolithic approach, I understand that query handler microservice will have its resources scaled to n * x compute resources and the database microservice scaled to m * x.

In the Azure Service Fabric approach, query handler microservice will remain at n compute resources and the database microservice will scale to m * x.

Is this correct? If so, great, but are there corollaries I’m ignoring? What are they? I don’t need a treatise, just the terms and I’ll research on my own.


Solution

  • In simple term yes your example is correct given the machine capacity is greater than n+m*x.

    Using Service Fabric allow you to have high density of services and share cluster resource between services depend on demand.

    Another important feature of Service Fabric or any orchestration is it offer reliable services where consumer can consume services even one node is down.