1
DoctorCat 2020-11-28 21:08:01 +08:00
云计算:商业概念(类比路上跑的四轮汽车)
虚拟化:实现云计算概念过程中的一种技术基础(类比四轮汽车中的燃油车) 总结: 虚拟化(四轮燃油车)曾经是 云计算(四轮汽车)的基础技术。 现在已经衍生出其他的技术了,例如容器和云原生(老年代步车、新能源车)等技术。 |
2
freecloud 2020-11-28 21:10:41 +08:00
虚拟化是云计算的基础。集群资源池(集群 cpu 、集群 gpu 、集群 RAN 、集群存储,集群资源,高带宽接入等等)+跑个资源控制与虚拟化软件,生出的小机,是为云主机。一个独立服务器,跑个虚拟化软件,生出的小机,是为 VPS 。
个人观点,仅供参考。 |
3
sjmcefc2 OP @DoctorCat 虚拟化是单指 vm 的技术?容器感觉还是比较单一的一个技术(或者更多的相关的管理操作变成复杂的系统),感觉云原生都是生态了?
|
4
sjmcefc2 OP 集群资源,比如众多 pc 服务器的 cpu 集群,是否可以达到很强大的计算功能呢?
|
5
DoctorCat 2020-11-28 21:18:16 +08:00
@sjmcefc2 传统意义上的虚拟化,就是虚拟机呀 xen 、kvm 、vmware 这类的主流(大众认知,在此不讨论学术意义)。
容器技术其实很早就有了 Linux kernel2.6 后,BSD 的 Jail 等,只是很长时间都没有公开的商业实践罢了。云原生也是技术理念变革了例如 软件定义 X 的普及,在架构灵活性上有质的变化,算是生态吧。 |
6
JohnSnow 2020-11-28 21:33:14 +08:00 via iPhone
宽泛讲,云计算是虚拟化的实际应用。虚拟化主要是将硬件资源抽象起来进行共享,达到资源池化。比方说计算资源抽象、存储资源抽象等。
具体讲技术时,一般还是计算资源方面。 1. 虚拟化一般特指内核虚拟化技术 kvm 。现在云计算的虚拟机服务大多数基于 qemu/kvm 。这种 kvm 虚拟化是硬件辅助虚拟化,主流 CPU 都支持。因为模拟的是操作系统完整的环境,开销一般会比容器化的大,但隔离性上好。大部分厂商的云计算,提供虚拟机服务时,主要就是这个东西。 2.容器化是进程级别虚拟化,一般是依赖于内核 namespace (修改进程视图,让进程以为自己是独占资源)和 cgroups 技术(简单认为保证 QoS )。以 docker 为例,内核提供 namespace 、cgroups 支持,另外文件系统上 overlayfs 等联合文件系统的技术,解决分发问题。只模拟一个或者一组进程的上下文(宿主机上所有容器共享一套内核)资源开销上小些,但隔离性上差。 可以简单理解为,1 跟 2 是虚拟化程度上差异。实际上,在边缘计算领域已经有基于 kvm 虚拟化技术的容器了。 云原生一般是以 k8s 为基底的生态。 |
8
sjmcefc2 OP @JohnSnow 虚拟化这块,比如 exsi,一般都是把主机切分掉,还没有试过把硬盘等资源做成资源池;
1.也就是云主机,目前都是 kvm 的主机;隔离性强是指独自使用内存,cpu 等资源,彼此之间看不到别人在运行的数据? 2.容器化是不是就有可能看到彼此之间的数据呢 3.云原声,以 k8s 为基底是不是就是一套新的理念来分配和整理资源? |
9
DoctorCat 2020-11-28 21:44:26 +08:00
@sjmcefc2 关键词“云计算历史” 随便找就有很多资料了 例如 https://cloud.51cto.com/art/201904/594748.htm
|
10
laminux29 2020-11-28 22:23:54 +08:00
云计算有很多种意思,简单一点就是使用服务器运行程序,通俗一点就是你花钱把服务器到域名这一整套东西交给专门的厂商解决,学术一点还牵涉到需求与资源的分化与汇总。
虚拟化也有很多种意思,简单通俗来说就是一台物理机模拟出好几台虚拟机,学术一点就是把资源整合然后根据需求进行调度并调优。 |
11
murmur 2020-11-28 22:59:48 +08:00 1
这东西就是个概念,不用纠结,你会发现除了云计算还有雾计算,有了雾计算还有霾计算
|
12
wanguorui123 2020-11-28 23:29:57 +08:00
虚拟化是个大概念,云计算只是虚拟化的应用场景之一
|
14
sjmcefc2 OP @wanguorui123 虚拟化的其他场景是什么呢?
总感觉越想越糊涂这其中的差别。 |
15
opengps 2020-11-29 00:33:47 +08:00
首次买可以跟我聊聊
入门的解释:你可以把某个系统里的多个网站理解成空间,本机虚拟机理解成 VPS 。 现在更进一步:虚拟化是较小规模的虚拟机集群,云计算是较大规模的虚拟机集群,从这一步开始,有个共同特点就是脱离了单台物理机。所以开始用云这种词来形容,你虽然作为用户用了某台或者某些虚拟机,但是及时不中断业务,那么不同时间很可能实际用了不同的物理机。虚拟化或者云计算层面给你做了物理机的底层故障热迁移 |
16
wanguorui123 2020-11-29 00:54:26 +08:00
@sjmcefc2
虚拟化可以是对计算能力,存储,进程,操作系统等等的模拟环境,虚拟化的目的是共享底层资源( CPU/内存 /硬盘 /网络等等),以及虚拟化可以方便的迁移软件环境和管理硬件资源。 云计算只是虚拟化技术进行商用化的一个分支。 |
17
JohnSnow 2020-11-29 02:54:07 +08:00 via iPhone
@sjmcefc2 你说的这个虚拟化,首先不是宽泛意义上(或者说计算机特别是操作系统里硬件抽象的概念),而是具体技术的应用。计算机里的虚拟化有很多,比方说服务器层面虚拟化( kvm 等),应用层面,网络层面( sdn ),存储层面( sds )。你说的 exsi 这种主要虚拟化把主机切掉,是一类 type 1 hypervisor,type 1 这种 hypervisor 直接放到裸金属的服务器上; type 2 hypervisor 跟 hardware 中间还有层 host os,也就是宿主机。
隔离性差不是说你就可以随随便便看到数据,只是跟虚拟机比要相对容易些(所以安全策略的实现跟应用上,厂商要做更多设计考虑)。cpu 、内存都是共享的,不管什么类型,你虚拟机或者容器在宿主机内核看来还是个进程而已。进程是内核分配资源的单位,所以该怎么样就怎么样。可以简单理解 qemu/kvm 虚拟机成带有 cpu 特定指令加持的二进制翻译机,而容器就是打包后的进程在一个沙盒里跑。同一个宿主机上,原生环境下直接运行程序肯定比你二进制翻译快点了。 云原生就是云计算的漫威宇宙里面,又以 k8s 为基础新建了一套平行宇宙体系。 云计算里概念超级多,按服务的层次划分有 IaaS 、PaaS 一堆。一般情况下,你只要买虚拟机就行了。 |
18
sjmcefc2 OP 看来要想说的清云计算和虚拟化还是要好好梳理一番。
虚拟化是将物理资源( cpu,内存,存储,网络)进行整合共享的底层技术,就像是资源池一样能够将散落在不同裸金属物理机上的资源统一进行管理。这里面虚拟化又有不同的分层,type1 和 type2,不过我好像没怎么理解 type2. 云计算是虚拟化的应用,是一套能够帮助人们进行资源管理的操作系统。而云原生就是以 k8s 为基础的云计算。 现在的云计算都是以 docker 为基础的容器化? |
19
lihongming 2020-11-30 08:20:37 +08:00 via iPhone
因为很多人对云的理解还停留在第一阶段——VPS,就这个阶段而言,云计算跟虚拟化对用户而言真没什么区别。
但云计算远不止是 VPS,而是基于 VPS 之上的自动化服务,让 VPS 的创建和销毁不再由用户管理,而是服务根据负载需求自动伸缩,俗称 Infrastructure as a service 。比如最近开始流行的函数计算。 目前 AWS 是云计算的领军企业,已经把很多东西都 serverless 了,比如 mysql 、container 、对象存储。当然,还有他独家的 DynamoDB (一种 NoSQL 数据库)。 使用 Serverless 需要很多观念上的转变,比如性能问题、费用问题,很多人还是不习惯,一想问题就会代入传统思路,导致南辕北辙。但一旦你彻底建立了 Serverless 思维,就再也不想回去了,真的太方便了,大大提高开发效率。 |
20
togou 2020-11-30 11:33:19 +08:00
@lihongming 是开发效率还是运维效率啊? 麻烦问一下
|
21
lihongming 2020-11-30 13:11:24 +08:00 via iPhone
@togou 我不是做运维的,单纯从开发角度讲的。
但运维肯定也省了不少事,因为对 infrastructure 的原始需求都是程序员写在 CloudFormation 配置文件里的,运维主要是监控并优化配置文件里的参数。 serverless 架构下,大家都不需要管理服务器,只需通过配置文件告诉云平台需要什么样的运行环境即可。 |