background

Azure Service Fabric Mesh

Hello Everyone, :)

In this article, I would like to talk about the Service Fabric Mesh, which is an alternative container and microservice orchestration solution written using Azure's Microservice architecture and offered for containerized applications.

What is Azure Service Fabric Mesh?

It is a fully managed Azure service (Infrastructure as a Service (IaaS)) that enables developers to build and deploy microservices without managing any infrastructure process (network, storage vs.)

Here, there is no information directly stated in the documents published by Microsoft about whether the Service Fabric Mesh service is IaaS or PaaS. However, based on my research, I think it may be in the IaaS category. Otherwise, you can leave a comment :)

Your applications hosted on Service Fabric Mesh run and scale without you worrying about anything.

Just upload your code you developed and specify the limits of the resources and requirements needed. Afterwards, Service Fabric Mesh automatically allocates the infrastructure and handles infrastructure failures, making sure your applications are highly available. You only need to focus on the health and responsiveness of your application, not the infrastructure. Service Fabric Mesh will be providing the infrastructure for you anyway.

Let us look at a few features of Azure Service Fabric Mesh.

Azure Service Fabric Mesh:

  • Supports any programming language or framework that can run in a container.
  • Supports Visual Studio 2019 and Visual Studio Code tooling and provides a powerful editing and debugging experience for .NET and .NET Core applications.
  • Provides the infrastructure necessary for migration of existing applications to containers.
  • Builds and deploys new microservices applications in Azure and integrates with other Azure services or existing applications running in containers.
  • Runs on own virtual network definitions.
  • Easily monitors the running applications thanks to the infrastructure it provides and manages the debugging, application upgrade and versioning operations.
  • Deployment and failover scenarios of applications are much efficient.
  • Provides an infrastructure suitable for continuous integration processes.
  • All resources that you deploy are Azure Resource Manager resources. All features of the Azure Resource Manager can be used (For example features such as Role-Based Access Control, Audit Trail).
  • Using Application Insights or any other tool, performs operational monitoring and alerting set up and then monitors relevant data. Specify auto-scale rules for the Azure services to be used to optimize resource usage.
  • Create a collection of servers that operate in various geographical regions.
  • Determine and run the best environment for application.
  • Has many features such as high availability, scaling in/out, orchestration, message routing, reliable messaging, no-downtime upgrades, security management, disaster recovery, state management, and configuration management.
  • Support the REST service structure generated using Swagger.
  • Support the JSON and YAML (Resource Model) file format when the applications are deployed here.
  • Use all the security and compliance features that Azure provides.

Of course, in addition to these features, there are some restrictions that we may encounter while using the Azure Service Fabric Mesh. I have mentioned a few of them as follows:

  • Azure Service Fabric Mesh was first launched in 2018 is very new. It is currently in preview version and there will be no upgrades until May 2020.
  • Azure Service Fabric Mesh preview version is not suitable for production environments. It is assumed to be used only in test environments.
  • It provides very strong support for Windows environments, Microsoft products, and .Net applications. However, its support for other technologies is limited.
  • Even though the application to be used is written with the .Net framework, if the technology infrastructures (DB, Caching etc.) to be used are not Microsoft technologies, perhaps a better option may be using Azure Kubernetes Service.
  • Although it provides sufficient infrastructure for cloud native applications, it does not yet have sufficient infrastructure for native applications.
  • Service Fabric programming model should not be used to use Azure Service Fabric Mesh.

Even though it is too early to use this new Azure service in live environments, it may replace other container orchestration tools in the future. Why not :)

The flowchart below should help you choose the best Azure service for you.

See you in my next article :)

Reference

How can we help you?