Microsoft's Service Fabric for Linux hits public preview
Platform as a Service for MS cloud: This one's for the Windows-wielding Linux lovers
Microsoft's Service Fabric for Linux, an application platform designed for cloud-hosted microservices, will be released for public preview on September 26, 2016, at the company's Ignite event in Atlanta.
Microsoft's Service Fabric is an application platform for microservices
The purpose of Service Fabric is to allow businesses to deploy scalable, reliable applications to a public or private cloud without having to deal directly with managing the operating system. The platform manages multiple instances of the application, provides services such as health and load reporting, and enables automatic state management, replicating data transparently so that all instances are kept up to date.
The current Windows release runs on Azure, Microsoft's cloud platform, or on premises. The starting point is to deploy a cluster of Windows servers, on which you run the Service Fabric platform layer. Then you deploy applications, typically small services that publish Web APIs. These services can be arbitrary "guest executables", in which case the Service Fabric keeps them running but does not provide additional features, or services written to use the Service Fabric APIs, in which case they can use the platform for communication and state management.
According to Microsoft, many of its own cloud services run on Service Fabric, including Azure SQL and DocumentDB database managers, Skype for Business, Cortana, Intune, Power BI and more.
Now here it comes for Linux, though unlike the Windows release, which is focused on .NET applications, the Linux version was developed first for Java applications, with support for .NET Core, the cross-platform port of .NET, added later. You can deploy guest executables as well as services written specifically for Service Fabric, such as those using the Reliable Actor and Reliable Services models, two types of Service Fabric applications. You can deploy using Linux containers, and there is integration with Continuous Integration tools including Jenkins and Visual Studio Team Services. There is also a command-line interface for Linux.
The initial release is for Azure, but according to Microsoft's Azure CTO Mark Russinovich, "In the near future, we plan to release a Linux standalone installer to enable Service Fabric to be used on-premises, hybrid and multi-cloud deployments. We have begun work on open sourcing parts of the platform, and will soon open source Service Fabric’s programming models. This allows developers to enhance them as well as use them as starting points to create their own programming models and support other languages."
If you use Service Fabric on Azure or on Windows, there is no additional cost beyond that of the infrastructure you consume. What about using it on Linux and on-premises? "We still haven't fully released the pricing model for on-premises. We'll be talking about this later this year," Director of Program Management Corey Sanders told the Reg.
Distro support for the preview is limited to Ubuntu 16.04 but this is expected to broaden before the final release.
If you are deploying containerised microservices, why would you use Service Fabric on Azure rather than the Azure Container Service, which also runs on Linux?
"The key difference is that Service Fabric is an application platform. It manages rolling updates, rollback, how scaling needs to be properly distributed across the infrastructure; it's less about placement of containers and more around management of the application," said Sanders.
The trade-off here is that if you write specifically to Service Fabric, your application gets additional services but is tied to Microsoft's platform. Service Fabric on Linux is aimed primarily at Azure customers who are using both Windows and Linux, and lets Java developers deploy to Azure using a PaaS (Platform as a Service) model.®