从2008年开始进入公众视野,到亚马逊与微软于近期获得1亿美元的美国联邦管理局云计算合同,云计算整整走过了7年。7年间,以第一代云计算技术为基础的移动计算、社交网络、大数据等新信息技术在全球商业领域掀起了一场新商业运动,这场商业运动创造出以消费者和用户为核心的个性化商业模式。
从去年开始席卷云计算领域的Docker技术风潮,恰恰就是推动企业走近消费者和用户的一大步。本文通过深入分析,带你了解什么是Docker以及Docker将如何改变云计算,进而孵化出能够工业化生产个性化产品与服务的下一代商业模式。
什么是Docker?
答案是:Docker是下一代的云计算模式。
Docker翻译成中文是“码头搬运工”的意思,那么“码头搬运工”搬运的是什么?是标准化的“集装箱”,这个标准化“集装箱”里装的是应用程序。“码头搬运工”在世界上任何提供了标准化接驳的“码头”就可以接收标准化“集装箱”,然后快速安装、运行和管理“集装箱”里的应用程序,而提供标准化接驳“码头”的就是各类云服务商。借此,Docker把云计算环境下的应用程序开发和分发带进了工业化生产的时代,这就是Docker的意义。
在Docker环境下,程序开发者按一定的打包标准生产程序,生产出来的标准化程序被装进标准化的容器(Container)里,也就是“集装箱”。世界各国的云服务商都提供了标准化的“码头”,可以很容易地接收标准化的容器和里面的应用程序,再把这些标准化的应用程序以即插即用的方式组装到自己的个性化解决方案里,然后提供给最终用户。而与Docker“集装箱”对应的标准化程序架构,就是大家所熟悉的微服务。
在Docker时代,第一代云计算中的IaaS层与PaaS层合二为一成为了CaaS(Container-as-a-Service,即容器即服务),这就是下一代云计算架构。基于CaaS的下一代云计算架构赋予了企业强大的工业化生产通用软件的能力,再根据消费者和用户的个性化需求,快速组装通用软件形成个性化的解决方案,这就是下一代的商业模式。
容器时代的开拓者们
根据美国市场调查公司Synergy Research于2015年7月发布的Q2数据,全球云服务市场如今已经牢牢被四大厂商所垄断,AWS亚马逊云、微软、IBM和谷歌占据全球54%的云服务市场份额,而四大厂商的平均云计算业务年增长高达84%,相比之下市场上其它云计算厂商只有33%的年增长。其中AWS亚马逊云在今年第二季创造了18.2亿美元的营收,同比增长81%;而微软已经向其全球数据中心投入了150亿美元。显然,作为第一代云计算产业中的四大厂商,特别是谷歌、亚马逊和微软三大公有云已经远远将其它云服务商甩到了后面,而这三家自有的海量资金及融资能力则牢牢地建立起了第一代公有云的市场格局。
2014年和2015年初,第一代主流公有云服务商核心技术团队中的华人技术专家开始不约而同地离开原来的公司,纷纷回到国内创业容器/Docker领域。这其中包括来自微软Windows Azure核心技术团队的灵雀云、来自谷歌广告业务核心技术部门的数人云、来自EMC和VMware核心技术团队的DaoCloud道客云、来自IBM Bluemix和阿里云盾核心技术团队的时速云,以及来自中国移动研究院云计算技术团队的Hyper云。
这批创业公司的共同特点是创始人均来自第一代公有云核心技术团队,他们一方面发现了容器/Docker是下一代云计算的主流趋势,另一方面他们离开原有公司也是因为第一代公有云已经基本成熟。“为什么说云计算人才都在西雅图?这是因为谷歌、亚马逊云和微软都在西雅图,而云计算的技术能力主要来自运维的经验,具有运维百万台以上服务器经验的技术人才只有谷歌、亚马逊云和微软三家而已。”灵雀云创始人、原微软Windows Azure美国核心技术团队容器项目负责人左玥如是表示。灵雀云联合创始人、CTO陈恺也来自美国微软Windows Azure核心技术团队并曾负责Windows Azure的全球调度系统Fabric Controller,陈恺经历了Windows Azure从无到有、从几百台服务器到如今百万台服务器的全过程。
另一家数人云的创始人王璞来自美国谷歌广告业务部门核心技术团队,他告诉记者全球公有服务商中拥有服务器数量第一的是谷歌,成立于1998年的谷歌在全球运维着上千万台服务器;其次是AWS亚马逊云和微软Windows Azure,他们各自拥有和运维着数百万台服务器;再次是IBM SoftLayer拥有和运维着数十万台服务器;最后是各个国家的区域性公有云服务商,拥有和运维着从数百台到数千台不等的服务器,从运维服务器的规模就能直接判断公有云服务商的运维经验和技术水平。
进化到容器时代
容器(Container)是什么?这必须提到一个人和一家公司。
这一个人就是著名的微软第二任也是最后一任首席架构师Ray Ozzie。2005年10月,刚加入微软不久的Ray Ozzie发布了一份名为“The Internet Services Disruption”(互联网服务时代来临)的备忘录,这份备忘录的主要目的是推动微软整体向互联网服务转型。在这篇文章中,Ray Ozzie提出著名的由面向服务软件架构所实现的“无缝用户体验”,并将之解析为 “无缝沟通”、“无缝生产力”、“无缝娱乐”、“无缝市场”、“无缝操作系统”、“无缝解决方案”和“无缝IT”,这其中的核心就是“无缝操作系统”、“无缝解决方案”和“无缝IT”。
在“无缝操作系统”、“无缝解决方案”和“无缝IT”实践方面,谷歌是一个先行者。著名的博主、原亚马逊中国研发经理、阿里巴巴资深专家陈皓有一个形象的比喻,云计算“就是要夏利车开出奔驰车的感觉”。谷歌就是把“夏利车开出奔驰车”的骨灰级玩家,说它是互联网公司和互联网技术的鼻祖都当之无愧。王璞介绍说谷歌在全球运维了上千万台的服务器,这个规模已经远远超出了很多现有技术供应商的上限,因此谷歌自己发明了诸多技术用于管理千万台规模服务器,“比如谷歌研发了顶级的网络交换机,就连思科都造不出来这样的网络交换机。原因很简单,因为没有相应的实验环境。”谷歌自1998年成立至今已经研发和储备了很多“核弹级技术”,但这些技术绝大多数都被谷歌封锁,只能通过谷歌对外发表的学术论文找到蛛丝马迹。
谷歌为了避免使用市面上昂贵的基于物理机的虚拟化产品,同时也是为了更快、更便宜的发布自己的软件和服务,从一开始就研发了基于容器(Container)的新型虚拟化技术,通过这一技术简化了谷歌全部服务运行所需要的底层操作系统环境。在2015年8月的CNUTCon全球容器技术大会上,有超过8年谷歌经验的谷歌云平台软件工程师Dawn Chen介绍说,她8年半前加入谷歌的时候,那个时候谷歌刚开始研发容器技术,当时谷歌容器技术团队加上她只有两个人。如今谷歌所有的服务都运行在容器中,这包括了Gmail、地图、GFS文件系统、MapReduce等。谷歌现在每秒会启动大约7000个容器,每周会发布超过20亿个容器。
谷歌实际上通过容器实现了“无缝操作系统”的愿景。稍微了解云计算的人都知道虚拟机在IaaS层的重要性,改变了虚拟机的方式就相当于改变了IaaS层的结构,这就是为什么说容器是下一代云计算模式的重要原因。容器本质上是一种操作系统技术,是基于操作系统的虚拟化技术。基于容器开发的应用软件可以达到“一处开发、处处运行”的效果,而无关乎底层到底是什么样的操作系统或什么样的IaaS云服务环境,这实际上就是“无缝操作系统”的概念,与之相适应的就是“无缝解决方案”和“无缝IT”。
Docker一统江湖容器
Container与Docker是两个英文单词,Docker相当于是标准化了的容器,是容器技术近30多年历史发展出的最新结果。
作为操作系统级的虚拟化技术,容器技术本身的历史最早可以追溯到1982年。当时Unix推出的Chroot技术被公认为操作系统级虚拟化的起源,也就是容器技术最早的状态。随后,操作系统虚拟化技术与Linux内核及Linux操作系统的发展就交织在一起。因为操作系统虚拟化主要是针对廉价的X86服务器,因此英特尔和AMD服务器芯片技术的发展也影响了容器技术的发展。
1991年,芬兰赫尔辛基大学研究生Linus Torvalds开发了针对386机器的Linux内核。在Linux内核的基础上,不同的厂商开发了商用化的Linux操作系统。1995年1月RedHat成立了,推出了RedHat Linux即为Linux“发行版”。随后,Linux内核不断更新,一直到2007年的时候,发展比较成熟的容器技术才进入了Linux内核,而这还要利益于2005年前后英特尔和AMD相继推出的64位服务器芯片。正因为有了CPU和内存芯片容量的大幅提升,才能在一个操作系统中虚拟出多个空间。2008年的时候,LXC也就是Linux容器开源项目成立,容器技术开始在业界广泛使用,而这一年微软也推出了第一代Windows Azure公有云。
2010年,一家叫作dotCloud的创业公司在美国成立了,dotCloud早期是基于LXC技术的PaaS平台,它的理念是提供跨底层IaaS云、支持多种开发语言的开发云平台。2011年初的时候,dotCloud获得了1000万美元的A轮融资。DotCloud 最早运行在AWS的EC2上,但随着越来越多的公有云服务商进入,dotCloud的理念很难依靠一家公司专有的技术实现。于是,dotCloud的创始人在LXC的基础上,对容器技术进行了简化和标准化,命名为Docker后将其开源,同时推出了开放容器计划(OCI),Docker和Docker开源社区随后迅速火起来。2013年10月29日,dotCloud公司更名为Docker公司。随后,多家厂商开始宣布支持Docker。截止到2015年8月,公共的容器包应用程序Registry(由Docker维护)在公共社区发行了超过180 000个应用程序。
可以说X86架构的PC服务器是异构硬件架构的赢家,Linux和Windows是异构操作系统的赢家,Docker为基于X86服务器和Linux/Windows操作系统的云数据中心提供了统一的虚拟操作系统,异构架构时代开始结束。
容器时代已经到来
除了创业公司外,大厂商也不甘示弱,纷纷快速跟进。去年10月份,微软就宣布了在Windows服务器实现容器技术的计划,宣布了与Docker的合作伙伴关系,以保证无论是在Linux还是在Windows Server,都可以获得一个统一、开放的体验。尽管Linux容器与Windows容器基于不同的操作系统而互不兼容,但容器管理器是统一的。近期,微软进一步宣布将针对Windows Server 2016发布Windows Server容器和Hyper-V容器,两种容器都支持Docker API和Docker客户端。
另一家受Docker冲击比较大的VMWare也迫不急待的在VMWare World 2014上就宣布了对Docker的支持。VMware对容器的态度是积极的,尽管容器和基于物理机的虚拟机VM之间存在着竞争,但VMware仍然致力于扩大与容器生态合作。在2015年8月底的VMWare World 2015大会上,VMware推出了一系列新的支持Docker的技术,并提出了未来全新的全面支持容器的技术架构,让Docker程序也能运行在虚拟机VM里了。
此外,AWS亚马逊云从去年11月推出了EC2容器服务AWS ECS,用户不再需要安装、运维、扩展集群管理基础设施,而只需进行简单的 API 调用就可以启动和停止支持 Docker 应用程序,随后阿里云等国内云厂商也推出了类似的服务。
国内华为一直是各类开源项目、基金会、组织、峰会的活跃赞助商。2015年,华为作为创始成员相继加入开放容器标准组织OCI及CNCF(Cloud Native Computing Foundation),成为唯一在列的中国公司。华为开源能力中心的高级研发工程师梁辰晔在2015 CNUT全球容器大会上表示,华为积极参与了开放容器测试项目(OCT),并与OCI组织一起促进开放容器标准的实现和普及。2015年至今,华为在Docker社区的贡献排名稳居前三位,而目前国内最早的Docker社区maintainer就来自华为。
除了华为、阿里等国内云服务商外,腾讯、百度、阿里、360、京东、搜狐等国内互联网公司从2011年开始就已经开始全面实践容器技术了。据京东云平台首席架构师刘海峰在2015 CNUT全球容器大会上的介绍,京东从2014年10月开始引入Docker,2015年2月对Docker进行战略立项,2015年618的时候在生产环境中发布了11000多个容器实例并接入了1000多个应用,从2015年8月开始的新数据中心全面采用容器技术。目前京东已上线Docker实例2万多,预计到年底将翻番,届时京东大部分应用程序将通过Docker的方式发布。未来京东的Docker愿景是通过Docker管理所有的机器,应用程序与物理资源之间完全解耦,实现全自动化的系统维护,研发人员可以集中精力于新应用程序的开发。
说了这么多,其实对于容器贡献最大的还是谷歌。Docker技术就是用谷歌的Go语言编写的,这是谷歌2009发布的第二款开源编程语言。谷歌每周发布2亿多的容器,这让谷歌有能力发明很多关键性的容器技术。其中包括容器管理系统,这个管理系统的第一个版本被称为Borg,后续又发布了名为Omega的版本。通过这个管理系统,可以在谷歌的大规模集群资源上使用容器技术。后来业界根据谷歌的相关学术论文,模仿Borg开发出来的Mesos系统,正在被Airbnb、Twitter、苹果Siri等在使用。
个性化商业:未来的企业都是软件企业
财富500强艺康化工有限公司(Ecolab)董事长兼CEO Douglas M. Baker, Jr.在参与普华永道的“2015全球CEO调查报告”调研中表示:“任何一家公司都不能想当然的认为今天的业务能够保证未来的成功。人们理所当然的认为大公司更加安全也更加稳定,但过去50年的事实证明了截然相反的结果。如果企业不能持续的快速变化,风险只能增加而不是减小。”
变化的能力显然已经成为今后商业的核心竞争力。而随着互联网产业的影响力越来越庞大,互联网对于传统行业的入侵越来越剧烈、越来越深入,特别是中国“互联网+”国家战略的强力出’台,未来的二手域名转让企业将越来越被互联网化。在这样一个全面互联网化的商业环境中,未来的企业将或多或少具备软件的能力。除了未来企业的业务将部分或全面架构在互联网上,企业为消费者和用户提供个性化服务也有赖于软件能力。
如果未来的企业都是软件企业的话, Docker的重要性可想而之。硅谷老牌风投机构 Battery Vetures的技术专家Adrian Cockcroft在2015年中发布了一份《2015 年度云之白皮书:业界里程碑回顾与未来展望》,他曾是美国流媒体服务商 Netflix 的云平台架构师,也是 eBay Research Labs 的创始成员之一以及Sun Microsystems 杰出工程师和高性能技术计算部门的首席架构师。他认为,Docker会逐渐成长为标准化的生产工具,这也从一个侧面反映出 Docker的高接受度。
Adrian表示,Docker的挑战是要谨慎管理生态系统,同时快速添加功能以支持生产环境的部署。目前为止,Docker已经阻止了一次生态系统的分裂。如今,甚至连芯片厂商英特尔公司也跨界加入了Docker的生态。今年5月,英特尔推出了以容器为中心的OS项目Clear Linux,目前已处于试验阶段,英特尔表明该系统未来可用于生产环境中。
可以看出,在迈向未来商业的过程中,将出现越来越多的跨界行为。根据Thomson Reuters的数据,在美国仅2014年11月就涌现了10,330起并购或收购,共代表了1.9万亿美元的交易金额。这些并购或收购更多的是为了扩大商业联盟,通过并购或收购具有不同业务或能力的公司,创造单一公司所无法实现的商业价值。普华永道“2015全球CEO调查报告”显示,美国约有44%的CEO将在调研后的12个月内启动新的战略联盟。过去的商业联盟主要是与供应商或用户连接,而在未来越来越多的CEO将选择与竞争对手、创业公司或不同领域的公司结为联盟。
当然,包括DaoCloud核心团队成员孙宏亮在内的多个Docker技术专家都在不同场合表示,Docker还在发展的早期,存在网络功能薄弱、安全性、运行传统业务困难等挑战。正因为这些技术上的不成熟,于是在美国和中国出现了一批Docker创业公司,八仙过海、各显神通,勇于布局下一代云计算以及下一代商业。
国内较早从事容器和Docker研究的浙江大学软件工程实验室(Software Engineering Lab,SEL)云计算团队组建于2011年,专门搭建、分析和钻研开源的云计算技术。浙大SEL团队在其新出的《Docker—容器与容器云》一书中这样写道:“依靠容器技术支撑的Docker已经迅速成为国内外各大云计算厂商及开发者手中的至宝。在一片热火朝天之中,新的革命已经悄然来临。”
附录:目前在中国从事Docker创业的公司
灵雀云,创始团队成员是微软Windows Azure的元老级核心技术成员,曾主导全球第一代云计算平台研发,其CaaS容器即服务具备企业级和全球化优势;
数人云,创始团队成员来自美国谷歌的广告核心技术部门,主打Mesos+Docker的CaaS容器即服务,尽管Mesos有不少问题,但也是到目前为止成功在生产环境中应用过的管理工具;
时速云,创始团队成员来自IBM Bluemix和阿里云盾核心技术团队,其CaaS容器即服务带有对企业级私有云环境的技术优势;
DaoCloud道客云,创始团队成员来自EMC和VMware核心技术团队,其CaaS容器即服务主打混合云和持续集成;
Hyper,创始团队成员来自中国移动研究院云计算技术团队,其CaaS容器即服务主打在hypervisor虚拟机上运行Docker引擎,融合了Docker和虚拟机的优点。