2016.12.22 丨 雷锋网

一个“优雅”技术人眼中,容器与虚拟化的相爱相杀

2016.12.22 丨 雷锋网

不知是由于技术炒作还是资本市场的青睐,近年来以 Docker 为代表的容器化技术已掀起一股浪潮,甚至出现了不少 Docker 容器将替代虚拟化的声音,他们认为 Docker 容器技术将推动云计算行业下一场革命。


Docker是如何火遍整个行业的


鉴于不少非技术出身的读者对 Docker 也许不太了解, 雷锋网宅客频道借鉴公众号小黑羊的一篇文章,对 Docker 先做个简单科普:


生鲜市场有很多买东西的商贩(企业),他们需要一个库房(服务器)来存放和处理这些商品。


但是鱼呀、肉啊都需要低温才可以保鲜,所以得有制冷机(操作系统),主流的制冷机有 Windows 制冷机和 Linux 制冷机两种,配备了制冷机的库房就可以正常工作啦!


最初的冷库就是这个样子:

一个“优雅”技术人眼中,容器与虚拟化的相爱相杀



可是问题来了,各种库藏品都很矫情,它们对温度的要求不一致,放在一起还会串味儿,鸡腿变成了咸鱼口味,冰激凌有了小龙虾味儿。


有个叫 VMware 的泥瓦匠想了个办法,把库房隔成很多叫做“虚拟机”的小库房,每个房间放一个制冷机,这样就再也不怕串味儿,每个小房间的温度独立可控,鱼呀虾呀表示很Happy。


这就叫做冷库虚拟化技术


一个“优雅”技术人眼中,容器与虚拟化的相爱相杀


原本是个挺完美的方案了,偏偏有人爱吹毛求疵瞎BB,比如老板就觉得每个隔间都要放制冷机太占地方而且又费电,总想着找点别的办法。


Linux制冷机厂商有一种“软隔离(LXC)”技术,把冷库分隔成叫做“容器”的小单间,但每个房间不需要单独安装制冷机,只要布些导冷管和温控阀门,这样看起来就达到目的了。


后来有人把“LXC”这种“软隔离”技术发扬光大,用一堆“GO”零件进行改装,可以大幅提高冷库的建设和改进速度,于是 Docker 横空出世了!Docker被业内称为容器管理引擎,其实它就是一套给冷库快速建“单间”和铺“导冷管”的装置。


所以,用 Docker 建的冷库是这样子滴:


一个“优雅”技术人眼中,容器与虚拟化的相爱相杀



和冷库虚拟化相比,冷库 Docker 具有非常明显的优势:


占用资源少:共享一个制冷机(OS),各个单间埋导冷管(Bins/Libs)就行了。

部署快:不用建实体墙隔离(多 NameSpace),有样板间(Docker 镜像)可参照。

启动快:拧开导冷管的阀门就可以了(共享主机 OS Kernel,快速加载),比启动一台“制冷机”方便。


所以对于“臭鱼烂虾”天天要搬进搬出、反复折腾的客户来讲,Docker 很“敏捷”!

后来越来越多的人尝试并吹捧 Docker,于是有人跳出来说:Docker 技术简直会掀起冷藏行业下一代的革命,将彻底替代冷库虚拟化技术!这就是文章开头所说的“Docker 浪潮”。


作为曾创下中国云计算行业单笔融资额最高记录的公司,青云的技术负责人,甘泉没有办法去忽略这件事,他一直在思考如何把 Docker 更好地运用到云计算上。有人告诉他:“直接在青云上提供容器服务不就行了?”,然而在有“架构洁癖”的甘泉眼中,这实在太不“优雅”了,一个好的云服务怎能容忍随意拼凑!


于是在前不久 MSUP 麦思博主办的第 5 届全球软件案例研究峰会(Top100 Summit)上,青云 QingCloud 的 CTO 甘泉向现场观众讲述了自己是如何看待虚拟化与容器技术的,以及他眼中“优雅”的云服务架构。


云上部署容器未解决的问题


在甘泉看来,容器技术固然拥有许多优势,然而要完全替代虚拟化,这是不现实的,因为他们二者的特点非常的鲜明,就像镜子两面一样,这个的缺点正是那个的优点,因此容器和虚拟化一定是互补而不是替代关系


甘泉表示,目前云服务市场的容器服务主要有两种部署方式:一种是在虚拟机上部署,一种是在物理机上部署,而两种部署各有利弊。


对于虚拟机的容器部署,甘泉认为:


容器技术的优势本身就在于轻量、快,而底层却用Virtual Machine来支撑,虚拟化会有一定的性能损耗,尤其在存储和网络方面,因此这样的组合其实是一种妥协。

然而基于物理机的部署方式的缺点则更让人头疼,因为用户需要自己去管理存储和网络,而容器服务的存储和网络非常不成熟,很难满足企业用户的需要。



在甘泉看来,容器服务发展的瓶颈和所有的痛点都来自于,容器服务想要做底层的东西却又做不好,而底层基础设施平台的能力又直接决定应用运行时的质量,是决定应用能否成功、产生价值的核心因素。因此不解决这一问题,容器注定无法发挥最大优势。


如何解决?首先要优雅!


事实上传统厂商对于容器和虚拟化问题已经有了解决方案,但这些方法都入不了甘泉的眼,用甘泉的话来说:不优雅。


在和雷锋网宅客频道谈及技术学习时,甘泉曾这样说过:

我一直有一个观念,做工程师写代码的,大部分看上去像个屌丝,一个好的工程师外表可以很屌丝,但内心一定要优雅,工程师的优雅体现在什么地方呢?体现在你架构设计得漂不漂亮、合不合理、高不高效。


因此对于容器和虚拟化的问题上,甘泉依然坚持自己的“优雅技术观”:


传统云平台只支持虚拟化或容器,不能两者兼顾。为了既支持虚拟化又支持容器,传统云平台为每种需求都部署一套系统,并将多套割裂的系统进行叠加,最终拼凑出一套方案。

这样看似可以提供整套虚拟化+容器的服务,实际上非常别扭,底层网络和存储是割裂状态,网络会变得非常复杂且效率低下。

一个追求优雅的技术人眼中看到这种拼凑的处理办法,就好比强迫症看到白色键盘缺了一个键,用黑色的来补,不能忍啊!


一个“优雅”技术人眼中,容器与虚拟化的相爱相杀


什么才是优雅的做法?甘泉心中其实早已有了答案。


甘泉认为,目前容器服务本身虽然在上层应用的构建与编排时非常强大,但在基础资源层的能力非常薄弱,搞不定存储和网络,因此首先青云实现了一个统一的网络和存储平台,也就是此前在青云Insight大会上展示过的 SDS 2.0 和 SDN 2.0 ,它们负责提供底层的存储和网络能力。(详见《青云 Insight 大会上晒技术,云计算服务有哪些新玩法?》)



在此之上,青云提供基于主机的集群管理框架,提供了两种主机:容器主机和虚拟主机,两者互为补充。最关键的是,青云能够将 SDN 的能力直通给上层的 Container(容器),使每个 Container 都有青云SDN提供的网络能力,而不需要再构建一层虚拟网络。


这就意味着基于容器集群管理框架可以把存储和网络完全交给 IaaS 去做,从而实现分层的理念:大家各自做自己最擅长的事情,IaaS层解决存储和网络等资源层面的问题,应用层解决应用构建与编排的问题,从而发挥各自最大优势。


从前有个“老程序员”告诉过雷锋网(公众号:雷锋网)宅客频道编辑,如果一个程序员家里鞋袜乱丢,被子不叠,锅碗瓢盆,臭气熏天,基本可以论断他不是个好程序员,这类人会容忍代码里无处不在的冗余,任由一段代码恶化下去而不去重构,不考虑伸缩性,扩展度,可维护性,完全凭感觉,凑合,对付,反正能交工就完事。


他说,我看一个人写的程序,做的架构就能大致看出来一个人的性格,生活状态,程序就是他面对这个世界的态度。


且不评判这一论调的正确性,一想到这里,我隐约感受到了技术人甘泉对这个世界的态度。


一个“优雅”技术人眼中,容器与虚拟化的相爱相杀


雷锋网原创文章,未经授权禁止转载。详情见转载须知。

原文出处:http://www.leiphone.com/news/201612/4juGZ8u6ZYjZldOi.html

媒体联系

票务咨询:赵丹丹 15802217295

赞助咨询:郭艳慧 13043218801

媒体支持:景    怡 13920859305

提交需求