19 ms·
Docker and Microsoft partner to drive adoption of distributed applications
- jimmcslim 12y agoAlso announced by Microsoft: http://news.microsoft.com/2014/10/15/DockerPR/ http://news.microsoft.com/2014/10/15/DockerPR/ "Microsoft Corp. and Docker Inc., the company behind the fast-growing Docker open platform for distributed applications, on Wednesday announced a strategic partnership to provide Docker with support for new container technologies that will be delivered in a future release of Windows Server." I strongly suspected that Windows Server vNext would have some sort of 'container' support after the wild success of Docker.
- nickstinemates 12y agoOne of the most encouraging things I've heard so far - Litmus test for success? Containers running on both Windows and Linux which make up your application. That's when I knew we had a great potential to partner.
- UnoriginalGuy 12y agoFrankly I don't see this working unless Windows Server has MUCH better support for IO and Network prioritisation than it does today. You can set a process's CPU schedule, you can also set it to a "background" priority which reduces both its CPU and IO to the lowest, but you don't really have fine-tune control of how much IO/Network a process has (irrespective of CPU). This means on Windows in general it is very easy for a single process to run away with all of the machine's IO and there isn't a lot you can do about it except killing the process (I've seen backup clients, anti-virus scanners, etc do this). It wouldn't be as big of a problem on Linux because first off the IO scheduler seems to be better, but even if it wasn't you can go in and manually configure a process's maximum throughput in a bunch of different ways. If Windows didn't support this then what is stopping a single Windows-Docker container from stealing all of the system's IO or network capacity?
- monstermonster 12y agoThe recommended way of doing this is to use Hyper-V and multiple VMs. Windows VMs start very fast on Hyper-V. That gives you virtual LAN bandwidth control, "Storage QoS" (IOPS limits), partitioning, affinity and CPU limits. Not only that you have virtual SAN and network fabric. It's pretty awesome! If you utilise it by deploying your app to a .wim file and then use wim2vhd and fart it at a Hyper-V host, docker already exists on Windows so I'm not sure what all the fuss is. Yes we do this.
- UnoriginalGuy 12y agoBecause running a Hyper-V virtual machine is significantly more resource intensive than running a true Docker container. Hyper-V and similar are great. They aren't as good as containers however. You gain more security with Hyper-V but even assuming full hardware support it is still an expensive thing to be doing. On a normal desktop machine you can run maybe 2-4 virtual machines (depending on a lot of factors). On that same machine you would want to see 4-10 containers each container doing one "thing" and one thing only.
- krakensden 12y ago> Because running a Hyper-V virtual machine is significantly more resource intensive than running a true Docker container. I suspect that no one really cares. CPUs are pretty cheap. The problem that docker solves is "0 dependency single-step installs, and reliable rollbacks" not "VMs are too slow". This is true on Linux too, btw- linux containers are still pretty feeble from a security perspective, without draconian seccomp sandboxing.
- derefr 12y agoNo: the problem is that VMs are too slow, and therefore you need to spread them out over more machines, and therefore VMs are too expensive. Otherwise, why not just make every container a full EC2 instance? All the analogous tech to Docker has existed in the AWS+OpenStack ecosystem for a decade; it's just that nobody is willing to pay $50/mo per container. An entire huge company (Heroku) lives off the profit margin that is created by paying for VMs, then selling containers at VM prices.
- heymishy 12y agodoes this mean docker support will only come from wont come before the next drop of windows server? i.e. current windows platforms wont be docker-compatible
- nickstinemates 12y agoDocker Support already exists via boot2docker. That said, yes, the current plan is that this kernel/service enablement comes with a future version of Windows to be able to run Windows Containers.
- valevk 12y agoWould be awesome to have Microsoft Office as Docker container.
- nickstinemates 12y agoWouldn't it? Also imagine, every time you do a build inside of something like Visual Studio, being able to test and distribute that in its own container. The tangential benefits/integrations start to get really interesting.
- ropman76 12y agoyes this would be interesting. We have application severs with multiple windows apps running on them with different versions of the .Net framework. I had to pull teeth with our SysAdmin to get the .Net upgraded on the server. It would be nice to have a container for each so I (as a dev) could run the each app with it's own needed dependencies instead of having to install them on the server.
- ghuntley 12y agoThis is already happening in .NET land independently of this announcement. ASP.NET vNext Katana (1) completes the move away from a perspective monolithic framework and instead individual NuGet packages. Ie - when you deploy your app you deploy your assemblies and into that folder goes everything needed to run the app independently, including and up to .NET core assemblies or BCLs. Your app is a folder and that folder contains everything needed to run the application even up to the point of self-hosting with OWIN - IIS is not needed anymore! (1) http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana http://www.asp.net/aspnet/overview/owin-and-katana/an-overvi...
- tkubacki 12y agoSo the point is Windows server is going to be non-CLI docker manager here to make it easier deploy Linux server apps on Windows ? Or am I missing something here ?
- nickstinemates 12y agoNick Stinemates @ Docker here. I run BD/Tech Alliances. A lot of blood and sweat went in to this one! I'm here to answer any questions you may have about the announcement, the details, or anything about Docker.
- odonnellryan 12y agoWill the MS bits be open-source? Will it be in Go?
- nickstinemates 12y ago> Will the MS bits be open-source? The MS-bits they're contributing to the Docker project will be contributed in the same way everyone does - under the Apache 2 License, in the open, etc. > Will it be in Go? It will be contributed in the main docker repo - github.com/docker/docker As a result, it will be a community/maintainer decision what language it's written in, but obviously we're heavily biased toward Go.
- tmzt 12y agoCan you comment at this point about what containerization on Windows will look like. A tree of processes, a lighter, file-based HyperV, or something else? What effect will this have on the filesystem layout? Will native ACLs be supported or mapping to Unix permissions? Has a timeline for initial code in github been announced?
- deleted 12y ago[deleted]
- nickstinemates 12y agoDisclaimer: I am not speaking for Microsoft here, but my understanding of the facts that have been released. > Can you comment at this point about what containerization on Windows will look like. I cannot directly. > A tree of processes, a lighter, file-based HyperV, or something else? HyperV integration will exist (and is currently being worked on in the open for Docker) but the technology is fundamental to Windows, like hyper-v. As far as I am aware, not a hyper-v decendant. > What effect will this have on the filesystem layout? Each container will have its own. > Will native ACLs be supported or mapping to Unix permissions? Can't comment on these details, sorry! > Has a timeline for initial code in github been announced? It has not.
- alisnic 12y agovery smart move from Microsoft's part.
- steego 12y agoI think there may be a growing consensus in their organization that have to keep making decisions like this if they want to remain relevant.
- nickstinemates 12y agoIt has been pretty amazing to see, if I'm honest. I'm really encouraged - especially with the way they pitch the Azure product line.
- monstermonster 12y agoI think its more that they have the cash to do everything so that's what they are doing. When you do everything you are unavoidable. Not a bad strategy. They haven't lost a bit of relevance with the majority of the paying user base. However the tech press like to spin it that way. When I see a Mac or a Linux box in a 2000+ seat corporate network, then perhaps I'll believe it. The only markets they aren't winning are the freshly created volatile ones.
- SEJeff 12y agoI happen to work at one of those companies where all developers get Linux desktops. In fact, I'm typing this comment from said Linux desktop. You just need to get out more.
- steego 12y agoThere's a big difference between a software company equipping developers with Linux based machines and a midsize to large non-tech company equipping their users with Linux or even Macs. Granted, I think Microsoft is losing their grip and non-tech companies (I work for one) are seriously beginning to consider PC alternatives. On the manager and executive level, and power user level, IT departments seem to be accommodating Macs more. For non-power users, web based machines like Chromebooks are becoming a more attractive each day.
- deleted 12y ago[deleted]
- WhitneyLand 12y agoWhat are you referring to? Windows Server has been industrial strength for years now. >>join the rest of planet earth, and adding features to its OS kernel to make it more Unix-like
- UnoriginalGuy 12y ago> To me, this makes it sound like Microsoft is slowly starting to join the rest of planet earth, and adding features to its OS kernel to make it more Unix-like Could you be more specific, what "features" precisely? Windows NT already takes a lot of concepts from traditional UNIX kernels and builds on them (unlike, for example, Windows 9x). > From what I remember, Windows Server is already a step in that direction, but Microsoft hasn't advertised much of that functionality so far, maybe in order to maintain customer lock in. Could you be more specific, I know a lot about modern Linux and Windows Server, and that comment is mysterious to me. Are you talking about the deprecated UNIX Services for Windows which has existed for well over fifteen years?
- yohanatan 12y ago> Could you be more specific, what "features" precisely? Windows NT already takes a lot of concepts from traditional UNIX kernels and builds on them (unlike, for example, Windows 9x). cgroups and namespaces.
- megaman821 12y agoWhat would a base Windows image look like, just a PowerShell prompt? How would you use the build file to install your dependencies without a package manager?
- nickstinemates 12y ago> What would a base Windows image look like, just a PowerShell prompt? I can't speak for Microsoft, but, there's been a ton of thought put in to this, but details subject to change as they start to contribute to the project. That said, I imagine each container would need those base services (svchost.exe, as an example), its own registry, etc. > How would you use the build file to install your dependencies without a package manager? Lots of examples (in child comments), but more will be announced here soon.
- icebraining 12y agoFetch installer and run it?
- KevinEldon 12y agoFrom what I've read (I'm not expert in this space) there is Chocolatey [1] availabe now for package management and Microsoft's OneGet on the horizon [2]. [1] https://chocolatey.org/ https://chocolatey.org/ [2] https://oneget.codeplex.com/ https://oneget.codeplex.com/
- megaman821 12y agoOk, so Windows Server 10 Core with OneGet would make a lot of sense for a base image. Thanks for the answer.
- UnoriginalGuy 12y agoLikely exactly how Windows 2008 R2/2012 Core installation looks at initial installation time. Just a PS prompt and minimal additional software. Windows already has a package manager called, creatively, PKGMGR. It is already used to install packages from the command line in core edition (or regular edition).
- amarraja 12y agoThis is hands down the best news I have heard in the MS development space in a long long time. We have 3 apps over 32 servers and 5 environments, and operationally it's like pulling teeth. This has the chance to change everything!
- heymishy 12y agowhats your current deployment strategy, series of powershell scripts or something chef/puppet based? We had a powershell based setup and my previous shop but hardest part was maintaing and deploying different databases to make the tests relevant. How do you think docker containers helps (as Im not sure it would have helped in my previous situation - too many other base issues to deal with first)
- amarraja 12y agoGit -> Teamcity -> Octopus -> Server. We also use database migrations to keep everything updated. It's a simple process but works well. Code and deployment is all fine, it's maintainaing server configurations across environments (IIS, permissions, ports, ips, firewalls to name a few, a different issue every time and on every env!). Likely this is more to do with having completely seperated operations and development, however bring able to control the apps environment will allow us to deliver more, faster.
- heymishy 12y agoah nice, we looked into octopus at the time but was still early development days and was too much of a risk, otherwise pretty much the same stack. I can see what you mean re server config, would be a lot easier with docker than what i was hacking about with vagrant. thanks for the info!
- amarraja 12y agoWe are running a fairly old version (two years old, haven't upgraded yet) and I would wholeheartedly recommend it!
- NicoJuicy 12y agoHow does the licensing work for Docker (Apache2 license, i know... It's more about the pricing behind it) together with Windows? I can't seem to find any info about this. I don't assume Windows is suddenly free of charge. The Windows virtualization licensing isn't obvious anyway: http://www.microsoft.com/licensing/about-licensing/virtualization.aspx http://www.microsoft.com/licensing/about-licensing/virtualiz...
- nickstinemates 12y agoDocker is an open source project governed by the Apache 2 license. Referenced here: https://raw.githubusercontent.com/docker/docker/master/LICENSE https://raw.githubusercontent.com/docker/docker/master/LICEN... Any contribution by Microsoft to the Docker project (currently slated, the Docker Daemon for Windows) will be governed over said license. What Microsoft chooses to do with Windows/kernel features/how that is licensed is left to their discretion.
- NicoJuicy 12y agoI'm actually wondering more about the cost of spinning Docker with Windows Server 2012 for example.. I suppose Docker should enable me to spin up an MVC website with Windows Server 2012. How much would this cost and how is the pricing evaluated?
- nickstinemates 12y agoDocker is free to use. I don't know the price of the next version of Windows Server, but, Microsoft has committed to make Docker available on that. So, to use Docker on the next version of Windows Server, it will be the cost of the Windows Server license.
- SlipperySlope 12y agoMicrosoft is going about this the wrong way. They should adopt GNU/Linux, supporting containers, file systems, etc. as their kernel, and then add the proprietary Windows layer on top, e.g. WINE. Otherwise existing Dockerfiles will not build on Windows - right?
- tracker1 12y agoThis is about getting container/docker tooling running on windows, for windows applications. You are correct, this will not run Linux containers directly on Windows, or vice-versa. It's still a compelling option, but I'm not quite certain of the value that it will bring to the table here.
- micah_chatt 12y agoTheoretically I'm guessing this could enable multi-platform gaming? Ex: "Download this docker image, and play our game: Windows or Linux, or boot2docker Mac!" Secondary, a native Darwin Docker server would be killer. The mobile implications could be huge if this made it out of Windows Server.
- SEJeff 12y agoVery very doubtful. You will not be able to run ELF (linux format) executables on windows any more than you'll ever be able to run PE (windows format) executables on Linux. You'll have 2 hubs, the "windows hub" and the "linux hub".
- nickstinemates 12y ago> You'll have 2 hubs, the "windows hub" and the "linux hub". This is incorrect. That said, it's true that Windows won't all of the sudden gain the ability to run ELF.
- cwyers 12y agoSo Windows will be able to run Docker containers built using a Linux image, and Linux will be able to run Docker containers built using a Windows image?
- nickstinemates 12y agoUsing a VM, yes. But nothing fundamentally changes about their ability to execute cross platform natively.
- SEJeff 12y agoWell I meant that in the sense that you can't run a windows app on Linux and you can't run a Linux app on windows. Even if it is the same hub, you'd want to filter "by windows" or "by linux" containers is what I meant. Running boot2docker on windows is sort of cheating in that it is a virtual machine running docker apps and this effort appears to be a native dockerd running on Windows. Thoughts?
- Akkuma 12y agoI wonder how this will impact spoon.net, since they recently launched their windows container tech.
- nickstinemates 12y agoI wish them the best of luck.
- tonyplee 12y agoWhat kind of Windows server/kernel features does Docker need/want/like from MS?
- nickstinemates 12y agoThe equivalent of c groups and namespaces, along with services that need to be container aware (like svchost.exe) and a separate registry per container.
- tonyplee 12y agoIs the docker for Windows is mainly CLI only? Or the GUI exe will be also isolated from each container session?
- nickstinemates 12y agoA future version of Windows will have Container capabilities, and Microsoft has committed to contributing Docker Daemon code.
- deleted 12y ago[deleted]
- discardorama 12y agoIs this the "embrace" step of "embrace, extend, extinguish"?
- nickstinemates 12y agoI think it's right to question that, but I haven't seen any indication of that. I look to the Azure team, and how they're operating. Oracle DB is available. That's got to say something.
- geertj 12y agoDoes this change one of the fundamental tenets of docker, namely that docker images are portable (thanks to the linux kernel providing a very high degree of backwards compatibility). In order words, will there now be Windows images and Linux images, and Windows images will run on Windows hosts and Linux images on Linux hosts?
- wmf 12y agoDocker images already weren't portable between Linux/x86-64, Linux/ARM, and Linux/Power, so Windows/x86-64 is one more platform. I wouldn't be surprised to see Illumos/x86-64 at some point.
- nickstinemates 12y agoThere is a budding Docker/ARM community I cannot wait to support. More on that soon.
- geertj 12y agoOK, it's architecture vs OS, but I get the point. Thanks for the clarification.
- ed_blackburn 12y agoThis has been coming for a while, because it screams common sense..however with Microsofts previous I'm still a little surprised. I wonder if Steven Sinofsky would have been game for this? A lot of Windows developers use commercial Windows for development (i.e. Win7) with these features I anticipate more developers using (the more expensive) Windows Server. If your build output could be a container (VS build process?) that you can ship, or as in a lot of "enterprise" organisations pass on to QA / UAT then this is a big deal and a massive huge step.
- nickstinemates 12y agoThat process you describe excites me on so many levels. I'm literally giddy at the possibilities of developer and ops productivity. All we have to do now is not mess it up :)
- johngossman 12y agoJohn Gossman from Microsoft here. I'm an architect on the Azure team and have been working with Nick and others from Docker. Happy to answer questions.
- megaman821 12y agoWhat does the future of Docker deployment look like an Azure? Will it be more Heroku-like? Can I just provide a build file or a link to Docker repo image and have a server running? When I push an update to an image will my servers update? Can I control how many instances and resources each running Docker image will use? How do I orchestrate several instances that need to work together?
- MadhanA 12y agoHey, this is Madhan from Azure team. Thanks for your comment. All great ideas and we are currently thinking though exactly the same ideas as well. Which of these ideas would you like to see happen first, what would be most important to you?
- edwintorok 12y agoThe site apparently only accepts RC4 as the cipher, I get: Error code: ssl_error_no_cypher_overlap
- ewindisch 12y agoThank you. Our website (docker.com) and the Docker Hub (hub.docker.com), our hosted service, are managed directly by Docker employees and offer a better maintained and security-focused cipher suite than our blog. Unfortunately, we are aware that the blog's SSL/TLS configuration is not ideal. It is on externally hosted infrastructure and we have been working with our service provider to rectify these issues. We have high expectations of the services we consume and will do what is necessary for the long-term security and confidence of our users.
- tkubacki 12y agoThings like this make me wonder if Windows (Server) ecosystem will be able to compete with Linux in long term. I do realize corpo-world is filled with Windows Servers now but it seemed Linux/Docker could change this with containers as a 'standardized server app format' with super easy provisioning process. Now since Windows will get more or less the same - Linux/Docker and Windows/Docker will compete on tools and raw perf.
- nickstinemates 12y ago> Now since Windows will get more or less the same - Linux/Docker and Windows/Docker will compete on tools and raw perf. Pretty cool evolution, isn't it?
- randomsearch 12y agoGreat move for MS. Not sure this is a good idea for Docker though. Doesn't it mean they lose their focus on Linux? Seems to complicate things a lot, and potentially introduce conflicts when prioritising what to do next. Simple is good. Serving a closed source operating system looks unwise, given the nature of their business.
- nickstinemates 12y agoI completely understand the feeling about focus and slowing down. I referred to this above, but big partners working on meaty objectives is actually a positive success criteria that the governance model is built for. That said, we try very hard to ensure that the flow of the project remains unencumbered. Docker is a community project; one of the beautiful benefits of that is that Docker can change as long as you can reach critical consensus on any design proposal. Without the partnership, Docker could be brought to Windows at some undetermined point in the future as soon as those native capabilities existed. With the partnership, we have a set of dedicated Engineers from Microsoft and the community who are eager to build consensus around getting Docker integrated to the new API/Services that they're creating as soon as possible. There's no free lunch - if the contributions don't stand the scrutiny of the maintainers, they will continue to work with them until it does. I hope that helps - happy to discuss further!
- jokoon 12y agomicrosoft has been cornered for a long time, it has lost many ooportunities, glad it's not reacting.
- antocv 12y agoWorst news ever. Docker people will spend more time fixing and making bugs due to Microsoft, the documentation will become a mess (it cant possibly be same documentation for that different systems), the Linux-side of docker will be more mediocre compared to what it could have been if all effort went to it. Remember Internet Explorer 6, Visual Basic, the horror that is Excel and the whole Office suite, Asp.net, Windows Millenium, The attempt to kill Linux by Microsoft through SCO.
- _random_ 12y agoThey are a bit lame now - trying to adopt legacy stuff like HTML instead of fixing it with something nice like XAML.
- nickstinemates 12y agoThe announcement clearly states that Microsoft are becoming "Docker people" -> they're contributing the code in the Docker ecosystem, which means precisely that our problems become their problems. This isn't any different than Red Hat contributing the Device Mapper backend to Docker so it can run unmodified on RHEL. Nothing about the UX changed/fragmented from there.
- yarrel 12y agoPartnering with Microsoft [almost] never ends well. Good luck to Docker.
- hamiltont 12y agoDockerHub-based Windows Package Manager - coming soon to an OS near you
- nickstinemates 12y agoDon't know why you were down voted - this is exactly what is in the press release.
- hamiltont 12y agoshrugs. In all seriousness though, thank the people around your office for me! There are some substantial hurdles to make this integration a practical reality, but if Docker and Msoft can actually pull it off we will see a new world of crazy possibilities. I can't wait!
- mrmondo 12y agoI really hope this doesn't distract from Linux development - there are a number of bugs that have been hanging around for some time without updates now.
- ilaksh 12y agoIt mentions extending Docker to support numbers of distributed Docker containers. I am building a PaaS around Docker so can I get a hint how that will work? I would rather add value than duplicate an existing effort. Is it something like an integration of Mesos, Fig and Docker?
- CMCDragonkai 12y agoI'm building one as well. Want to discuss?
- ilaksh 12y agoSure.. I think yours is called Matrix AI right? "orchestrate massive distributed infrastructure so that they become self-healing, self-organising, and self-adaptable" It sounds like Docker is going to eventually put something out that touches on some of this stuff (although not necessarily self-healing etc.), just wondering how we can take advantage of that or avoid duplicating functionality.
- nickstinemates 12y agoI'd definitely recommend the both of you discuss your plans on #docker-dev / freenode. I'm excited to participate in the conversation, it sounds really cool.
- CMCDragonkai 12y agoThere's alot of parts to orchestration that isnt just container implementations, and there are already tons of tools that do the different parts of orchestration, so there's already some duplicated effort right now, in fact everybody reinvents the wheel slightly when building new distributed systems. The problem is putting it all together in an scalable model is very difficult. Send me an email at roger.qiu ([{at}]) matrix.ai
- Rapzid 12y agoReading the comments, this is the official announcement of the bifurcation of the docker ecosystem. This completely shatters docker's original promise of a universal application container. Now we will have standard gauge cars that won't run in the South. Maersk containers that can't be shipped on MSC. Congratulations to MS though, I think this is a good initiative. Not sure why you even need a partnership with docker TBH as they didn't create the underlying OS technologies that make containerization possible on Linux.. But, with the acquisition of Mojang it is apparent MS is placing a lot of emphasis on acquiring mind share.
- cypher543 12y agoThey didn't create the underlying technologies for containerization on Windows, either. Docker is just providing compatibility with the new container API in Windows Server so that you can use the same tools regardless of the OS. It's no different from what they already do, which is wrap the LXC API.