BT

QCon上海第一天主题演讲:容器化的云

作者 杨赛 发布于 2014年10月16日 | 被首富的“一个亿”刷屏?不如定个小目标,先把握住QCon上海的优惠吧!

本文根据Chris Swan在2014年QCon上海大会的主题演讲《容器化的云》整理而成。在这次分享中,Chris阐述了从“容器技术”到“容器化的云”之间的差距,容器化对云计算领域的经济影响,以及容器的运维管理现状。

演讲者简介

Chris Swan,CohesiveFT公司CTO,CohesiveFT是一家成立于2006年的云网络公司,Chris Swan于2013年年初加入CohesiveFT。

Chris Swan之前在UBS(瑞士联合银行集团,简称瑞银集团)承担CTO角色,并曾经代表银行担任开放数据中心联盟指导委员会主任。在加入UBS之前,他在一家伦敦的投资银行——精品资本SCF担任CTO。Chris之前在瑞士信贷(Credit Suisse)主导过大量的高级研发、架构和工程定位工作,包括网络、安全、数据中心自动化和新应用平台的引进等。

在加入金融服务行业之前,Chris曾在英国皇家海军作战系统担任工程军官,他拥有工商管理硕士学位和约克大学的OUBS电子工程学士学位。

Chris是一个敏锐的制造者和黑客,他在伦敦和布莱顿等地的开源硬件、Raspberry Pi 、物联网社区非常活跃。他还是一些伦敦的科技和初期创业公司的顾问,也是InfoQ的云专栏的编辑。2014年的QCon上海是Chris Swan第七次参与的QCon大会,也是他第一次在国内的QCon上演讲。

容器(containers)的现状

容器是一项历史悠久的技术,应用其实也已经相当广泛。像是Wordpress、Drupal、Joomla这些网站托管服务,以及早年VPS服务当中的OpenVZ主机,之所以能够提供相对廉价的服务,背后都有容器技术的支持。Google可以说从2006年开始一直大力推动容器技术的应用,现在Google的容器实例增长速度超过了每周20亿个;Google甚至会在容器当中跑虚机,在容器中的虚机里面再跑容器。

但是,Docker的出现,给容器的世界带来了深刻的改变。它并非对容器技术本身进行变革,但无论是IBM AIX上的LPAR,还是Linux Containers的技术,这些东西都仅仅是运行时。Docker跟它们最大的不同在于,Docker是由构建(build)-交付(ship)-运行(run)这三部分组成的——构建与交付是跟运行时同等重要的事情(如果不是更重要的话)。

在以前,你想要在一个地方开发构建,然后把构建好的东西运到另一个地方运行,是一件很困难的事情。即使是虚拟机,也没有很好的解决这种“工作负载可移植性”的问题。但是一个docker file则是这样的一个东西:我们可以把一个地方构建的输出弄成一个镜像,把这个镜像挪到另一个地方,然后让这个镜像在新的地方运行。Docker Hub可以说是docker体系的整个生态系统,你可以用任意工具和流程生成docker文件镜像,把镜像传输/交付到Docker Hub,然后运行。

这整个过程非常简单。比如我最近在玩WRTnode这个东西,要获取WRTnode的SDK,只需要很简单的一行docker run命令即可。

这种docker镜像有点像是瓶装饮料一样,就好比我们想喝啤酒,不需要自己去酿酒,只要拉开易拉罐就行。有了docker镜像,你无需再去摆弄各种各样的工具链和SDK,只需“拉开易拉罐”即可,因此我也将其称之为“瓶装的软件”。

一个量级的优势

容器技术相比虚拟机,其性能优势可以说达到了一个量级的差距。根据Boden Russell在OpenStack上做的一次基准测试报告,一个KVM实例的平均内存消耗有292MB,而一个docker实例的平均内存消耗在49MB左右。在CPU overhead和启动时间方面,docker基本都比KVM有一个量级的优势。

目前,一个AWS上的micro实例,每小时的按需使用成本大约在一美分多一些。如果用docker来提供实例,那么每小时的按需使用成本很可能会做到0.1美分。这一点对于云经济至关重要。正如经济学家William Stanley Jevons的理论所呈现的,随着商品的价格越便宜,人们使用它们的场景和频率会越来越多。

容器的局限性

既然容器技术有如此大的优势,为什么基于容器的云现在还没有成为主流?我认为主要还是安全性的问题。虚拟机可以利用来自硬件的信任机制来提升安全性,这些机制在Intel Virtualization Technology Evolution的演示中有详细的介绍。即使如此,虚拟机仍然被视为相对不安全,比如前一段时间Xen爆出一个漏洞,导致AWS不得不大量升级自己的主机。

即使是虚拟机也仍然有被攻破权限的危险,而现在的容器,虽然名为“容器”,但从安全的角度其实几乎算不上有什么隔离性了。

基于容器的PaaS现状

Docker流行起来之后,我们很快看到一些相关的PaaS服务冒出来,如Deis、Octohost、Dokku和Flynn等。另外像是CloudCredo、Apcera Continuum、Bosh、Cloud Foundry的工作也对Docker生态产生了促进作用。

PaaS这个东西有点被过度概念化,不同的观点都掺乎在里面。但以往来说,无论哪种PaaS都意味着开发者被迫使用特定的语言、特定的框架去开发他们的应用,而开发者不喜欢受限。

我认为Docker实质上可能是“反PaaS”的,它将可能让我们脱离PaaS的种种技术选择限制。我认为PaaS的实质是有关运维性——它实际上提供的是将部署、监控、扩容、资源管理简化的能力。

Docker的运维管理(编排,orchestration)

我在前一段时间的DockerCon上看到Brad Rydzewski的一条推文,很有意思,上面是这么说的:

在DockerCon上我学习到了一件事实:所有人都在构建自己的编排平台。千真万确。所有的人。

的确,DockerCon上每一家公司都分享他们自己做的一些编排工具,比如Twitter发起的Apache Mesos,来自Facebook的Tupperware,以及Google的Kubernetes。我自己更看好Kubernetes这个项目,现在微软Azure和IBM Softlayer也都在参与这个项目了。

总结

我希望大家会后考虑一下,对于这个容器化的云你会做些什么?如何利用它的优势,做一些你之前没有办法做的事情?容器是有很多年的技术,但是现在这个容器化的云是不一样的东西,未来会被更多的使用。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

PaaS这个东西有点被过度概念化 by Wong Peter

PaaS的实质是有关运维性——它实际上提供的是将部署、监控、扩容、资源管理简化的能力。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论
提供反馈
错误报告
商务合作
内容合作
Marketing
InfoQ.com及所有内容,版权所有 © 2006-2016 C4Media Inc. InfoQ.com 服务器由 Contegix提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司 京ICP备09022563号-7 隐私政策
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.