下一代云计算模式:Docker正掀起个性化商业革命
文/ITValue 记者吴宁川
从 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 月就涌现了 10330 起并购或收购,共代表了 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 和虚拟机的优点。