Docker Expands Relationship with Microsoft
techcrunch.com
techcrunch.com
That will make Microsoft own:
- #1 Code repository: Github
- #1 Package management repository: NPM
- One of the most popular editors: VSCode
- THE container engine: Docker
I have nothing against this btw, but just wonder at which point the government will throw the antitrust card
(IANAL; this is one layman's understanding, not legal advice)
Start selling Microsoft products to the bought userbases? But I suspect Microsoft is targeting companies rather than the developers themselves. Cynically, the drug dealer strategy? Get your (big, slow to change) customers dependent on the free stuff and then jack up the price?
Or bundle free software in a development environment to attract SMEs and open source developers. Then integrate and promote Microsoft's own propitiatory development offerings? Convert open source developers into Microsoft developers by owning the open source developers' tools of choice?
The tools will be maintained well. And also they'll integrate incredibly well with Microsoft's own software[1]. And with more Microsoft developers that means more Microsoft software sold to companies.
[1] Kotlin is a good example of this. Kotlin was integrated so well into Android Studio. I just pressed one button and, bang, kotlin. I never went back to Java.
I want to really stress that your thesis is on point, but it's not about cloud hosting per se. If software is eating the world, and everyone is going to have some level of proficiency as a dev, Microsoft is targeting being the digital operating system of the economy. You write and run your business on Microsoft, whether you're a Fortune 500 or 5 people working out of a coworking space, and you can even get email, team chat, office apps, workflow automation tools, and everything else under the MS umbrella if that's what your business needs.
https://www.youtube.com/watch?v=SaVTHG-Ev4k
I don't know if I should be happy about Microsoft going away from the Not Invented Here-mindset or sad that the best companies get owned by the biggest companies.
MS already has a working business model (a very lucrative one at that) for enterprise, they can just integrate it into their existing user base and they will gladly pay. There's no hidden agenda.
In the end, who makes the decision on which tools to use? Developers and technical leads, not some CEO or middle management. Position yourself withing the developer community, built a good name, andbe sure they will consider other Microsoft services as well. Especially when they already integrate very well with you toolchain.
I think MS is mostly trying to ensure cohesion between the tooling and their Azure platforms/services. This is their longer term strategy... which has largely moved Directory services and Office to subscriptions models, and shoring up the losses of Windows Server deployments with rented servers on their infrastructure being the least friction and a revenue source moving forward.
Again, honest question, obviously IANAL.
What they actually mean is the opposite. They want to make Azure the easy choice when developing with Docker. They go on to say it can take hours or days to get the integration set up manually.
If Azure “just works” and the other clouds take days to get integrated, owning Docker would let them make Azure integration a priority while neglecting or sabotaging integration to other clouds. The gap gets bigger and Azure feels even more like the obvious choice if you want to get anything done.
IMO one of the major cloud vendors will buy Docker this year. Microsoft seems like the obvious choice right now.
Which is a playbook they've demonstrated as recently as last October, on Mover[1]. It used to allow you to migrate data between a whole host of sources and destinations, and the guides/help docs even still reference those capabilities. Microsoft acquired it and made it free, but have turned it into a one-way tool: the only supported destinations are now Azure, Sharepoint, and OneDrive.
The question is: did they do this to win market share? I think it makes _total_ sense for MS to make a bunch of GitHub services free. I also think it's harmful to competition.
One of the worst policy choices the US has made in the last 30 years is judging antitrust almost _entirely_ through the lens of "monetary cost to end users".
The less reasons there are for using GitLab (private repos was one thing which got me initially, using GitLab over my self administered servers to move code around and share with friends) the better for keeping their quasi-monopoly.
In the EU, monopoly is gauged by how much choice and diversity is lost, even in the face of free product. I am very much aligned with the EU view of monopoly.
Dumping free services is great (temporarily) for the user, but ultimately harms them in that it starves out competition that can't afford such dumping.
*edit, words.
> In the EU, monopoly is gauged by how much choice and diversity is lost, even in the face of free product. I am very much aligned with the EU view of monopoly.
Interestingly the US used to have the EU viewpoint as well, until the 1970s. Robert Bork was one of the main people behind that.
For those interested in a deeper look at Antitrust in America, Planet Money had a great three part series on the topic [1].
[1] https://www.npr.org/sections/money/2019/03/20/704426033/anti...
Users of technical software (I.e. developers, especially for websites) have never had it better.
IMHO, price is one thing you look at as a customer. If the value you derive is greater than what you pay for it you should definitely pay the price for the product.
people don’t use vscode because it’s free. they use it because it’s great.
The convenient to download and install on any machine at any given time without having to deal with payment removes friction and it's a huge thing.
And I have no problem paying for an IDE, but I stopped because VSCode was as good, if not better, than any paid option out there for my uses.
it was just a hypothetical question.
But VS Code has been a smooth experience since then.
I only brought it up because it certainly played a role on github having no longer a reason to invest resources in it having a better alternative being also developed in-house. And I also recall from other HN threads, much vocal users asking GitHub CEO about it, and why he stated just after the acquisition that Atom would be maintained even as Microsoft owning Github from there on... Which didn't happen.
In retrospect, I'm glad I did. The biggest features to me beyond a simple editor are a directory tree view, and an integrated terminal. I don't think anything had that, or at least not nearly as well working before VS Code that I recall. Everything else on top of that is just extras. Git integration, test extensions, integrations galore. In the end, VS Code has been a really great experience for me. It takes a little longer to load than the simple editors.
This doesn't even get into the Remote WSL/SSH extensions that I've started to make more use of the past few months. I've used vscode on Windows, Linux and Mac, and overall don't think I've been happier with a single editor.
You can connect one Excel File via Azure functions via another Excel file with seemless integration.
This wouldn't be the sort of acquisition where MS takes what it wants for itself and kills the product. Not mentioned (unless I missed it) in the article is that Docker has been putting in a lot of work to make the tooling work well with WSL 2. So, having a foot in both Windows and Linux.
The real argument is that the ever increasing scope of these entities create moats far out from the walls of their code product to drive user inwards to the paid offerings and, either by design or happen stance, alt the earth for miles from other smaller rivals gaining any foot holds delivering a service to sections of the user base of these hegemonic organisations from which in time might see the smaller rivals use such traction to then offer competing alternatives of those paid services which hegemonic organisations are based on.
Even if I only ever had to do it once... having the option is much better than not.
Or am I missing something here? Is there an interesting business story there of the missteps made?
Just to clarify, I run docker every day (docker for mac)... my question is more how much of the industry revenue they are able to capture as a business. I wouldn't ask this if they were just an open source project with no business ambitions.
If it works, all those cool VS Code features will be covered in your monthly cloud bill.
Deal.
One thing coders do poorly is UX. Most things I’ve seen that are UX heavy done right are commercial and light-years ahead of open-source versions.
I think I pay them less than $150 for a yearly subscription to their entire toolset, which is a price point that makes it stupid not to buy them. ReSharper is well worth a cup of coffee a week, by itself, and then there is DataGrip, WebStorm, IntelliJ, profilers, decompilers, and other stuff thrown in.
However their engineering went to crap - tonnes of issues with new versions where networking and other stuff broke, plus the whole "runs as root" thing. People only then realised that Docker wasn't the tool, it was the wrapper around it.
All this time they were trying to monetise it and failed pretty much.
This is the view as an outsider who's used it for years - anybody got a more accurate view?
docker-compose has issues of its own, but when you can use it then it works really well.
I think ideally they want you to use kube XML for this use case, though I haven't because it doesn't let me associate a named volume with a set of containers. The suggestion is to use bind mounts to the host instead, which feels like an issue for container portability. Podman Compose does not have this limitation
The individual containers build alright, but running the compose with Podman-Compose failed miserably with unhelpful output - just a bunch of Python stack traces. Running it with Docker-Compose just worked.
I think that Docker-Compose is just a lot more lenient with Yaml type errors - where things should and shouldn't be surrounded in quotes. Podman-Compose just needs to be a little more forgiving, and continuing to parse the compose files if the semantics can be assumed, even if the syntax is not perfect.
Podman has three main advantages over docker: Not needing to run as root, not requiring a daemon in the background and being packaged directly by linux distros.
(Granted Docker is only in Ubuntu's "universe" section and not as a supported package that would receive security patches etc)
2. I like the idea of not having a daemon but never actually had a problem with this in practice. The daemon has never crashed on me. systemd also has daemons that have also never crashed on me.
3. It's like 3 lines to install the official docker package. This is a non-issue for me.
Those do not sound like very meaningful advantages. Certainly not significant enough for me to want to switch from something that Just Works.
Thanks for the reply though. I'll be sticking with Docker.
If you don't understand why others are so excited about those tools, it simply means that you're not part of their tribe.
Podman has long running processes as well, there's a podman process that'll run once you've launched at least one containner, and a conmon for each container (equivalent to containerd-shim)
Packaged directly... it is by RH and SUSE, don't think by debian/ubuntu. At least for ubuntu, 20.04 packages Docker 19.03 just fine.
With rootless podman they use slirp4netns and all get the same IP, with rootful podman or Docker a bridge network is established so that containers that aren't in the same pod can communicate with each other.
Are there any downsides to podman that you know about?
yrro@host$ podman run --rm -it debian:unstable bash -x -c 'id; cat /proc/self/uid_map'
+ id
uid=0(root) gid=0(root) groups=0(root)
+ cat /proc/self/uid_map
0 876099160 1
1 231073 65536
This is done as a regular user with special rights on the system; all that is required are entries for yrro within /etc/subuid and /etc/subgid. There's no equivalent of Docker's daemon that hands out root on the machine to anyone who can connect to its socket.https://www.redhat.com/sysadmin/podman-shareable-systemd-ser...
The other advantage is that it can setup containers based on kubernetes xml file or export a local setup to a kube xml file. This is because Podman is really aimed at the small scale setups - if you would have used docker-compose with docker, you might consider Podman, but the export lets you prototype with something convenient locally then export a config when you're happy to test on the big complicated tooling.
docker has a bunch of telemetry.
microsoft is gathering data: linkedin, windows, wsl, github, docker
who's who, and what are they doing, compiling, checking in, deploying
Most of Docker's products are being superseded by other tools in the linux/enterprise world (buildah, podman, kubernets, etc), but the one area I think Docker still provides actual value to the industry is their Windows Docker distribution. I'm a developer running linux on a team filled with Windows users, and the fact that we can all share dockerfiles is a big benefit. Without docker there's a good chance I'd have to switch to windows or just find a new job.
Strange as it seems, I think the industry is moving such that soon enough most actual Docker users will be on Windows anyways. So why not just embrace that?
“Containerd is replacing Docker as the container runtime”
https://aws.amazon.com/blogs/containers/aws-fargate-launches...
God knows why, I just reset it to fabric defaults everytime and open VSCode and hope it works, lol!
Content: Docker expands relationship with Microsoft to offer tighter Azure integration (that's my understanding from a skim of the article).
Not sure how that eases developer experience across platforms, especially for developers who don't use Azure.
I was hoping for better Docker experience on macOS and Windows — since we're talking about Microsoft here, at least Windows.
Somewhat related: GitHub Actions doesn't support Docker container actions on macOS and Windows environments, which sucks.
In the end, they underestimate how complex is the market and how limited is their expertise. Retrospectively, Diane Green's move to sell VMware, actually more likely gave the firm a long shelf life, in contrary to Docker.
In my leisure time, I started ab article why docker is destined to fail as an independent entity, but sorry no time for writing while incubating a start-up...
https://www.sdxcentral.com/articles/news/sources-microsoft-t...
And Microsoft seems to be the best fit when comparing to AWS or Google as potential acquirer.
Docker democratized the creation of containers, but other companies built more and better services on top of that.
https://www.virtualbox.org/wiki/Changelog-6.0
https://blogs.vmware.com/workstation/2020/01/vmware-workstat...
I haven't noticed any performance issues with Hyper-V (when Hyper-V is enabled, even the Windows OS is running within Hyper-V). Does something with the Windows Hypervisor Platform that is used to support other VM hosts running on top of Hyper-V introduce some type of performance hit?
Unlike hyper-V itself, where some VM exits that return to the host are implemented (for speed reasons) in kernel drivers using undocumented APIs, the supported Windows Hypervisor Platform API is 100% userspace. (Unless this has changed since the last time i looked into this, which was admittedly a fair while back.)
That means that literally every time an instruction is run that needs custom software backing, you not only get the VM-Exit to the hypervisor and then the VM Enter back to the Host (DOM-0) kernel, but also a kernel mode to user mode transition. Then you may well need to query some things in order to know how to handle them which may incur more round trips to the windows kernel.
That all is bad enough that virtualbox wrote a kernel driver that makes undocumented calls from in kernel mode in order to handle certain operations fast enough to be tolerable when doing things like running Windows 95.
The virtualization software is limited to supporting any scenarios that Microsoft decided to support, driven mostly by the needs of the Hyper-V experience. Windows Hypervisor Platform users do not get to directly set the vm control values, so any values in them that Microsoft does not offer some API to set are limited to whatever values Microsoft chose for Hyper-V.
This can make certain things literally impossible, or require really nasty work around that have significant performance impact.
Certain simple VM exit scenarios will get handled directly by the Hypervisor without involving the host OS. If the default behavior is not good enough, there might be an option provided to handle them by re-entering the host OS, but obviously that is much slower.
> Added support for using Hyper-V as the fallback execution core on Windows host, to avoid inability to run VMs at the price of reduced performance
I'll admit to not understanding docker. Is it a VM replacement, or is it a glorified debian package?
Although I'm going to scream if it just gets jammed into Hyper-V.
What is it about their approach that you feel is superior?