文档章节

为什么CoreOS和Docker的分手是命中注定的

七牛云
 七牛云
发布于 2014/12/04 21:19
字数 1866
阅读 2885
收藏 48

 

 

"韦恩·格雷茨基曾说过:“我总是溜向冰球将达到的点,而不是追逐它曾在的地方。”


关于Docker是否应该扩大产品的边界以扩张CoreOS的集群管理范围的争论由来已久,这也直接导致了CoreOS开发了自己的容器Rocket来与Docker争雄。这种现象可以被 Clayton Christensen教授的  Law of Conservation of Modularity 章节中的观点合理地解释:

“根据我们的研究,存在这样一种现象,当价值链上的一种产品在商品化的同时,与此同时在价值链上肯定会有一种当前产品非商品化的趋势, 这种相互作用的进程就意味着,当新的破坏性浪潮冲刷一个行业时,差异化能力仍然在价值链上不断的转移着。当发生这种情况时,那些将自身定位再不够完善的价值链区间的企业就能够盈利 ”    - Clayton Christensen, 第六章:创新者的方法。

关于Docker和CoreOS之间的这点事在科技界并不新鲜,在计算机产业发展的初期就曾经发生过。 差异化能力在价值链上不断的转移时,力图拥有这种能力的人之间就会产生各种对抗。 就像在冰球比赛中一样,总有人滑向价值将要产生的地方。

历史不会重演,但总是惊人地相似。起初,大型机的发展总是差强人意,所以被整体设计、制造和出售是一个大的趋势。IBM在这一整合的历史趋势中获得了大部分利润,由于它的供给能够填补当时这种趋势中的不足。几年后,小型机和大型机已经发展得足够完善了。这时候利润从组装整个机器的整合资源者(如IBM和康柏)转移到各个部件的生产商了:操作系统(微软),处理器(Intel),存储器和驱动器。现在又到了整合资源的商家通过填补整合资源的空白来获取利润的时代了。

在台式机的领域里,处理器和操作系统一开始不那么令人满意,因此价值转移至此并不断被持续改善。但存储器和驱动器就不那么幸运。当他们发展得足够好并且能够进行模块化操作的时候,利润早已经被生产DRAM的厂家瓜分大半。

在云服务领域,截至2013年云服务商提供的虚拟机服务已经足够完善而且成功商品化。发展得并不尽如人的方面是应用的重构、部署和多服务器的管理。这时涌现了一大批工具如puppet,chef 和ansible,但是所有工具的表现不分伯仲。 直到王者Docker在Github上的出现才打破了现有的格局。

从模块化和整合化的方面来说,我们可以认为Docker被设计的初衷是在独立封装和在任何平台都可以同步运行。Docker将操作系统、虚拟机、物理机和基于上面的操作整合起来进行商品化。同时提供了一系列的API,使得其他人能够基于这些API进行操作。Docker不能商品化的部分是数据中心,我们稍后会解释为什么特别强调这一点。

从一个开发者的角度,把应用封装在Docker的意义在于你可以你整个云服务作为一个模块进行操作,这其中的模块只是一个可以被替代的商品。Docker的伟大之处在于你可以任意地把你的应用进行迁移而无需做出其他改动。这对于谷歌这样的云服务的提供者可不是一个好消息,因为用户的迁移成本变得非常低。这时代,价值就从提供虚拟环境VM的云服务商流向Docker。

Docker对于开发者的意义在于,封装应用只需要Docker就够了。可以预见的是将会很快出现一大批公司提供基于Docker的无差异的整合服务。最著名的无疑是CoreOS。CoreOS提供了分离式的linux版本服务和基于容器Docker的集群机服务。CoreOS剥离了虚拟机和容器Docker,并以单一集群和商品化的数据中心进行代替。价值再次进行转移,从Docker转向整合Docker之后提供的服务。无论他们承认与否,CoreOS与其友商都是其他云服务商的潜在威胁:他们要将云服务及其建立在之上的整合平台进行商品化。

感受到这样的威胁,如果采取调整自己的服务以适应Docker的发展这样的策略对于谷歌这样的云服务提供商来说并不奇怪。他们的服务可以基于自己的硬件平台并将Docker整合在自己的服务里进行管理,这可以使价值重新分布。但令人大跌眼镜的是,谷歌又推出了自己的容器集群管理工具 Kubernetes。直到现在我还是理解不能。

那最后留给Docker的是什么呢?从一开始他提供了一个模块化的组件供其他应用使用。这对于其他组件是有很大价值的,但对Docker却没有什么价值,因为这个过程并不能获得极大的利润。完全商品化并不是一条好的出路,对于Docker的投资人来说肯定也不会带来极高的回报率。

所以CoreOS肯定会把Docker当作一个商品的构成的要素,当Docker意识到自己的价值不过是被像CoreOS这样的企业作为一个工具来创造价值的时候,Docker肯定不能只是继续停留在OS层面提供价值。对于Docker来说,惟一的出路是向上一层发展。基于Docker进行构建和运行并且进行管理的整合式集群服务对Docker来说才有意义。

CoreOS对这种变化是非常在意的,因为Docker对于他们来说 ,在开发者中间,是一个极大的潜在竞争者。最自然的反应就是构建一个新的容器作为和Docker进行博弈的工具从而支持他们本来自己的服务。Rocket从出生开始相对于Docker就有技术方面的优势,这是因为它本身就是CoreOS制造用来抵挡来自Docker的威胁。

在不久的将来,集群管理也将会被完全商品化,价值将会流到别的地方,这种循环又会重新上演。这种把戏,跟打冰球没什么两样。

原文链接: http://danielcompton.net/2014/12/02/modular-integrated-docker-coreos#rd

 

© 著作权归作者所有

共有 人打赏支持
七牛云
粉丝 39
博文 68
码字总数 150422
作品 0
浦东
加载中

评论(12)

七牛云
七牛云
谢谢指正,一会儿改~0
七牛云
七牛云

引用来自“久永”的评论

他提到的那本书有中文版不?
现在还没有中文版的呢~
袁国涛
袁国涛
翻译有问题.Law of Conservation of Modularity是Clayton Christensen教授的书的第六章,不是一书名,那本书的书名叫 The Innovator's Solution pdf版本在这里http://pan.baidu.com/s/1qW9bIiw
asdfsx
asdfsx
袁国涛
袁国涛

引用来自“久永”的评论

他提到的那本书有中文版不?
同问,刚敲完问题就看到了.不过估计不会有中文版的,能引进的都是原版再版七八次的书
young7
young7
不是很懂
久永
久永
他提到的那本书有中文版不?
oxsicn
oxsicn
小编辑
小编辑
Zoker
Zoker
阿里云ECS安装 CoreOS

没事重装了下阿里云的ECS,无意发现竟然有了 CoreOS 的选项,有点小激动,于是乎,果断选择安装尝试了下. 阿里云ECS安装 CoreOS 其他阿里云注册啥的就不多说了,来个主要的图说明下: 题外话 用 EC...

taadis
2017/05/29
0
0
Docker的对手来了:CoreOS发布新款容器引擎Rocket

Docker 刚问世就红透半边天,不仅拿了融资,还得到了Google等巨头的支持。CoreOS此前一直忙于为 Docker 提供技术支持服务,似乎准备好好沾沾 Docker 的光,现在看来它另有一番打算:据gigao...

第三方支付接口
2014/12/03
0
1
CoreOS 更新重启后, 所有容器服务全部停掉了

今天有几个服务出问题了,上去看了下,这台 CoreOS 下的所有容器服务竟然全部停掉了,好奇怪,启动容器时明明加了参数了呀. 问题原因 想了想,会不是是 CoreOS 更新重启导致的, 看了下 CoreOS 更新...

taadis
2017/06/01
0
0
CoreOS实践指南(九):在CoreOS上的应用服务实践(上)

截止到这里,CoreOS的基础部分已经全部介绍完毕,回头看看,其实大部分的篇幅都用在了介绍CoreOS内置服务的使用上。这些内置的服务,一方面来说为集群中的服务管理和通信提供了一种简单和规范...

Freyr
2015/05/16
0
0
使用Docker还是Rocket?也许可以一起来。

本文转自DockerOne 在2014年接近尾声的时候,CoreOS发布了与Docker类似的引擎Rocket,并声称Docker的处理模型有着“根本性的缺陷”。虽然CoreOS的创始人Alex Polvi软化了立场,但他也坚持自己...

DockOne
2015/01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

深入理解OAuth2.0协议

1. 引言 如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题。豪车一般配备两种钥匙:主钥匙和泊...

xtof
22分钟前
1
0
Linux学习-0920

3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令 一、usermode命令 usermode作用是用来修改用户信息。 方法: usermod 参数 username 示例1:修改用户uid usermod -u 1010 test5 示例2...

wxy丶
32分钟前
1
0
synchronized锁对象的坑

今天本来写点其他东西,碰巧写了一下synchronized,没想到掉坑里面了,大佬别笑。 起初代码大概是这样的: package com.ripplechan.part_1_2_3;import java.util.concurrent.CountDownL...

RippleChan
35分钟前
1
0
XAMPP环境搭建(Apache + MariaDB + PHP + Perl)

operation system:ubuntu-18.04.1 step1:download XAMPP #sudo wget https://www.apachefriends.org/xampp-files/7.2.9/xampp-linux-x64-7.2.9-0-installer.run step2:install XAMPP #sudo ......

硅谷课堂
37分钟前
0
0
关于获取3DS MAX中的蒙皮数据 3DSMAX C++API的应用

目的是为OSG做自定义的导出插件. 记录取得数据的方法. Max在代码中会提供一个INode对象. 从这个对象里取出各种数据. getSkin这个函数取出了ISkin修改器 下面这个函数一样是用于学习, 把数据输...

洛克人杰洛
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部