`
小牛仔
  • 浏览: 10510 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

为什么COREOS和DOCKER的分手是命中注定的

阅读更多


本文由 七牛云存储 翻译自“Why Docker and CoreOS’ split was predictable”,原文作者Daniel Compton。


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

关于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的威胁。

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


  • 大小: 77.2 KB
分享到:
评论

相关推荐

    node-v18.11.0-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    JavaScript_跨平台3D场景编辑器基于threejs golang和mongodb桌面和web.zip

    JavaScript

    JavaScript_如何编写跨平台Nodejs代码.zip

    JavaScript

    北邮大三物流工程物流信息系统课程设计

    北邮大三物流工程物流信息系统课程设计

    0520_1.mov

    0520_1.mov

    实现CAD基础绘图显示功能(C#源码)

    使用C#开发的,一款非常简单的二维CAD绘图程序。 支持多种图元:线段、构造线、射线、多段线、圆、圆弧、文字。 缩放和平移视图。 支持图层。 图元支持夹点,并且可以通过移动夹点来修改图元。 捕捉。目前支持的捕捉类型有:端点、中点、中心点、象限点。 基本的编辑操作:删除、复制、镜像、偏移、移动。 撤销和重做。 支持点选和框选来选择图元。

    aspectjweaver-1.7.4.jar

    作为AspectJ编译器的一部分,aspectj-weaver.jar主要有以下作用: 切面织入:aspectj-weaver.jar可以将定义好的切面织入到Java应用程序的字节码中,实现横切关注点的模块化aspectjweaver.jar是AspectJ编织器的主要库文件,它提供了AspectJ编织器的核心功能。它可以在编译时或运行时将AspectJ切面(aspects)编织到Java类中,实现面向切面

    JavaScript_使用Meteor构建的开源看板保持变量字段名camelCase对于翻译只添加Pull Request更改

    JavaScript

    JavaScript_JS中最强大的数据验证库.zip

    JavaScript

    node-v14.17.5-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Android的移动应用下拉通知效果源码.rar

    Android的移动应用下拉通知效果源码.rar

    变电站呼吸器硅胶体破损

    变电站呼吸器硅胶体破损数据集,数据总共106张图片,标注为VOC格式

    JavaScript_Open Web Components指导开发Web组件的工具和库.zip

    JavaScript

    node-v16.19.1-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    JavaScript_每个人都可以在这里贡献.zip

    JavaScript

    移动应用Android 腾讯微博客户端源码.rar

    移动应用Android 腾讯微博客户端源码.rar

    da_1716184227697..apk.1.1.1

    da_1716184227697..apk.1.1.1

    node-v6.1.0-headers.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    avalon-framework-api-4.3.1.jar

    avalon-framework-api-4.3.1.jar ======Avalon的组件模型一组联合的经典接口组成,用来定义容器和组件之间交换的物件。容器中的组件的需求使用和组件相关的元信息描述来表示。接口和缺省实现由Avalon ====== jeeplus需要用到的包

    固定资产管理系统.zip

    固定资产管理系统是对高校固定资产的一个信息化管理系统,基本功能包括:对固定资产的购进、接触、销毁,对物品的使用状态、借出状态、库存状态等进行标识,对各类物品进行编号,根据编号进行查询,根据名称进行查询等。本系统结构如下: (1)系统登录: 用户登录模块:登录功能 重置 (2)系统用户管理: 对系统用户的增加 系统用户的权限修改 系统用户的删除 分配系统用户的权限 修改本身登录密码 资产的相关维护 (3)员工信息管理: 教工的增加、修改、删除、查询 (4)资产入库管理: 资产的录入 资产的属性修改 资产的报废删除 资产的属性查询 (5)资产维护管理: 物资的维修、维护物资的信息修改 (7)资产借还管理: 增加借出资产 查询借出资产 归还已借出资产 (8)打印报表

Global site tag (gtag.js) - Google Analytics