微信号:beyondcent

介绍:博云(BoCloud)专注于借助云计算等新型技术帮助客户CIO和信息技术部门实现从技术支撑型向核心业务决策型战略转变.在基于虚拟化的弹性基础设施平台搭建、基于容器的敏捷业务平台和多维度的信息系统运维与决策平...

Docker会是改变世界的那只“箱子”吗?

2016-05-27 15:54 刘永峰
新闻动态

NEWS

博云BoCloud将会参加6月4日在上海光大会展中心国际大酒店举办的@Container容器技术大会。来自Rancher、携程、PPTV、蚂蚁金服、京东、浙江移动、海尔电器、唯品会、eBay、道富银行、麻袋理财、土豆网、 阿里百川、腾讯游戏、数人云、点融网、华为、轻元科技、中兴通讯、中国民生银行、长安汽车等公司的技术负责人将带来实践经验分享。



改变世界的“箱子”


没有集装箱,就不会有全球化。《经济学家》这个评论可以说是对于这个普通的箱子的历史性地位的一个总结。1956426日,当集装箱之父麦克莱恩第一次将集装箱这种方式用于货物运输时,他肯定想像不到他的这个看似普通的发明,会对这个世界的影响如此深远。因为如果把全球经济比作一个高速运转 的复杂的机器,那么以集装箱为核心的现代运输体系就是带动这台机器高速运转的齿轮和传送带。


集装箱的发展也是历经坎坷,历经五十多年才大规模流行开来,但是一旦它开始普及,就立刻掀起了巨大的变革性的浪潮。站在浪潮之巅的国家和港口,快速地崛起。 而落后于浪潮的人和物,被时代快速地抛弃。无数国家的命运因此而改变。整个世界的生产体系被重构。它带来了商品生产的地域分布的改变、协助方式的改变、分工的改变。不仅仅影响整个行业,更影响了我们每一个人的生活。


很多时候,我们面临未来的预测和期望,其实很多答案已经存在在历史中。对于传统行业如此,对于高速发展的IT行业,更是如此。在IT的世界里,是否已经出现了这样一只改变它的箱子呢?

DockerIT领域的箱子


Docker,顾名思义,是码头工人的意思。它从诞生起,就和集装箱的思想有着千丝万缕的联系。Docker的发展历史,其实很像集装箱早期的发展 史。和传统的集装箱萌芽一样,Container(容器)技术其实早在多年前就出现了。从2005年的Solaris Containers2008LXC 0.1版本的推出。再到后来的Google推出开源的容器管理工具lmctfy。也将近经历了10年的发展。直到2013年,Docker的出现。才代表 着容器技术一个新的时代的来临。


很多人将Docker等同于Container,其实这是不对的。就像传统的集装箱运输体系一样,集装箱只是其中一个最核心的部件,用它来 代表整个以集装箱为核心的运输体系。那么Docker其实就是以容器为核心的IT交付与运行体系。它包括了Docker Engine(容器的运行管理),Docker Registry(容器的分发管理),以及相关的一系列的API接口。包括后来发展起来的Docker MachineSwarmCompose 所以可以看做是一套以容器为核心的创建、分发和运行的标准化体系。


如果把Container比作是传统领域的集装箱,那么承载集装箱的港口就可以看做是云的服务商,集装箱的拖船可以看做是云服务所提供的 IaaS服务。Docker公司弄出的Docker Machine之类的可以看做是一种集装箱的吊装设备。当然,作为一套推动全球经济快速运转的航运体系,不仅仅只有这些,还有无数的基础设施,包括高速公 路,集装箱的拖车,将货物装入集装箱的叉车,搬运工人。另外,还有一套软的设施,包括各类的标准,集装箱的交付流程。所有的这些,我们都可以从IT世界里 面的看到他们的身影。


所以说,Docker是一套以容器技术为核心的思想和一套标准化体系。它不是一个技术,也不是一个公司。Docker不等同于现在的Docker公司,和它的发展和兴衰没有必然的关系。



Docker会改变IT世界吗


Docker会是改变IT世界的那只箱子吗?下这个结论还有点早,但是我们可以从传统的以集装箱为核心的航运体系的发展史来预测一下它的未来。 首先,来看看现代航运体系中,最核心的那个东西,也就是集装箱,它是什么时候发明的?其实在上世纪20年代就已经在使用了。但是为什么一直到上世纪70 代才开始流行开来。因为那个时候,集装箱仅仅是一个工具,仅仅是防止损坏和被盗。它没有融入到全社会的协作体系中。1956年,集装箱之父麦克莱恩,第一 次将它用到大规模的货物运输,这个时候,它才由一个单纯的工具,开始发展成一种新的观念和体系,才开始逐渐融入到全产业链条的运转中去。到上世纪70年代 中期,各种专用的集装箱港口、拖船、吊装设备开始普及和完善,这才代表一个新的时代的开始。以集装箱为核心的现代航运体系,开始取代了旧式的货运体系。


我们再来看看Docker的发展历史。容器技术其实早在10多年前就出现了,但是为什么很少人知道它?因为那个时候,它仅仅只是一个虚拟化 的技术,只是从一个角度解决了Run的问题,没有看出相比KVMXEM有太多的优势。2013年,Docker的出现是一个标志性的节点。它首次提出了 BuildShipRun的概念,将容器技术向IT产业链条的上游和下游进行了延伸。从软件的使用领域,延伸到了软件的生产领域,以及软件的发布领 域。同时借助于容器技术,打通了DevOps,极大提高了软件领域的生产率。但是,相比传统集装箱的坎坷道路,它还有很多路要走。全产业界已经接受了以容 器镜像为主要形态的软件发布模式了吗?应用的执行都基于容器了吗?分布式以及微服务架构已经非常普及了吗?显然没有。


Docker刚开始出现时,很多人觉得它和Java很像,所谓的一次构建,随处执行。但是DockerJava其实有本质性的区别的,Java只是解决了执行环境的兼容性的问题,或者说它只觉得了Run的问题,并没有把这个技术延伸到IT产业链条的各个环节中,所以注定它只是一个重要的技术,而不能成为改变世界的创新。


集装箱也好,容器也罢,当我们思考,什么样的技术,才是一种颠覆性的技术时,一般从下面几个维度去思考:


它是否带来整个产业生产力的大幅度提升?

它是否融入到了整个产业的价值链条中去了?

整个产业是否围绕它进行分工和协作?


Docker是否是一种改变未来IT产业的颠覆式创新?这里我大胆地给出肯定的答案,至少,从集装箱的发展史,看到了它未来的样子。

集装箱航运的发展史,就是一部产业兴衰史。在这个链条的无数的人和物的命运都被改变。有的国家、有的港口因此快速崛起。而有的则被时代所抛弃。它消灭了很多传统的工作岗位,同时也带来了很多新兴的职业。中国这样的发展中国家,因此能够快速融入到全球的协作体系中去,实现了自己的快速崛起。
Docker未来会对IT产业带来哪些改变呢?这个问题,的确值得所有人深思。



IT产业分工方式的变革


传统的IT产业,大部分是以项目的方式来运行。客户招标,软件系统的开发商和集成商负责开发。当完成客户的需求以后,搭建系统进行测试,最后部署到 客户的执行环境。这期间还需要负责系统的调试,费时费力,如果有新的模块时,还需要重新的部署、调试。系统的开发者、运营者、客户之间,无法划分一条清晰 的界限。这很像传统的航运业里面,客户需要自己把一件一件货物搬到轮船上,费时费力。这种模式注定了无法进行大规模的分工协作,所有的模块需要全部集中在 一家大的公司进行开发。应为协作的方式,导致的沟通成本太高。


如果未来,所有的系统,全部是以容器镜像的方式去发布,任何云的服务商都可以去执行这些计算负载。很多不同的模块完全可以外包到世界各地的 团队去完成,只要模块之间以微服务的方式,定义清晰的接口。完成开发后,push到统一的镜像仓库。软件系统的运营者,从仓库pull到镜像,放到任何的 云的系统去执行。所有的团队之间,都有统一的交付界面。大大降低了协作成本。所带来的直接好处是,扫除了软件众包的方式的最大障碍。软件众包会成功一个非常流行的IT生产方式。


运维角色的转变


集装箱航运史上,码头工人是个非常悲剧的角色、一开始,抵制集装箱,认为会大大减少他们的工作机会,到后面,当浪潮来临,其实是无法抵挡的。整个的职业基本 上就消亡了。大家现在在码头上,肯定看不到那种扛货物的码头工人的。但是并不是人消亡了,而是职业消亡了,取而代之的是各类的吊装设备的操作工人、集装箱 的调度管理人员。


Docker的英文意思就是码头工人,其寓意就是Docker这种东西,取代了码头工人的传统工作,是机器的延伸。传统运维,如果仅仅是安装软件、配置系统、备份拷贝文件、部署和发布,如果所有的系统都是容器镜像的方式去发布,所有的计算负载都是在云上面去执行,就像传统的码头工人一 样,消亡是必然的。当DevOps真正实现后,开发和运维,其实界限越来越模糊了。人更多的是从事更有创造力的工作。



企业应用市场的兴起


Apple Store,带来了2C领域软件开发新的商业模式。那么企业应用市场会有怎样的创新呢?如果所有的软件系统,全部是以容器镜像的方式发布。那么企业应用市 场将是一个非常重要的入口。相比于2C领域,企业应用市场还是有一些不同点。未来,会呈现两种模式。一种是公有的企业应用市场。另一种是私有的企业应用市 场。中小型公司,或者比较传统企业,会倾向于从公有的企业应用市场获取软件服务。而比较大型的公司,会倾向于建设自己的企业应用市场。不管是哪种模式,必然会带来,IT生产领域的分工的细化和全球化。就像目前iPhone手机上的APP所走得道路一样。


云服务商会重新洗牌


建立在传统IT模式下的云服务商,主要依赖的绑定用户建立竞争壁垒。Docker技术会弥合各个云之间的鸿沟,计算负载可以在各个云的服务商之间自由流动。此时传统的竞争壁垒不复存在了。从集装箱航运的历史看,云计算的服务商,好比是传统集装箱运输体系中的港口。伦敦港的迅速衰落,而荷兰的鹿特丹的 快速崛起。为我们提供很好的历史经验。最快速地拥抱这种变革的港口,会快速地崛起,而传统利益之间艰难抉择的港口,会很快被时代抛弃。当计算可以自由流动 时,更好的开放的姿态接纳这种流动,更快速地规模扩张,降低单位计算的成本,是在未来云计算竞争中胜出的关键因素。


云计算的厂商当前要做的不是设置障碍,阻止计算的流动,也不是推出自己特有的容器的服务,去充当航运公司。因为这不会获取任何的竞争优势。 反而是要积极参与Docker“航运基础设施的建设。标准的制定,有更好的集装箱堆场(镜像仓库),兼容各种集装箱拖船的吊装设备,让自己的航船更 经济,有效的运输各个航运公司的集装箱。



Docker未来之路在哪里


Docker发展的现阶段,很像集装箱刚开始用于航运的最初的那几年。整个产业链条尚不完善。价格并不比传统货运更有优势。客户大部分处于观望状态。所以出现了不同的道路的分歧。总结起来,有下面三种道路。


1容器技术往下走,取代传统的虚拟机


基于Docker在安全和隔离性上面存在的一些问题,以及用户对传统机器根生地固的使用习惯(容器当虚拟机在使用),有一种声音是容器应该网 IaaS层发展,去取代传统的虚拟机,然后再通过Docker这样一套体系去管理起来。我觉得未来可能不是这个方向,因为传统的IaaS层已经非常成熟 了,传统的虚拟化技术,也没用遇到很大问题,Docker再去解决计算、网络、存储的问题,是重复性的工作,是为了技术而技术,并不会对产业生态带来任何 的好处。这非常像传统航运体系中,曾经在一个特殊时期,发展起来的一种特殊的模式,就是用拖船运送带集装箱的卡车。集装箱,不需要长出轮子。已经从历史经 验去证明了。


2容器技术往上走,取代传统的PaaS


传统的PaaS的确遇到了很大的问题,容器技术往上走,去替代传统PaaS也是必然的趋势之一。但是,我觉得这只是副产品,Docker主要的变革,并不是去改变PaaS。未来IaaSPaaSSaaS之间的界限越来越模糊。有可能是一个新的名词,譬如CaaSContainer As A Service)。计算单元都是以容器为单位。上世纪60年代,越战期间,以集装箱为单位运送战略物资时,美军提出了一个著名的3C原则,也就是一个集装 箱,只运送一种货物,一个目的地。这个原则,同样适用于容器,也就是Docker公司提出的一个主要原则:一个进程,只跑在一个容器里面。所以,集装箱就 是最基础的计算单元。


3私有云的容器服务


现阶段,公有云上搭建Docker系统,的确鲜有比较成熟的商用案例。因为要实现稳定的商用环境,一方面需要Docker技术,特别是网络技术的不 断成熟。另外一方面,也需要公有云的IaaS层专门针对容器服务的深度融合。现阶段公有云上跑容器服务,就和上世纪50年代,用老式货船运输集装箱业务。 反而是私有云领域,得到了较为广泛的应用,国内大的互联网公司,纷纷在自己的私有云中实践Docker。但是大部分依然是比较传统的使用方法,也就是将容 器当虚拟机用,利用DockerBuildShip的体系,实现自己的DevOps。私有云的容器服务,只是特定时期的特定现象。长远看,公有云逐步 取代私有云是必然趋势。随着Docker技术的越来越成熟,分布式以及微服务架构的应用越来越广泛,私有云容器服务会成为历史。


Docker的未来在哪里呢?其实很难预测未来的方式。但是在IT产业界,两个原则是永远不变的。


简单的东西,永远是最有生命力的。


客户永远只会关注他的业务,不会关心除此之外的任何东西。

Docker只要不停地让客户使用或者维护IT系统越来越简单,永远只需要关心自己的业务,而不必费心其他的东西。我相信这就是它未来的方向。


后记


麦克莱恩发明了集装箱,并且在此基础上,建立了一个庞大的商业帝国。但是,很可惜,在上世纪80年代却破产了,其实他并没有犯什么大的错误,就是跑 慢了。当一股浪潮来临时,只有在浪尖上的一群人,才能迸射出绚丽的浪花。落后于浪潮的人,则很快被新的浪花所掩盖。2001年,当这个老人逝世时,全世界 所有的集装箱货船同一时刻拉响了汽笛。给予这位老人已最崇高的敬意。


若干年后,或许Docker公司已不存在,但是它所带来的思想,会流传更久的时间。我们同样期待看到业界对它以及那群天才所创造的一切,致以相同的敬意。


作者简介

刘永峰 腾讯云高级产品经理,Docker布道师,2011年加入腾讯,近十年的研发以及产品经验。曾负责过流媒体服务器架构设计、操作系统性能优化、云监控系统 架构设计等相关技术研发工作,以及基础云、云监控、游戏云相关的产品设计工作,在技术和产品领域具有丰富的行业经验。目前主要关注领域包括企业云化趋势、 基于云端的系统架构实践、Docker技术的发展以及在云计算领域的应用。

内容来源:InfoQ

http://www.infoq.com/cn/articles/will-docker-be-the-box-that-change-the-world




关于BoCloud博云

BoCloud博云(苏州博纳讯动软件有限公司,www.bocloud.com.cn),为企业级客户提供专业的云计算服务,以智能化云运维、云化IT架构和传统应用的 互联网化,运用最新的容器技术,协助企业完成IT系统云架构的实施和运维,帮助行业客户降低成本、提升效率、简化运维、提高系统可靠性和安全性。

BoCloud博云在包括IaaS/PaaS/运维自动化等云计算核心技术方面拥有多项自主知识产权。公司自主研发的多项软件产品,包括私有云产品 BeyondSphere、企业级容器管理平台BeyondContainer、数据中心自动化运维产品BeyondBSM等,已在金融、电力、政务、 IDC等行业领域的生产系统中落地实施。BoCloud博云已经为国有电力公司、股份制银行、支付机构等大型企业的重要生产系统提供了基于Docker的 PaaS平台的云计算服务。

BoCloud博云总部位于苏州工业园区,是国家高新技术企业,在北京、上海分别设立了研发中心与解决方案中心。

 
博云 更多文章 聊聊代码 | 如何使用一个IP搭建ES集群--Docker如你所愿 聊聊代码 | 基于Nginx搭建一个安全的、快速的微服务架构 聊聊代码 | 容器网络插件 Calico 与 Contiv Netplugin深入比较 BoCloud博云CTO受邀参加GOPS2016北京站 分享场景化运维技术经验 译文 | Spring Cloud vs. Kubernetes哪个部署微服务更好?
猜您喜欢 谁统治了我们的手机? IntelliJ IDEA插件自动生成单元测试代码 在 Google 到底能学到啥? Android JavaPoet 动态生成Java源码(1) 如何检查列表中的值是否存在文件每行中?