Microsoft Planning To Launch Service Fabric on Linux
Microsoft plans to show off a new preview of Service Fabric on Linux at its Ignite conference, starting on Sept. 26.
Service Fabric for Windows Server and .NET applications already exists. It hit general availability at Microsoft's Build 2016 event in late March. However, with the coming Service Fabric for Linux preview release, Microsoft is aiming to support enterprises running "heterogeneous workloads," including Java applications and NoSQL databases, explained Mark Russinovich, Microsoft's chief technology officer, in an announcement today.
Service Fabric currently underpins various "scalable services" that get delivered from Microsoft's datacenters, including "Cortana, Intune, Azure SQL Database, Azure DocumentDB, and Azure's infrastructure," Russinovich said. It has been "battle-hardened internally at Microsoft for almost a decade," he added.
Service Fabric on Linux will let organizations tap Linux virtual machines. It'll be initially available on Ubuntu, but Red Hat Enterprise Linux support is "coming soon," Russinovich said. Developers can use familiar Linux dev tools. There will be Eclipse and Jenkins, along with the command-line interface. Developers can build on local machines in a "one-box setup" and then run the Service Fabric on Linux cluster "wherever they want," Russinovich added.
Right now, it seems that Azure infrastructure is needed to use the Service Fabric on Linux preview. However, Microsoft is working on a solution in that regard, and it's planning on making it a partially open source, too, according to Russinovich:
In the near future, we will release a Linux standalone installer to enable Service Fabric to be used outside of Azure for on-premises, hybrid and multi-cloud deployments. We also plan on open sourcing parts of the platform, beginning with Service Fabric's programming models. This will allow developers to enhance the standard programming models and use them as starting points to create their own programming models and to support other languages.
No Visual Studio Support
Service Fabric on Linux, unlike its .NET cousin, won't have Visual Studio support, according to Subramanian Ramaswamy, a principle program manager working on Azure Service Fabric, in a Part 3 Channel 9 video.
"When it comes to development experience, that's where the train departs substantially," Ramaswamy said. "When you look at Windows developers, they are used to using Visual Studio and coding in C#. Now, the Linux world is slightly different. On the Linux world, using Visual Studio as a full-fledged editor is not so common."
Instead, Linux developers at best use Visual Studio for a core editor, he added. They tend to use vi, emacs and VSCO a lot more than Visual Studio, as well as command-line tools like CLI and Bash. On Linux, a lot of developers are using Java, so Microsoft wanted to make sure Java was a supported programming model, and so a Java SDK will be coming.
"On Linux today, we have it [the Java SDK] as a private technical preview," Ramaswamy said. "We'll have a public technical preview end of September. On Windows, it will come eventually. We don't have a timeline yet."
The microservices approach is a way for developers to build and scale services using evolving infrastructure, such as the datacenter resources run by "cloud"-based service providers. The microservices get distributed across a cluster, which provides diagnostics, monitoring and self-healing capabilities, so it's a sort of Dev-Ops kind of approach. It's possible for developers to create microservices on a single machine, which can later be ported to cloud infrastructures.
"You can either set this up inside Azure and create what we call a cluster that you can deploy to, or you can take Service Fabric and just take Windows Server machines and bolt them together with a network and build my own little cluster under my desk or in your own datacenter," explained Mark Fussell, a principal program manager lead working on Azure Service Fabric, in a Part 1 Channel 9 video.
Service Fabric can be put on a laptop, Fussell added, "and the bits that run on my laptop are exactly the same ones that run on Azure … so that there's none of this friction you get with some emulator."
Fussell explained that traditional application development was targeted toward specific hardware. In the microservices approach, though, the application is split into smaller services (see chart):
The microservices thereby become independently scalable, and the machines make the decisions for the developers on how best to run them. Here's how Fussell explained it:
With a microservices approach, and sort of building cloud-native applications, what the approach is instead is you have a pool of machines in sort of a cluster. They tend to be general-purpose [machines]. And then you build a set of applications or microservices that can be deployed across the set of machines. And each one is an independently scalable, versionable, upgradable. And this allows you to have the agility of updating different pieces of the code at different times and also to scale things independently.
It's a cloud development approach. Applications get decomposed into scalable code that you can version, he added.
For tips on getting started with Service Fabric, which may be of interest to IT pros as well as developers, see Brien Posey's January Redmond article here.
Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.