**本文来源:Ghostcloud翻译(http://www.ghostcloud.cn/)**
身处IT行业,稍有经验的人都会对各种模式深有感触。一项技术从创始到成熟再到企业级的推广采用,往往遵循着一定的规律。以亚马逊AWS服务为例,早在2009年我就指出过,亚马逊云其实就是另一种形式的VMware,所以AWS的发展肯定会走VMware同样的路子。对于企业来说,一开始都会把AWS当做测试和开发环境,要经过一段时间的使用之后,才会逐渐把生产环境迁移到AWS。
我管这种发展路线叫“VMware模式”,一般而言,新技术都不可能刚刚问世就达到非常成熟的地步,一来就投入生产环境中运行。所有的技术肯定都是一步一步发展起来的,先设法进入大家的视线,让用户进行试用,然后才能逐渐取代原有技术,独挑大梁。Docker也不例外,但是与其他技术不同的是,Docker这一路发展的速度非常之快,势头锐不可挡。
话说回来,亚马逊实际上还不仅仅是标准的云服务提供商,它其实是综合型的服务提供商。正所谓不积跬步,无以至千里,亚马逊之所以能够成为云计算领域的行业老大,正是因为整个公司踏踏实实走好了每一步。
亚马逊注重服务的简洁性,而Docker却更注重便捷性。目前Docker的发展非常火爆,究其原因,其实不过几个字:以开发人员为主导的推广路线。正如Andrew Clay Shafer所说的那样,“Docker就是开发人员的兴奋剂”。
我还从没见过有哪项技术的普及速度像Docker这么快的。Docker以镜像为基础,将代码、运行时库、系统工具等等都打包到容器中,相当于在一个镜像里封装了应用所需的整个环境,实现了应用的一次开发,多次部署。从理论上来讲,我们甚至可以将本机上开发的应用部署到任意服务器上。与虚拟机不同的是,容器只是包含了应用及其依赖项,但并不包括操作系统,容器本身只是一个共享宿主机操作系统内核的进程。作为一种高效的开发模型,容器完美契合了持续集成、微服务架构等时下非常流行的开发思想,这也是Docker技术大受欢迎的原因之一。
Docker的大热引出了一个根本问题:对于基础设施而言,到底该以什么作为基础单元?在部分情况下,基础设施服务的基本单位可以使服务器,这种情况下应用是基于特定的物理机开发的,部署也是在这台物理机上进行。近年来,基础设施的基本单位已不再是物理机,而是虚拟出的物理资源。不管我们是参照亚马逊的做法来虚拟物理资源,还是仿照VMware的方式提供虚拟机服务,其实都是对服务器的虚拟,无论是虚拟硬件、虚拟网络接口还是操作系统实例,都只是服务器的一部分。
但容器技术,尤其是Docker,则是完全不一样的概念。Docker并不虚拟操作系统以及底层的任何资源,在Docker模式下,这些资源是共享的,就跟数据中心没什么两样。容器的基本组成部分是应用,换句话说,只有应用才是真正的基本元素。
在基础设施碎片化等目前比较流行的思潮中,我最看好的还是Docker,因为只有Docker才最适合当前IT领域的形势,而且也只有Docker才最贴近开发人员的需求。相信在不久的将来,整个IT行业的运转都会因为Docker而发生翻天覆地的变化,就像当年VMware掀起的虚拟化运动一样。
对企业而言,如何在更短的时间内提供更多的数字化服务直接决定了企业的盈利空间,然而要实现这一点,就要求企业提高开发的敏捷性,并不断采用更新的技术。这正是Docker的切入点。现在持续部署的时代已经来临,而开发/测试环节又是支撑整个部署工作流的基础。在整个产品生命周期内,企业要不断地进行测试、重构,在这种情况下,通用性就比可重用性重要得多了。
Docker可不只是开发人员的最爱,实际上Docker的野心远不止于此。Docker志在成为Cloud Native的产品环境,虽然目前还只是一种开源的容器技术,但今后Docker肯定会成为企业首选的虚拟计算资源。虽然从开发坏境转变成企业级生产环境需要一些时间,但以前也不是没有过先例,比如说MySQL,Mongo,还有Spring,甚至是Oracle,这些优秀的产品都曾经历过这一过程,因为自动化、备份、合规性、日志、监控、网络、调度、存储管理、编排、安全性和软件工程的可靠性并不是一朝一夕就能实现的。
现在已经有很多企业在开发相关工具,为Docker在生产环境中的应用提供支持,比如ClusterHQ、 Datadog、Rancher Labs、Server Density、Sysdig、 Treasure Data 和 Weaveworks等等,已经形成了一个Docker工具生态圈。此外Docker还吸引了很多铁杆用户,如AppDynamics、CloudBees 和New Relic这些都是Docker的追随者。当然,像Amazon Web Services、 IBM、 Microsoft、 Oracle、Pivotal等服务商也不甘落后,都纷纷向Docker伸出了橄榄枝,希望能将Docker集成到自己的产品服务中,并加以改进。Docker也有竞争对手,比如谷歌的Kubernetes就在虎视眈眈地盯着庞大的市场份额,发展过程中遇到各种阻碍总是难免的。
虽然Docker也没打算占尽风头,但在不久的将来,Docker必将成为整个行业生产环境平台的标准,这就是我要表达的意思,Docker的发展路线已经显明,Docker模式已经兴起。