Docker生态会重蹈Hadoop的覆辙吗?

  由于Google早早的对容器进行抽象,可以预见,即使脱离Docker生态圈,kubernetes依然有其市场,而且主要是大型容器和虚机部署的市场。

  再说Mesosphere。2016年上半年迟钝的Mesosphere终于意识到Docker的野心和意图,开始尝试脱离Docker,在新的Mesos Containerizer中支持脱离Docker Daemon建立容器,为下一步支持Rocket/RunC做准备。

  Mesosphere相当于而言是比较不敏感的,一直跟着Docker跑,即使在Docker要做Swarm时,而且Docker已经做了Swarm仍然不敏感,终于Docker已经明确的对Mesosphere通过发行版赚钱表示了明显的不满,可以理解,Docker自己花这么多资源做出一个Docker和相应生态,还没开始赚钱,搭车的先赚钱了,换谁谁也不乐意。2016年2月Docker发布DDC(Docker DataCenter)和报价,已经非常明确了Docker要进入企业级市场。

  2016年上半年迟钝的Mesosphere终于意识到Docker的野心和意图,开始尝试脱离Docker,在新的Mesos Containerizer中支持脱离Docker Daemon建立容器,为下一步支持Rocket/RunC做准备。

  Docker进入企业级市场,第一个碾压的就是Mesosphere。一方面Docker通过收购Conductant获得Aurora,未来必定会合并到DDC中,DDC完全可以覆盖Mesosphere的DCOS在Docker集群管理上的功能,而且Docker还有一招,未来只提供Swarm的API,封闭或是大幅改变Docker API,那么Mesos就只能调Swarm的API,Swarm本来就和Mesos有很大的重叠,如果Mesos再通过Swarm去管理Docker集群,那Mesos的价值可能小于功能重叠带来的复杂性。当然Docker是否会祭出这个大招让我们拭目以待,虽然在Docker的新的架构图已经有此规划。

  在这种生态环境下,用户的选择是最难的,已经选择了Docker+Mesos的用户,必然会面临未来继续走Docker+Mesos的路,还是壮士断腕,切换到正宗的Docker DDC,但DDC还不成熟,目前阶段还不适合选择。

  而Docker+Mesos是注定未来很难升级,越往后越边缘化。

  再看Redhat,2014年的时候看到Docker火起来,Redhat见异思迁,马上抛弃自己的OpenShift V2的整体架构,包括抛弃原有应用容器Gear,全面采用Docker替代Gear,同时用kubernetes替代原有的容器管理。如此革命式的改造,完全不考虑前后的兼容性。

  这导致已经部署在OpenShift V2的应用迁移到OpenShift V3非常困难,虽然提供了一个迁移工具,但是Redhat自己都不敢用,到目前为止,Redhat的OpenShift公有云还是OpenShift V2,在给客户推销OpenShift V3的时候自己不从V2升级到V3,一定是难度极大,否则拼了命也要升级,”自己的狗粮自己得吃”。

  Redhat在OpenShift V3技术架构的选择显得鲁莽,核心技术是Docker和kubernetes,而Redhat对这两个技术都没有掌控,一旦Docker的发展或是kubernetes的发展和自己的战略目标不一致,可能还得推倒重来,又是一次”见异思迁”,目前就实际的遇到了这个问题,Docker要发展自己的DDC,和kubernetes竞争,而kubernetes已经对容器进行了抽象,不再支持Docker的特定功能,Docker和kubernetes已经处于分道扬镳的阶段,未来只会越走越远,而Redhat“只能眼睁睁的看着你却无能为力”,即无法说服Docker,也无法影响Google。

  另外,既然Docker要进入企业级容器集群管理市场,那OpenShift就必然和Docker存在竞争,Docker因为绝对的掌控了Docker容器,在竞争中有天然的优势,这种优势随着Docker的升级和DDC的升级会与日俱增。到底是选择正宗(奥迪)还是山寨(奥拓),客户也容易陷入困惑。

  七、开源技术也需要商业的成功

  开源不等于免费,开源是一种商业模式,一个开源组织和开源项目要想生存下去,最重要的基础就是普遍被使用,不然很快就会被竞争者替代。

  一个软件被普遍被使用之后,还需要因此衍生出相关服务,团队可以通过这些服务获得比较好的收入,商业模式就成型了,没有商业的支持的开源是很难成为一个成熟、商业可用的技术。就拿Linux来说,Redhat和Suse Linux作为比较成功的Linux商业化,通过发行版和技术支持获得了商业成功,反过来推动了Linux的发展。Linux持续有开源路线和商业路线,商业客户需要商业的版本和支持,有Redhat和Suse等提供。开源的Linux如CentOS,CoreOS等。

  反面的例子就是OpenSSL,去年暴露出“心脏出血“漏洞,大家发现就一个人在维护在OpenSSL,也没人捐钱,Theo de Raadt-- OpenBSD项目的创始人说OpenSSL的代码”令人作呕“,主要原因就是没有商业的支持。这不最近又爆出新型高危漏洞。