2014年,Docker迅速成为业界新宠。8月份在芝加哥举行的CloudOpen大会上,Linux.com 和The New Stack公布了一项由550名从业者参与的调查结果。OpenStack 被评为最火的云开源项目,其次为Docker 和KVM。
值得注意的是OpenVZ等Container技术很早就存在了,甚至比Docker更成熟,为什么Docker发展得如此之快?一个Linux容器是怎样变得如此流行的呢?笔者首先总结了以下几个原因:
开发人员可以在15分钟内弄清楚Docker的原理,装上它并且做许多有用的事情。正如Marten Mickos讨论为什么MySQL如此成功时,曾提到的原则:操作简单,概念简单,但功能强大!Docker是一个相当棒的名称,它有一个可爱的logo,不仅显示了它的功能,还很容易被记住。很多人认为,面向工程师的项目只要产品足够好,名字和标志并不重要,但是一个好的名字更容易被采纳,并且打造成一个有价值的品牌。Docker来自创业公司dotCloud 启动的一个业余项目,却引起了整个行业的广泛参与。如果同样的产品来自大公司的话,那么Docker迎来的将不是这么多的合作伙伴,而是各种替代性的竞争对手,Container市场也将分裂为几个互相竞争的技术。
病毒性的传播速度出乎所有人的意料,也很难再出现竞争者。所以,所有人都围绕着这个Container解决方案进行合作。这对于开发者和使用者来说是有利的,但也意味着像PaaS服务供应商已经失去了选择的权利。
即使你不知道或不关心Docker是什么,但是我认为它建立了一个开发者主导的商业模式。快速传播获得大规模受众,成为行业的领导者,然后将其转化成商业价值随后获得收益。
剩下的问题是Docker做了哪些有趣的事情?它将挑战哪些公司/技术?笔者列出了以下四点:
可移植性:Docker是一个可移植的Container,容器中可以打包任意的Linux应用或服务。开发者的笔记本中运行的任何语言或框架的应用,经过打包后都可以不经修改地运行在任何公有云、私有云或裸机中,“build anythingonce, run anywhere”!高效:容器的启动时间只有1秒左右。公有云中的虚拟机启动需要几十秒到几分钟的时间,而在笔记本电脑上启动虚拟机可能需要几分钟,因为他们每次都要启动一个完整的操作系统。配置灵活:Docker容器可以获得应用程序的确切配置。更新应用程序时,只需要用新版的容器替代旧版,这一过程仅需几秒。组件的各层的配置保持隔离,很容易检查和重新生成。这使得配置管理成为了build时的工作,比如在生成Docker容器时可能需要Chef,但是运行Docker容器时,并不需要Chef服务来创建Docker容器的多个相同副本。采用这一方式,Docker许多工具像Cfengine, Puppet, Chef, Ansible 或 Saltstack等,都变得不必要了。Docker Hub应用商店:已经有成千上万的Docker容器被共享在了hub.docker.com网站上,这种方式很像GitHub。由于容器非常便携,为应用程序提供了一个非常有用的跨平台的“应用商店”,而其它“应用商店”多被绑定到一个特定的平台(例如AWS Marketplace 或Ubuntu的Juju Charms)或工具(如Chef超市)。Docker Hub很可能最终成为一个超大规模的软件组件市场,有巨大的商业潜力。
以上四点既相对独立,组合起来又能产生更大的价值。例如,有人在开始使用Docker因为它的高效和可移植性,后来逐渐发现了其在配置和应用商店方面的特性,而对Docker更加偏爱。
Docker技术仍然是相当新的,还在不断增添新功能,围绕其的相关项目和企业也如雨后春笋般出现,Docker的生态系统已然生成,这个生态中都有哪些技术值得我们关注呢?2014 Container技术大会(Container Conference 2014)将于2014年10月18日在北京举行。作为当前最炙手可热的Container技术,Docker将是本次大会最鲜明的主题之一。Docker官方和Google Kubernetes核心人员将布道中国,国内互联网企业也将首度公开其相关实践。点击【此处】报名参会!
原文链接:Why Did Docker Catch on Quickly and Why is it so Interesting?(翻译/张欣 审校/周小璐)