一个“优雅”技术人眼中,容器与虚拟化的相爱相杀
不知是由于技术炒作还是资本市场的青睐,近年来以 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层解决存储和网络等资源层面的问题,应用层解决应用构建与编排的问题,从而发挥各自最大优势。
从前有个“老程序员”告诉过雷锋网宅客频道编辑,如果一个程序员家里鞋袜乱丢,被子不叠,锅碗瓢盆,臭气熏天,基本可以论断他不是个好程序员,这类人会容忍代码里无处不在的冗余,任由一段代码恶化下去而不去重构,不考虑伸缩性,扩展度,可维护性,完全凭感觉,凑合,对付,反正能交工就完事。
他说,我看一个人写的程序,做的架构就能大致看出来一个人的性格,生活状态,程序就是他面对这个世界的态度。
且不评判这一论调的正确性,一想到这里,我隐约感受到了技术人甘泉对这个世界的态度。
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/83258.html
AIaliyuniPhonelinuxPhonewindows云计算相关文章
- 容器编排调度-Rancher(10)-1024电商平台项目技术选择和创 建聚合工程项目【工业级PaaS云平台+SpringCloudAlibaba+JDK11综合项目实战】
- 走马观花云原生技术(9):容器编排Kubernetes(上)
- 小程序容器技术助力企业轻应用崛起
- POSTGRESQL 带时区的日期的技术与狠活
- 小程序容器技术成为组装式应用基础
- 小程序容器技术助力突破智能汽车瓶颈
- 小程序容器技术助力实现应用组装式
- eBPF,一个颠覆容器监控的技术
- 袋鼠云高教行业数字化转型方案,推进数字化技术和学校教育教学深度融合 | 行业方案
- 数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术
- 微前端技术实现之——小程序容器技术
- OpenStack 基金会发布白皮书,推进容器技术
- 在 overlay 中运行容器 – 每天5分钟玩转 Docker 容器技术(51)
- 创建 overlay 网络 – 每天5分钟玩转 Docker 容器技术(50)
- 实现容器的底层技术 – 每天5分钟玩转 Docker 容器技术(30)
- 一张图搞懂容器所有操作 – 每天5分钟玩转 Docker 容器技术(26)
- 如何运行容器?- 每天5分钟玩转 Docker 容器技术(22)
- 镜像的缓存特性 – 每天5分钟玩转 Docker 容器技术(14)
- Dockerfile 构建镜像 – 每天5分钟玩转容器技术(13)
- 写在最前面 – 每天5分钟玩转容器技术(1)
- 一位技术极客,为何能拿到红杉高瓴数千万投资?
- 《技术人求职指南》(一)你是否应该选择跳槽
- 探究Oracle远程数据泵技术,高效备份数据方便快速(oracle远程数据泵)
- 纵表SQL Server数据库横表转换到纵表的技术实现(sqlserver横表转)
- sqlserver代理日志记录系统技术研究(sqlserver代理日志日志)
- Oracle 76078精准掌握数据库管理技术(oracle 76078)
- Oracle 12容器技术快速部署与高效使用(oracle12容器部署)
- Oculus更新ASW技术,张艺谋再透VR布局 | 沉浸感周刊