Today, at the //Build conference, we announced that Azure Service Fabric is now generally available (GA) as a service in Azure. We also announced the preview of Service Fabric for Windows Server, enabling Service Fabric to be installed on-premises and in other clouds for maximum application portability. Finally, we announced the preview of Service Fabric for Linux.
First, a little history. At Microsoft, we’ve been on a journey to the cloud just like our customers. To support our own internal evolution from on-premises to cloud and from monolithic to microservice-based applications, we created Service Fabric many years to deal with these challenges.
Service Fabric is a mature, feature-rich microservices application platform with built-in support for lifecycle management, stateless and stateful services, performance at scale, 24×7 availability, and cost efficiency. For a discussion on the benefits of microservice architectures and microservice platforms, check out Mark Russinovich’s introductory blog post and video.
Service Fabric has been in production use at Microsoft for more than five years, powering a range of services including Azure SQL Databases, Azure DocumentDB, Intune, Cortana and Skype for Business. In the largest of these, Service Fabric manages hundreds of thousands of stateful and stateless microservices across hundreds of servers. We’ve taken this exact same technology and with it released Service Fabric as-a-service on Azure. And now, with the standalone preview of Service Fabric for Windows Server you can create clusters in your own datacenter and other clouds.
Developing microservice applications with Visual Studio
It’s really easy to develop, validate, and then launch Service Fabric microservice-based applications with Visual Studio. Visual Studio’s seamless integration with Service Fabric makes coding and deployment simple, and includes the same Service Fabric runtime environment that runs on a single developer’s local machine, mimicking a multi-server Service Fabric cluster for testing and debugging. Whatever runs on your developer machine will run on Azure; there are no emulators to get in the way. Service Fabric even includes a fault analysis service that can subject your applications to induced failures of host machines and the individual microservices so that you can be sure that it will hold up in a production environment in the face of actual failures.
Programming models and frameworks
Service Fabric provides two microservice-based programming models ‘out of the box’: reliable services and reliable actors. Reliable services support stateless and stateful microservices, the latter being enabled through reliable collections such as Dictionary and Queue. The reliable actor programming model simplifies microservice development by modeling microservices as independent objects (“actors”) while Service Fabric takes care of deployment, scaling and communication across actors.
Service Fabric also lets you deploy any other development framework of your choice such as Node.js, ASP.NET core, giving you maximum development flexibility. The microservice model also makes it possible to mix and match frameworks among microservices in the same application.
DevOps with Service Fabric
Service Fabric offers a declarative, model-driven microservices application model where an application consists of a collection of microservices each of which is independently versioned and upgradeable. To help manage the application lifecycle, Service Fabric supports rolling upgrades of individual microservices, automatically rolling back to a previous version if it detects that the upgrade has degraded the application’s health. For example, if v2 of an microservice is deployed that causes the application to fail, then Service Fabric rolls this back to v1. This provides safe guarantees for deployment and never leaves the application in an inconsistent or unknown state.
Service Fabric is fully scriptable with PowerShell (or Azure CLI on Linux) and can be easily plugged into your application lifecycle allowing for a seamless continuous integration (CI)/continuous delivery (CD) of both managing you microservice based applications.
Stateful microservices
Most PaaS platforms only support stateless microservices, with state being stored in an external store or database. Service Fabric is unique in its native support for stateful microservices, where state is held locally in the microservice, persisted to the local disk, where high availability is maintained by Service Fabric through replicas in case a microservice fails. Stateful microservices significantly reduce latency, enhance performance, reduce dependencies on external store and enable applications to achieve massive scale-out.
Service Fabric in Azure
As a service in Microsoft Azure, Service Fabric integrates with Azure features and services, making operations and management simpler, and leveraging the power of Azure cloud. The benefits of running Service Fabric on Azure include streamlined provisioning of clusters through the Azure Portal and Azure Resource Manager, enhanced reliability during host OS update and automated upgrades to the Service Fabric runtime without downtime to your application.
Service Fabric is available at no additional cost in Azure – you only pay for the underlying compute, network and storage used by your Service Fabric Cluster and microservices. Over 400 customers across multiple industries are already building solutions using Service Fabric including BMW, TalkTalk, Schneider Electric and CareOtter.
Learn more about today’s announcements at the Service Fabric team blog.
Check out Mark Russinovich talking Service Fabric with Channel 9’s Seth Juarez.