在云计算产业界,一场由一个技术掀起的革命正在悄悄上演:名不见经传的小公司横插进IT大佬构筑的云生态产业链,各路IT企业纷纷拥抱该技术并接纳该公司,云计算的构建方式和实施方式也即将发生或多或少的改变。这个技术就是Docker,这个公司便是dotCloud。
DotCloud本是家新创业小公司,基本无事可表,而其无心发掘的一个技术Docker,却在技术圈和业界受到广泛关注。
易上手的开源容器技术Docker
Docker的魅力是让大家看到了软件行业全面走向服务化的趋势,很可能提高IT应用各个环节10%~30%的整体效率。
Docker是一个开源项目,诞生于2013年年初,最初是dotCloud公司内部的一个业余项目,它基于谷歌推出的Go语言实现。
Docker以Linux容器LXC为基础,实现轻量级的操作系统虚拟化解决方案。在LXC的基础上Docker进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单。
简单来说,Docker是一种容器技术。青云(QingCloud)系统工程师杨锦涛向《中国电子报》记者介绍,Docker本质上是一个上层管理工具,是对Linux内核的各命名空间、网络、cgroup和安全等方面项目的调用与整合,并暴露了一个不错的管理接口。其本身并不复杂,复杂性在于更底层的Linux内核、网络和安全方面。而Docker的魅力从服务角度来说,是它让大家看到了一种可能或者一种趋势,即软件行业全面走向服务化的趋势。Docker生态圈里已有的丰富的Image才是Docker真正的价值所在。
云栈科技副总裁石海旭认为,Docker目前的影响主要集中在两方面,一方面是从IT基础架构方面来讲,Docker提供了轻量/快速/可移植性更好的虚拟化方案,这就为进一步释放IT生产力/特别是释放计算能力提供了可能性;另一方面,Docker可能会深刻影响到目前各种IT应用的整个生命周期,包括开发、测试、部署、维护等各个环节。如果理想的话,Docker很有可能***限度地提高IT应用的各个环节的效率。例如,10%~30%的整体的效率提升是有可能的,换个角度,这也就意味着10%~30%的成本节约。
目前,一些业内人士提出可以将容器作为服务提供的观点(CAAS,Containers as a Service),也有一些新兴公司在尝试CAAS。简单点说,CAAS有些类似IAAS,但IAAS提供虚拟机,CAAS则在IAAS之上提供容器。石海旭认为,CAAS为跨IAAS平台实现动态调度容器、移动容器提供了可能性。即某种程度上用户不再需要关心他的容器到底是运行在AWS还是阿里云或者私有云上,因为CAAS服务商将提供自动化或者定制化的服务帮助用户进行资源调配,帮助客户选择最适合的云平台。
各大IT巨头拥抱Docker
知名的云计算公司以及软件、操作系统、系统集成厂商、配置管理软件、大数据厂商以及开源软件都在向Docker靠拢。
在2014年1年的时间里,Docker的生态系统发展迅猛,知名的云计算公司以及软件、操作系统、系统集成厂商、配置管理软件、大数据厂商以及开源软件都在向Docker靠拢,不管在哪个领域,Docker都在渗入和影响现有的体系。
亚马逊AWS在去年11月的亚马逊大会上推出了Amazon EC2 Container服务,支持Docker。用户可在托管的EC2实例集群上轻松地发布、管理和扩展从1个到数十万个容器,而之前想达到这个效果用户只能自己开发软件或使用开源工具。亚马逊是***个将Docker应用于公有云集群服务的厂商。
另外,微软也称将在下一个版本的Windows Server中支持Docker,虽然微软早在之前就开发了自己的容器技术,但是却在自己的Server里选择了支持Docker。
回到国内的公有云服务企业,阿里云曾在去年10月在自己的博客上透露,用户可以使用阿里云云服务器(ECS)部署Docker容器应用,在ECS上把应用打包成Docker镜像、运行Docker容器,从阿里云提供的镜像库中快速下载官方镜像,或者部署自己的私有镜像库。不过,《中国电子报》记者就此求证阿里云时,其内部人员表示阿里云其实只是表面支持了下Docker,并没有深入使用。
杨锦涛透露,青云预计将在今年年中支持Docker。“从产品的角度来说,我们首先强力支持用户在我们的IaaS平台上基于容器技术提供服务(我们已经有很多这样的用户),其次我们自己也会在容器方面做工作,比如会提供支持Docker的Image、Docker Cluster服务,甚至会考虑自己开发且运营Docker cluster。”他说。
而UCloud目前也已经将Docker用到产品中去。UCloud主机开发部经理叶理灯告诉《中国电子报》记者,分布式数据处理UDDP和数据库UDB中应用了Docker,公司内部业务也将逐步Docker化。他认为,将内部业务通过Docker打包,便于快速部署,运行时节省资源,特别适合将重复性的服务进行快速扩展。
不过,相对云服务企业和互联网企业,绝大部分公司对Docker的使用还停留在观望状态,并且将Docker应用于生产环境的公司少之又少。
若不再开源Docker去向难料
有人认为其***颠覆性,也有人表示其仅是云生态的一部分。
对于Docker的影响力,业界公认其是近年来发展最快的用于云计算的技术之一,有人认为其***颠覆性,也有人表示其仅是云生态的一部分。
例如微软、亚马逊、谷歌、IBM、Facebook、Twitter、红帽以及公有云和混合云服务商Rackspace、SaaS服务商Salesforce等诸多公司都十分乐意接纳并谈论Docker技术,还在自己的产品中集成Docker。事实上,Docker仅仅是从2014年才起步,仅1年的时间就获得了诸多IT巨头的认可,这和其技术的领先性和开源策略分不开。
不过,最近一段时间Docker的创始公司dotCloud似乎有意将这个开源项目转向闭源。2014年11月当另一个开源项目团队CoreOS发布了自己的容器引擎Rocket时,他们指责Docker已忘初心。杨锦涛对《中国电子报》记者坦言,Docker目前走的路其实和当年的虚拟化技术XEN看起来很像,XEN最初是完全开源的项目,后来他们开始发现事情不大对,“I need to make money”,然后就开始两条腿走路,一方面继续开源,另一方面在管理层面的项目走闭源,后来整个XEN项目走着走着就基本走死了。
而且,杨锦涛表示,容器技术相对虚拟化技术要简单得多,这意味着容器技术很可能不会像虚拟化项目那样凤毛麟角。前段时间除了CoreOS推出的Rocket之外,还有VMWare的CloudFoudry、红帽的Openshift、谷歌的Imctfy等等,都是容器技术,这些公司的技术,都会与Docker竞争。青云对Docker项目的态度是关注且持谨慎态度的,甚至青云也会做自己的容器项目。
另外,Docker也有不足。叶理灯告诉《中国电子报》记者,由于Docker现阶段的隔离还不是特别完全,出于安全性的考虑,直接运行在物理机上的Docker产品还不能替代现在的虚拟机产品向公众推出。但在私有云产品上,UCloud看好Docker产品的进一步发展。
微观点
好评
@MES哥:据我的理解,虽然我还不是特别理解Docker的原理,但我觉得它在系统自动化运维方面开启了新的篇章,空间很大。我也希望能够在运维方面掌握这门技术。
@创业者马钧:Docker刚出来的时候就关注过,只是当时还太简陋,缺少很多功能,因此选择了Vagrant。最近回过头来,重新拾起Docker,发现不管是系统本身,还是社区生态,都有了巨大的提升。这几天使用下来,发现能有效提升工作效率,原来很多繁琐的安装步骤,现在直接一行命令,下载并运行就可以搞定。
@巩小东-gordon:Coreos用ext4+overlayfs替换了btrfs,感觉这公司舍不得投基础设施,走回头路。和Docker竞争,不看好。
@蒋涛CSDN:拜访Docker,2014年最红的技术公司!从PaaS转型到Container大获成功,小团队开创的新技术,获得amazon、google、微软、vmware全力支持,2015会更加红火。
@狮巴达克诗:Docker做云效果很好,就是技术太新了,变化太快。
差评
@itudoumao:Docker安装过几次,也成功运行过一次,但感觉像个半残品似的,想要在企业里用,估计还得要一段时间。有人说Vmware与Docker结合会更棒,现在像这种容器,市面上还是有些产品的,希望越来越好。
@群猩2014:我目前感觉Docker使用的难点有:一是Docker内部和真正的linux还是有一定差距的,比如mount之类,实现时需要解决这些小麻烦,二是网络设置问题目前没太好的简单解决方案,隔离程度不如传统VM那么方便。
@雨吁的嘘:在Windows使用Docker仍是一个非常糟糕的体验。虚拟机经常在初始化时停住了,应该是VirtualBox的问题。
@谢瑞璇:Docker难点就是每次操作只能针对单个容器或镜像,枯燥呆板,命令行参数还特别多、特别长,并且特别难记。
观望
@LUPA开源社区:CoreOS在发布Rocket时曾指出,有些人需要更“纯净”的容器。换句话说,Rocket是“App Container Specification”的标准实现。
@peter_cz_peng:Docker如何解决多个相同服务的隔离,如何利用相同的物理硬件提供比虚拟机更好的性能和效率,是我当前认为***的问题。
@marks72:我的感觉是,VM更加瘦身、轻便了。难点是这仍然是一个发展待成熟的系统,不敢用到核心生产应用上。
@罗比陈:互联网金融平台与Docker的必然关系:1.降低运营成本,一台服务器成本7万~8万,怎么***限度压榨服务器的产出。2.金融平台组件复杂,业务特点不允许出现服务中断,怎样保证业务的强连续性。3.技术驱动的公司需要***的技术人员,***的技术人员喜欢***的技术。
@i劉Z:刚出来的时候草草看了一下,功能太low,不知道现在发展怎么样,听介绍感觉在各种环境部署上省去了麻烦,Coreos感觉略坑。Docker必须要有3x内核,所以Centos6不用想了,能满足复合内核要求,又不用重装机器,又是在生产环境一般的条件下,就只能运用在ubuntu系统里了。
@小小小小玄:KVM让作业系统与硬件解耦;而Docker让整个应用环境和平台解耦。
@天蓝99345:好像有点明白了,Docker 通过不仅仅打包应用程序,也打包应用程序的依赖环境来解决这个问题。
原文链接:http://epaper.cena.com.cn/content/2015-01/20/content_251464.htm