Microsoft, Red Hat Agreement Promises True Cross-Platform Microservices

“Windows containers” would not be very interesting if all they did was run on Microsoft platforms. The broader ideal of containerization is that Linux and Windows workloads can be made to coexist on the same cloud platforms, and with the same underlying hardware.
Last week’s much-touted peace accord between Microsoft’s and Red Hat makes more feasible than ever before the ideal of cross-platform microservices. While Azure has made Linux-based VMs available for a few years now, that level of virtualization was not exactly the same as interoperability.
This runs deeper: It will soon be feasible to write a containerized application using a mix of .NET languages, Java, and Node.js, deployed on a fully licensed Red Hat Enterprise Linux-based container platform, hosted on Microsoft Azure. Or, if you prefer, with Red Hat Atomic Hosts on OpenShift.
“We’ll be including .NET technologies in our RHEL platforms, including RHEL Atomic Hosts, as well as our OpenShift platform,” said Paul Cormier, Red Hat’s executive vice president for products and technologies, during a Wednesday conference call with analysts.
“We see this as giving developers the ability to build applications that include .NET services, if that’s something they need and choose to do. I think this will give us greater interoperability across the technologies, and really start to give our customers the heterogeneous world that they really want. We want to give developers, as always, the choice on this.”
An Even Break
Last year, Microsoft open-sourced the core components of .NET, into an interoperable framework. This enables Red Hat to include .NET technologies in RHEL, without altering its licensing.
Azure is now most certainly no longer shorthand for “Windows Azure.” While it has been technically feasible for Azure to host Red Hat Linux for some time, as of now, it’s a supported option. This means Azure recognizes RHEL’s licensing, and as a result, enables everything that RHEL supports to run on Azure, including RHEL Atomic, JBoss, and OpenShift.
OpenShift on Red Hat Linux on Azure. End of paragraph.
When Red Hat first unveiled OpenShift in the spring of 2011, in the wake of its earlier acquisition of Java-oriented PaaS platform Makara, the new platform was perceived as Red Hat’s response to Azure. In the intervening years, DevOps professionals found ways to deploy OpenShift on Azure, albeit not by using Red Hat Enterprise Linux.
Last year, open source contributor Isaac Christoffersen shared a process for deploying a version of CentOS Linux 6.5 on Azure, and then appropriating that operating system so that OpenShift could still be installed there from the same RHEL 6 repository used for Red Hat products. Wisely, perhaps, Christoffersen declined to enumerate the steps for this process, lest he wind up with more steps to elaborate upon than the average deck has cards.
Ever since Oracle launched its Linux flavor in the fall of 2010, its claim to fame has been its seemingly “unbreakable” compatibility with Red Hat Linux (in no small part due to Oracle Linux being heavily based on RHEL). In 2013, one member of Microsoft’s MSDN developer network discovered a way to deploy an Oracle Linux 6.4 virtual hard drive to Azure. In an annotation to the page that an examination of the source code suggests was added later, perhaps in response to questions, the developer noted that the same process should work for deploying RHEL to Azure, although he warned it was not officially supported.
When a process isn’t automated, it isn’t very desirable. About the only reason anyone would want to go through the hassle of installing OpenShift on Azure, instead of a friendlier platform for the open source PaaS, would be someone already subscribed to Azure who didn’t want to open a second account with Amazon. That’s quite likely a very small sample size.
The Walls Came a Tumblin’ Down
In February of last year, it appeared that the barriers between Microsoft and Red Hat — including the technical ones — were so formidable that they could never be overcome by rational means. GigaOM contributor Barb Darrow suggested that the only way past this mess would be for Microsoft to make an outright acquisition of Red Hat.
“Given that Microsoft has bent over backwards to make Azure hospitable to third-party OSes and tool sets (Ubuntu Linux and SUSE Linux run on it), RHEL’s absence is particularly glaring because when you talk enterprise applications from Oracle and other vendors, RHEL is Linux (sorry Oracle Linux, you’re not there yet),” Darrow wrote.
Then just after Red Hat announced it would enable applications for the open sourced .NET run on OpenShift, Red Hat made clear to the world (by way of The Wall Street Journal) that under its corporate terms, certified instances of RHEL were precluded from running on an uncertified vendor’s public cloud platform.
Of course, RHEL could indeed be installed on a virtual machine running on the Azure platform. But getting it there was the sort of trick that DevOps folks did so they could record the process in a video, and show the video on YouTube to impress friends and potential clients.
In the eyes of potential users (not to mention investors), the wall that has separated Red Hat from Microsoft increasingly seemed like an unnecessary, arbitrary obstacle, not to mention a potential embarrassment given how both companies extol the virtues of multi-platform hybrid cloud computing. So the wall has come down. And as Red Hat’s Paul Cormier told analysts, developers will soon see the benefits.
“The plan right now is for us to containerize, to put .NET in a RHEL-based container,” said Cormier, “for use in calling, from application developers. So now, as things move to microservices and things like that, you can imagine these services now — whether they be JBoss services or .NET services — being used to connect applications that live across these four footprints [bare metal, VMs, private cloud, public cloud]. I think it actually opens up a lot with the OpenShift PaaS platform, having these services co-mingle with each other.”
During last week’s analyst conference, Cormier added that he sees the likelihood of Windows virtual machines, and the possibility of Windows containers, to run on Red Hat OpenStack, making both Windows and Linux mixed workloads consistently scalable. But Microsoft executive vice president Scott Guthrie immediately added that Microsoft does not have plans to make Azure run on OpenStack today — which was a nice way of saying they’re two fabrics that can’t be mixed.
“From an application development perspective, as well as from an infrastructure workload perspective,” said Guthrie, “we think that gives maximum flexibility and choice in the public cloud space, while at the same time providing this hybrid capability, so that customers can take these Red Hat workloads running in Azure and connect them either to an OpenStack environment on-prem, or a Hyper-V or Azure Stack private cloud footprint on-prem as well.”
This week, both companies will demonstrate their willingness to overcome their differences for the benefit of their customers. Microsoft has scheduled a joint webinar with Red Hat for Wednesday, November 11, at 1:00 p.m. Eastern Time / 10:00 a.m. Pacific Time.
But the true demonstration of the strength of their partnership is yet to come, when both companies exchange engineering liaisons to work at each other’s premises. There, they won’t just test each other’s software, but provide technical support for customers of both lines of products and services.
Red Hat is a sponsor of The New Stack.
Feature Image: “East and West Shaking Hands at the Laying of Last Rail Union Pacific Railroad” (Restoration) by Andrew Russell, public domain via Wikimedia Commons.