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

物联网

  向下,Docker侵入OS领域,向上,Docker挤占CaaS市场空间。

  2016年3月,Docker收购Conductant,入主Aurora,根据如下Docker的规划,Aurora直接和kubernetes以及Marathon竞争,特别是和Mesos的架构完全对应, Docker Aurora+Swarm直接和Marathon+Mesos竞争。使得Docker Swarm从小规模集群管理,扩展到大规模Docker集群管理。

物联网
物联网

  在这个Docker提供架构图,可以清楚的看到没有了Mesos,而是Docker Swarm+Aurora直接取代Mesos+Marathon。同时,我看看下面来自Docker的博客(https://blog.docker.com/2016/03/docker-welcomes-aurora-project-creators/)

  “There are manycommercial distributions of Mesos, but none of them incorporate Aurora. Webelieve that is a wasted opportunity. We plan alt="物联网" width="481" height="251" />

  六、Docker生态圈的演进请输入

  Docker在2013-2014年专注于把容器做好,没来得及顾得上企业级市场,Mesosphere和Google瞄上了这个市场,同时Redhat也把自己的PaaS推倒重来,准备用Docker+kubernetes。2014年底,Docker已经准备进入企业级市场,推出Docker Machine,Swarm和Compose。

  Docker作为Docker的宗主,着眼于Docker市场环境最有利润的Docker生产环境集群管理是很自然而然的,我们再来分析这个市场三只早起的鸟儿:Google、Mesosphere、Redhat。

  一旦Docker进入企业级CaaS市场,Google第一个就感受到了这个压力。

  Google无疑是最有技术敏锐性和市场敏锐性的,早早的看到了Docker企业级市场的企图心,所以Google是第一个支持Docker的竞争对手----CoreOS的Rocket容器,2014年四月份谷歌风险投资公司牵头对CoreOS进行了1200万美元的投资,目标明确---对准docker。Google不再是Docker+ kubernetes,而是容器抽象+ kubernetes。

  Google对容器层进行了抽象,使得kubernetes即能支持Rocket,也能支持Docker,而Rocket和Docker有很大的不同,kubernetes对此进行了折中,不再对所以的Docker的功能支持,只支持kubernetes抽象出的容器功能,如果Docker自己的功能不在kubernetes抽象的容器功能之中,kubernetes选择不支持。最典型的是libnetwork/CNM,kubernetes认为这是Docker的特定功能,不予支持,Google自己搞了一个CNI。所以kubernetes和Docker走在分道扬镳的路上,距离越来越远。

  除了支持CoreOS,Google更是联合容器业界相关的厂商,组成OCI(Open Container Initiative)。业界对Docker在容器领域一家把控早有怨言,所以OCI一成立,就得到热烈响应。和普通的联盟或标准化组织不一样,OCI成立之初就定下目标—容器标准化,包括容器引擎的标准化实现—RunC,定个标准化规范容易给各方钻空子,但是做一个标准化的实现,就可以在相当程度上实现真正的容器统一。Docker眼看OCI实在太热烈,不得不折中考虑,加入OCI,实现RunC。

  但是总是心有不爽,虽然RunC发展很快Docker从1.11开始就采用了RunC的引擎,但是这不就开始和Google也业界大佬开撕了,过程很简单,Kubernetes的KelseyHightower说不要Docker引擎就可以跑Docker镜像,Docker CTO Solomon Hykes马上说,不用Docker引擎, 10%的运行会有问题,然后就扯到OCI,Docker说OCI是个伪标准,立马得到无数的砖头。

  Docker也加入了OCI,对RunC的贡献也不小,现在出尔反尔,现在看到Docker可能会受OCI/RunC的牵制影响,立马不管脸面了,利益第一。

  但是技术潮流是无法一家控制的,OCI/RunC作为业界各大厂商制约Docker的标准迟早会越发展越好,容器并不是什么可以垄断性的技术,或者说容器本身的技术含量并没有高到其他厂商做不好,只不过Docker在合适的时间点点燃了一个干柴烈火的市场。

  关于开撕的细节,大家可以看:

  http://mp.weixin.qq.com/s?__biz=MzI3OTEzNjI1OQ==&mid=2651492692&idx=1&sn=e24efbcc6dcc5ce50773c505a13ccab9&scene=1&srcid=0801BkQ10pDA18gQEy39nObK#wechat_redirect

  Google对Docker容器的制约,不止体现在OCI容器层面,这不,前两天Google宣布和Mirantis的合作,K8s直接支持OpenStack,意味着K8s除了可以管理容器,还会延伸到管理虚机集群,在这个架构下,Google弱化Docker容器的的意图很明显。