BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Introducing Azure Service Fabric

Introducing Azure Service Fabric

In April 2015 at the Build conference in San Francisco, Microsoft introduced an Azure service called Service Fabric.  Azure Service Fabric is a platform that allows customers to build scalable, distributed applications without having to manage a complex infrastructure deployment.  The service is currently in developer preview as of May 2015 and a general availability release is expected in early 2016.

The Azure Service Fabric embraces microservice architectures where developers break up traditional monolithic applications into a set of fine-grained, discrete services.  Historically, managing distributed services across dispersed infrastructure has been difficult to manage.

The intent of Azure Service Fabric is to provide developers with a very rich platform that addresses many of the complexities that are typically associated with building cloud-based distributed applications. Mark Fussel, principal program manager at Microsoft, describes some of the motivation behind building the service: “By using Service Fabric developers and administrators can avoid solving complex infrastructure problems and focus instead on implementing mission critical, demanding workloads knowing that they are scalable, reliable, and manageable.”

Microsoft has been working on Service Fabric for the past 5-6 years as it is foundational in their own cloud platform; Microsoft Azure.  Azure Service Fabric supports many of Microsoft’s cloud services that run on top of it including:

  • Azure Core Infrastructure
  • Power BI
  • Azure SQL Database
  • Azure Document DB
  • Bing Cortana
  • Intune
  • Skype for Business
  • Event Hubs

Azure Service Fabric, in addition to Azure Pack and Windows Server 2016 make up the Azure Stack which is the platform that will allow customers to support Azure-like Private cloud scenarios.  Customers also have the ability to run Azure Stack, and subsequently Azure Service Fabric, in other public clouds.

The foundation of Azure Service Fabric is the System Services that provide the underlying support for customer’s applications.  These services include the following:

  • Failover manager ensures of availability by shifting resources within the cluster including when resources are added or removed.
  • Cluster manager interacts with Failover manager to ensure application and service constraints are not violated.
  • Naming Service provides name resolution services to ensure all services within the application are accessible.  Since the workloads are dynamic, client applications are not expected to understand what underlying infrastructure is supporting a particular service.  The Naming Service will facilitate routing between clients and the underlying service.
  • File store service provides local data and assembly persistence across nodes in the service.

The following image illustrates how these services could be provisioned across a six node Azure Service Fabric cluster.

Image Source: (Screenshot) https://channel9.msdn.com/Events/Microsoft-Azure/AzureCon-2015/ACON334

On top of the Service Fabric Cluster, customers can deploy two different types of applications including:

  • Stateless where application state is stored out-of- band such as Azure SQL Database or Azure Storage.
  • Stateful where state is replicated to local persistence.  As a result there is a reduction in latency and complexity compared to traditional three tier architectures where developers are typically left to implement state logic themselves.

The Azure Service Fabric platform is responsible for the orchestration of these microservices and the microservices should not have any affinity to a particular node or infrastructure. The following image illustrates how a developer may choose to deploy their application as a series of microservices.  Should a node disappear, it is the responsibility of the Azure Service Fabric platform to ensure the microservice(s) are brought up on a remaining node.

Image Source: (Screenshot) https://channel9.msdn.com/Events/Microsoft-Azure/AzureCon-2015/ACON334

Microservice architectures do not have a prescribed framework, or language. As a result Service Fabric supports a variety of frameworks including ASP.Net 5, Java and Node.js.

Rate this Article

Adoption
Style

BT