Community or Ecosystem?
InfoWorld ran a fascinating story this week about the history of how Docker lost control of the emerging container market that the company itself defined out of thin air, and then largely lost the mindshare around container orchestration to Kubernetes, a technology that came from Google. While there were many factors at work, the article, written by InfoWorld UK Group Editor Scott Carey, offers a few choice lessons in staying afloat in the fiercely competitive landscape of enterprise open source software.
Even though the basic building blocks for containers have been around for at least a decade prior, Docker fitted the container idea to a specific developer problem — making sure an application that worked on the developer’s computer could also work seamlessly elsewhere. The success was immediate (as anyone reading the New Stack in 2015 knew). But the company found itself quickly beset on all sides by much larger rivals, perhaps most notably Google and Red Hat, that were all eager to bring the technology to the lucrative enterprise market.
Perhaps the most telling quote came from Docker co-founder Solomon Hykes, who, looking back on that time, said he made the mistake of confusing “community with ecosystem.” Thanks to its expertise in enterprise Linux, Red Hat quickly adopted the container idea and became a cut-throat competitor to Docker. “They never rooted for the success of Docker,” Hykes said. “The mistake on our end was desperately wanting them to be part of the community. In retrospect, we would never have benefited from that partnership.”
Developers at many larger companies, Carey noted, quickly became enamored with Docker. But when their respective employers looked for enterprise support of the technology, they turned to the much more experienced Red Hat, rather than wait for Docker to build out a comprehensive, well-supported enterprise platform.
Another interesting wrinkle in the article was that, at least according to Kubernetes co-founder Craig McLuckie (now at VMware), Google actually offered to donate Kubernetes to Docker, but negotiations broke down. “There was a mutual element of hubris there, from them that we didn’t understand developer experience, but the reciprocal feeling was these young upstarts really don’t understand distributed systems management,” McLuckie told InfoWorld. Hykes denies that Docker was outright offered Kubernetes, but the company knew it needed an orchestrator and decided to place its resources behind its own Docker Swarm instead, which today is nowhere near as widely used.
It's a fascinating read, so check it out, and do remember, just because you may have invented a killer open source technology, your work is nowhere near completion. You still must navigate the dangerous rapids to successful commercialization.