When Microsoft's cloud platform, then known as Windows Azure, was first launched, it was strictly a Platform-as-a-Service offering. Apps written for Azure were deployed onto Windows and used Azure's services such as storage, queues, and SQL databases. But management of the operating system and configuration of the virtual hardware beneath it was strictly Microsoft's concern. In 2012, Azure added a VM role providing Infrastructure-as-a-Service capabilities in addition to the existing PaaS services.

Azure CTO Mark Russinovich announced today a new iteration the Azure PaaS offering, with Azure Service Fabric. Service Fabric provides a set of tools to do things such as offer smarter deployment with rolling upgrades to new application versions, health monitoring, automated rollbacks to earlier versions, scaling, and load balancing.

Service Fabric is built for "microservices," where the functional parts that make up a service are split into small units that can be individually deployed, updated, distributed, and scaled. These smaller units are run in containers rather than directly on VMs. Service Fabric can handle the management and scaling of these containers, with potentially hundreds of containerized microservices running on a single VM.

Azure's original PaaS offerings were built around a model of stateless applications. Anything that an app needed to store persistently needed to be put into some kind of Azure storage. This makes management easier—it's safe and simple to blow away a VM and redeploy an app, for example—but can make application design and development harder. Stateful services, where the deployed instance of the service has some important persistent data, can be easier to develop, but making them redundant and able to handle failures means replicating data between instances, which introduces complications of its own.

Service Fabric will be able to handle even these stateful applications, supporting different replication and failover strategies depending on the specific needs of an application.

Russinovich says that Service Fabric has been many years in the making, and it's already being used to run certain Microsoft services such as Cortana, Skype for Business (formerly Lync), InTune, and the Azure SQL Database (the latter of which is the very definition of a stateful application, as a database's entire purpose is preserving data). The Service Fabric product is not merely related to the version used internally for these roles; Russinovich says that it's literally the same. As such, it's had plenty of in-the-wild usage and testing.

Microsoft claims that Service Fabric is more or less unique. While there are services that provide some of the same capabilities, such as Pivotal's Cloud Foundry or even Amazon's Elastic Beanstalk and Lambda, Redmond says that matching the full set of features would requiring assembling many different tools.

Service Fabric will span both public and private clouds. Perhaps unsurprisingly, given its origins as an internal Microsoft tool, it currently only handles Windows, though Russinovich says that Linux support is in development. Microsoft has no exact details on availability or pricing currently, but it will be launching a preview at next week's Build conference. At Build, there will also be sessions that show how developers can put their apps on top of Service Fabric. Its development model will use the actor pattern provided by Microsoft's Orleans framework.

Listing image by Microsoft