Azure Service Fabric on Linux Preview at Microsoft Ignite
At Microsoft's conference later this month, it will show off the microservice-based ALM too. It won't have Visual Studio support, but developers will be able to use Linux dev tools to allow Service Fabric to tap into Linux VMs.
At Microsoft's Ignite Conference later this month, the company plans to show off a preview of Azure Service Fabric on Linux. The aim is to support enterprises running "heterogeneous workloads," including Java applications and NoSQL databases, explained Mark Russinovich, Microsoft's chief technology officer, in an announcement.
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 will be initially available on Ubuntu, with Red Hat Enterprise Linux support to follow. 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 Russinovich writes that it's planning on making it partially open source.
Service Fabric on Linux 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 DevOps 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.
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.
Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.