Docker and the Mixed Success of Open-Source Software
Sep 8, 2021 | Last edit: Sep 8, 2021
Docker is a technology whose imprint has transformed the software industry. From desktop virtual machines to containers to cloud providers, Docker has become a major influence in a short time.
Released in 2013, Docker was totally unknown to me at the time, and for a couple years after that. I forget where I was the first time I was introduced to it, as a tool for creating local development environments. It would have been a time we were emulating servers to run databases and PHP applications. But I vividly recall the moment, years later, when I first walked through creating a dev environment in Vagrant. Spoiler: it was a long, long process that left me wanting for Docker.
Is that a fair comparison? Not entirely. These are different tools with different objectives, which emerged at different times. So is there any point in measuring the role of Docker against other virtualization tools that came before or came along at the same time?
To me, it's enough to measure the current industry landscape and see what a valuable presence Docker is.
Containers, in the image of Docker, are omnipresent in so many of the cloud infrastructure providers. For software developers, Docker has sped up and simplified the experience of creating and running virtual machines. With all this progress. it's surprising that Docker as an enterprise has not struck the same level of success.
Docker – the enterprise – recently announced some pricing changes to its platform. Some of the reaction to this news seemed to undercut the valuable role that Docker has played. Maybe it's not valuable to others, as it appears to me. But it's disingenuous to suggest it's going to quickly fade into obscurity because the company is charging more money for it.
Consider it another example of how difficult it is to make open-source software work.
I have no vested interest in this news and I don't speak for the open-source Docker project or the company. Yet I've became more aware of the challenges of being an independent software developer: someone who doesn't simply toil to build the latest version of a company's digital toolset for profit.
Open-source projects are created and nurtured outside of this comfortable space. These projects can benefit so many others, however, and have such a broad impact. It's never certain that profit, or maintenance, is never certain to follow.
One fascinating project I've begun exploring recently is OpenFaaS, which is built on Docker. The tagline is “Serverless Functions, Made Simple.” And I can say it does all that it advertises, and works very smoothly.
But it's not enough for an open-source project to work as advertised. (Sure, not all of them do, and it's a badge of honor by itself.) The contributors and leaders of the project can struggle to make a living, as so much of their work is donated.
Alex Ellis, the founder of OpenFaaS, spoke about the conflict:
I don’t think the project itself can make money. A company could potentially have a go-to-market strategy building a product around a project, but this is something that while I was at VMware I really defined a bit further, and I think they reinforced as well… Is that projects are not products. Products are products. Now, you may create a distribution of OpenFaaS that is a product, that has a paid support contract with it; companies will be willing to pay a corporation, either one person, or three, or five, or five hundred, to support… But on its own it is not a product. It’s completely free, it’s MIT-licensed. That means that it cannot make money; it can make money for you when you use it in your business.
Source: Changelog Podcast #343
Open-source software is hard, and has been from the beginning. Things like support contracts and dev sponsorships have emerged to bridge this gap, but there's a long road to travel. I am hopeful we find more solutions to continue encouraging creative minds behind the software tools we use today and in the future.