One of the most common incorrect associations we see in the IT industry is that an open source project is vendor-agnostic. It is a false equivalence which can be something that really confuses what the open source ecosystem is all about. I don’t like to sound negative on some company’s approaches to using open platforms, but when I see folks trying to say that they are vendor-agnostic, I have to correct a few assumptions.
Open Code versus Open Source
Open source, like DevOps, is a methodology. At the Interop event this year in Las Vegas, I quoted from an open source panel with a very frank comment that “putting your project on Github does not make it an open source community”. It may sound harsh, but remember that there is a difference between open code and open source.
Running an open source project with multiple contributors from disparate vendors and individuals is an entirely different thing than just dropping your code onto Github. This is where I talk about the plugins that my team creates for open source projects as “fully open and available to be contributed to on Github” at the moment. We are publicly contributing to schedulers for Kubernetes and Mesosphere. Contributions are entirely from our internal engineering team at the moment. That is the reason I choose to word my description a little differently.
VMware and the Photon team are working on Photon OS and Photon Controller projects. Those are hosted on Github with the ability to accept contributions from external contributors. The question about whether they are truly running an open source community when someone submits a pull request for something that may take the projects off of the predetermined path as defined by VMware.
Currently, there are 30 contributors to the Photon OS and 33 contributors to Photon Controller. Most of whom work for VMware. It’s natural for this to happen at the start of a project. The real judge of the openness and vendor-agnostic nature comes with the shift over time of contributors towards a larger community of participants.
Go Fork Yourself – Vendor-Agnostic over Open Source
Docker has now reached an interesting point where the challenge of being an open source project has begun competing with the origin of the container ecosystem juggernaut which they have become. There is a lot of talk in the industry about other organizations making a fork of the current Docker project in order to bring it back to align with what many community contributors need to do in order to fulfill some technical requirements.
The pull requests being refused by the Docker project are losing out because they are beginning to compete with Docker the company. This is where we see an example of the split between open source as a methodology and vendor-agnostic as a truism.
When a single vendor, or even a group of vendors on a project, steer the direction away from what contributing members of the community are working towards, it loses its true openness. This is what I mean when talking about the difference between open source and open code.
Nearly Nothing is Agnostic
The reality of any project is that they are rarely successful with complete altruism. OpenStack is an example that I would use as a close example of truly maintaining a vendor-agnostic, open source ecosystem. Cloud Foundry is also succeeding with this. Despite massive contributions to the projects from corporate entities, the overall ecosystem remains fully open and serves the needs of the community of consumers that use these platforms.
OpenStack is not without its own challenges around technical direction as I’ve written about before which I dubbed TrumpStack. Every ecosystem will feel these pains as there are choices to make around direction on features and functions.
I applaud every company that contributes to OSS, even if it is only to publicly present their software for open contribution. I just want to make sure that they represent the intentions honestly. This is the reason that we need to take it with a grain of salt when someone who represents a vendor says that they support OSS (Open Source Software) and are vendor-agnostic. One does not equal the other.