Immediately following a Microsoft Azure event a couple of weeks ago -- the one during which Satya Nadella famously said "Microsoft loves Linux" -- I headed to an interview with Azure CTO Mark Russinovich to ask a few follow-up questions. To my surprise, a special guest was invited to come along for the ride: Alex Polvi, CEO of CoreOS, which makes a slimmed-down Linux distro Microsoft had recently announced it would support on Azure.
As you may know, CoreOS's claim to fame is that has become the preferred Linux distro to run with the Docker platform, which enables you to package applications easily and distribute them to run in Linux containers. Moreover, as Microsoft and Docker announced mere days before the Microsoft event, the next version of Windows Server will include Windows containers that Docker will support.
Yes, Microsoft is not only professing its love for Linux, but also chasing the latest developments in the Linux ecosystem. I asked Russinovich about the intent of all this:
We want to support Docker container management across Windows and Linux in a uniform way, because it has become the de facto way that people are spinning up containers. Obviously, CoreOS fits in because CoreOS now seems to be becoming the de facto distro for Docker containers, just because it is so tuned and single-purpose for that.
Microsoft has clearly realized that for Azure to stay a top-tier cloud it needs to be an open platform that can keep pace with the breakneck speed of open source technology development. Russinovich is also embracing microservices architecture and plans to add container management features to Azure:
We've got our own internal microservice hyperscale PaaS platform that a lot of our first-party services are built on -- including Azure Database, for example. That will become our cutting-edge technology for microservice PaaS. There will be others, of course. Google has Kubernetes, and that will I'm sure get deeper into PaaS as well. And then there's YARN, too, which is a form of PaaS, that will also be integrated with Docker containers and likely CoreOS at some point.
Getting a feel for how quickly this stuff is moving? Hardly anyone was talking about Docker, CoreOS, or microservices architecture a year or ago. The Kubernetes container management system was announced by Google in June, and by July Microsoft, IBM, and Red Hat had signed on to support it. You can argue that microservices architecture is SOA warmed over, but as Polvi noted, what's happening now is that Docker and easy containerization have finally made the theoretical concepts of SOA practical for everyone.
How does the application portability of Docker help platforms like Azure? To me, it would seem to disrupt the PaaS model, which is a modern scale-out version of the application server -- a platform for dev, test, and deployment. If Docker enables application portability, doesn't that loosen PaaS lock-in? Russinovich replied:
The portability that people talk about with Docker is the dev to test to production portability, where you get consistent behavior. We believe that our PaaS platform should be portable as well. We don't yet have our PaaS offering on Cloud Platform System and Windows Azure Pack, but that is certainly the plan. And also deliver the PaaS so that can run on other platforms as well so if you want to take it to AWS or some other cloud, you can. We recognize that if we have a PaaS that is Azure only, that's going to cause a problem for our customers that are coming from an on-prem environment, because they're going to be developing applications that they want to be able to move and to have them span.
The relationship between Docker and PaaS is not entirely clear at this point. The makers of Docker originally wanted to create a PaaS, but saw the power of focusing on packaging applications for containers instead. Meanwhile, new mini-PaaS offerings based on Docker are springing up all over the place, including Dawn, Deis, Dokku, Flynn, Octohost, and Tsuru.
One way to look at it, I suppose, is that Docker container technology has finally ushered in the era of applications based on services -- and how many of those services should be bundled with a PaaS depends on the type of application being built.
All I can say is: Watch this space. There's no more exciting area of technology. Cloud is the new hardware, and with every major change of hardware platform -- from mainframes to PCs to client-server -- new application paradigms emerge. The "native Internet applications" promised 15 years ago by the Web services movement have been slow in coming, but now the Docker ecosystem has opened the floodgates. The Azure folks are sharp. No wonder they've jumped on board.