Some folks aren't clear on the limitations. Linux containers will never run on bare metal using Windows Server OS. Virtualization will be required and you will incur that performance penalty. This is Microsoft appeasing it's current users. They aren't making any effort to get folks to switch from Linux as far as I can tell.
The behemoth will take the market anyway it can. It has lost its control of it. Now it has to use any way possible to stay relevant. But fortunately this is a losing game.
With the tooling we have now, it makes no difference where the workload runs. As long as you avoid APIs that are not common (and you easily can), you can pretty much deploy your applications unchanged on AWS, GCE, Azure, Rackspace or your own metal, leaving them to compete on price.
For Microsoft, it's a losing game.
The only segment I imagine they can have a competitive offering is with Windows servers and Windows-based infrastructure (such as hosting your Exchange or Dynamics).
I wish people would stop butchering the word "innovation" as it pertains to software, though I realize this is a press release.
That said, I am interested how the Windows Server subsystems are going to be extended/rearchitected into enabling Docker. A verbatim compatibility layer for Linux namespaces and cgroups, or an LPAR-esque mechanism of their own that could potentially be used to build Windows-only container solutions that harness its specific powers?
Let me give it a shot, very succinctly (although I am constantly being told I am too verbose). Here is what Mark demo'd today at DockerCon:
1) We showed an application deployment, using Docker, of a Windows Server Container (running Node) and a Linux container (running .NET). The exact same Docker client can be used for deployment and managing both.
2) We showed DockerHub integration in Visual Studio Code with intelligent code complete (it auto-fills the DockerHub image you want). Visual Studio Code is a free version of Visual Studio that runs on MAC/Ubuntu: https://code.visualstudio.com/
3) We showed Visual Studio Online continuous integration that packaged and deployed a Docker container using Swarm/Compose on Azure.
4) We showed Azure Marketplace deployment of DockerHub images, that will deploy and configure multiple Docker containers onto Azure Linux VMs (we showed one that deploys both a wordpress and MySQL container on a single Linux host using compose).
5) We showed the Docker Trusted Registry image available to deploy from the Azure Marketplace.
Hopefully that helps (and has removed marketing speak? :)).
My experiences running Docker on Ubuntu on MS virtualization have been negative to lukewarm. First annoyance was dealing with dynamic memory allocation for the linux host, which works fine (I'm told) for Windows VMs, but had to be turned off. Second was some DNS issues, but it could just be that we have a shitty admin.
Nevertheless, Linux (and by extension Docker) and Windows are strange bedfellows IMO. I don't get the alliance from MS perspective.
Perhaps they're trying to focus on being a platform for developers, similar to Apple? The MS fans I work with love their interface... They just don't love paying license fees for production apps.
Thanks for the comments, fixxer. For the comment on memory allocation, I would love to know more details about where you saw problems as we are always trying to make Linux run better on Azure (and Hyper-V). For DNS, I would be surprised if this was the virtualization stack although it can be tricky to set-up DNS in the cloud.
For our partnership with Docker, it has already been very valuable to MS. With Azure, we want to offer customers and partners the ability and flexibility to deploy applications from any ecosystem and find many of our customers want to deploy both Windows and Linux as part of their application. For us, Docker offers an amazing API that spans the underlying container technology, for both Windows Server and Linux, to enable deployment, management and orchestration with the exact same tools and solutions. For example, the same Docker Client works against a Windows Server host and a Linux host.
We are excited to continue to partner with the Docker community, as our customers really do want this consistent experience, on Azure, on-premises and even in other clouds across Windows and Linux.
I will second Corey's request - we've been working to make sure that dynamic memory and other features of Hyper-V are first class experiences on Linux, if you can share details on what issues and what versions you had them on that would be really helpful.
What is this multiplatform container application they talk about? Is it a Hyper-V container with small Linux runtime? Or a docker-compose file with some containers running on Windows and some on Linux (e.g. ASP.NET on Windows and Redis on Linux)?
Great question. Because the containers pull from the underlying host operating system, you will be able to deploy a Windows Server Container on a Windows Server host but you cannot deploy a Linux container on a Windows Server host (and vice versa).
However, you can run either a Windows VM or a Linux VM on Hyper-V (or in Azure).
Also, you can now run .NET applications on Windows or Linux. But that is a bit orthogonal to your question. :)
16 comments
[ 3.6 ms ] story [ 43.7 ms ] threadFor Microsoft, it's a losing game.
The only segment I imagine they can have a competitive offering is with Windows servers and Windows-based infrastructure (such as hosting your Exchange or Dynamics).
That ship has sailed a long time ago.
That said, I am interested how the Windows Server subsystems are going to be extended/rearchitected into enabling Docker. A verbatim compatibility layer for Linux namespaces and cgroups, or an LPAR-esque mechanism of their own that could potentially be used to build Windows-only container solutions that harness its specific powers?
1) We showed an application deployment, using Docker, of a Windows Server Container (running Node) and a Linux container (running .NET). The exact same Docker client can be used for deployment and managing both.
2) We showed DockerHub integration in Visual Studio Code with intelligent code complete (it auto-fills the DockerHub image you want). Visual Studio Code is a free version of Visual Studio that runs on MAC/Ubuntu: https://code.visualstudio.com/
3) We showed Visual Studio Online continuous integration that packaged and deployed a Docker container using Swarm/Compose on Azure.
4) We showed Azure Marketplace deployment of DockerHub images, that will deploy and configure multiple Docker containers onto Azure Linux VMs (we showed one that deploys both a wordpress and MySQL container on a single Linux host using compose).
5) We showed the Docker Trusted Registry image available to deploy from the Azure Marketplace.
Hopefully that helps (and has removed marketing speak? :)).
Nevertheless, Linux (and by extension Docker) and Windows are strange bedfellows IMO. I don't get the alliance from MS perspective.
Perhaps they're trying to focus on being a platform for developers, similar to Apple? The MS fans I work with love their interface... They just don't love paying license fees for production apps.
For our partnership with Docker, it has already been very valuable to MS. With Azure, we want to offer customers and partners the ability and flexibility to deploy applications from any ecosystem and find many of our customers want to deploy both Windows and Linux as part of their application. For us, Docker offers an amazing API that spans the underlying container technology, for both Windows Server and Linux, to enable deployment, management and orchestration with the exact same tools and solutions. For example, the same Docker Client works against a Windows Server host and a Linux host.
We are excited to continue to partner with the Docker community, as our customers really do want this consistent experience, on Azure, on-premises and even in other clouds across Windows and Linux.
However, you can run either a Windows VM or a Linux VM on Hyper-V (or in Azure).
Also, you can now run .NET applications on Windows or Linux. But that is a bit orthogonal to your question. :)
Hopefully that helps.