杂谈——以一个外行人视角谈谈“云”和“云计算”
发布时间:2022-11-23 11:24:15 所属栏目:云计算 来源:
导读: 笔者在最近的项目开发中,和同事讨论到后续项目可能会上云的问题,之前由于对云计算感兴趣,也查阅过相关资料,现在回顾这些知识,多了些不成熟的想法。在这里笔者想从一个外行人的视角,聊一聊我所理解的&ldquo
|
笔者在最近的项目开发中,和同事讨论到后续项目可能会上云的问题,之前由于对云计算感兴趣,也查阅过相关资料,现在回顾这些知识,多了些不成熟的想法。在这里笔者想从一个外行人的视角,聊一聊我所理解的“云”。本文想通俗化地表述一些内容,目的是为了让之前没有任何了解的人也对“云”有所了解。如果存在细节表述不当或者原理性错误,还请各位不吝赐教,在评论中为我指正。 上篇——聊聊一些专业名词 一、虚拟化 在谈云服务之前,需要先介绍一下虚拟化技术,这是一项构成云服务的基础技术。 提到虚拟化,大家会想到什么呢?对于个人,最经常接触到的显然就是虚拟机软件了,用它来学习操作系统,或者在虚拟的系统安装一些不兼容的软件,或者运行病毒玩O(∩_∩)O。我们使用的虚拟机软件,其实是虚拟化技术的一种,它可以在已有操作系统上虚拟出计算机,回顾一下咱们使用虚拟机软件的过程,是不是得先保证自己的实体电脑装了一个操作系统(为了区别于虚拟机中的系统,叫“宿主系统”),然后下载虚拟机软件和操作系统镜像,才能运行一个虚拟系统呢?有研究人员继续深入思考,这样的虚拟化方式要经过宿主系统这个“中间商”,造成大量的性能和资源损耗,为什么不直接在硬件层级上进行虚拟化呢?性能损耗最直观的就是CPU,宿主系统的运行也依靠CPU的运算,必然会分走虚拟系统的CPU运算能力。资源损耗例如内存,如果电脑是8GB内存,宿主系统也需要占用一部分内存运行,导致虚拟系统的内存只能设置得比8GB小(当然理论上可以设置为8GB甚至超过8GB,但是这样的话宿主系统可能会与虚拟系统发生内存交换,二者没有完全隔离,这时在虚拟系统运行病毒或者进行其他破坏行为,会波及宿主系统,是非常危险的)。 在硬件层级上运行虚拟化软件,直接“虚拟化出一台电脑”,这就是现在云服务的基础,例如我有一台8GB内存的电脑,我可以直接虚拟化出8个1GB内存的系统,它们虽然物理上看还存在于一台电脑上,但逻辑上已经完全隔离了,对外完全可以说我有8台1GB内存的电脑,别人使用其中一台“电脑”是不会感觉到有其他“电脑”存在的。虚拟化技术的初始阶段,这种硬件级别的虚拟化软件,依然是在硬件“上层”的(也就是说,先启动硬件,硬件上又安装了一个虚拟化程序),还是会有性能损耗(当然比虚拟机软件要好不少)。这个损耗怎么理解呢? 笔者举一个火电厂的例子吧,在建火电厂的时候,所有设备都是规划好的,大号的锅炉就是带动大号发电机的,如果我随便买了几台设备就想组装一个火电厂,一查设备型号,发现买了一个小号锅炉和大号发电机,无论发电机买的多大,最终发出的电量都只能跟小号锅炉匹配。同样的,云服务开发商在初期,只能在已有的各种型号处理器,显卡,内存,硬盘上面运行虚拟化软件,“组装”出一个云服务器,设备之间互相拖累造成损耗。后来随着云服务的火热,开发商占据了主导地位,逼着硬件厂商更加统一规范,并且持续改进,现在有些虚拟化技术几乎做到了和硬件融为一体,这个损耗也逐渐在减小。 二、“云”,云计算 “云”到底是什么,其实一直没有标准的定义。但如果我买了多台实体主机构成一个服务器集群,配上一个公网IP,在整个互联网上都可以访问到,这样的能叫在“云”上吗,显然不太合适。“云”必然要在公网上,但“云”强调的是虚拟化的概念——我有很多服务器,但它们在哪儿我看不见摸不着,这并不影响我像实体主机一样对它进行开机关机操作,并且在上面安装操作系统。 “云”上的云服务器,它们的实体依托于云服务提供商庞大的机房,但我使用的云服务器只是机房中的硬件通过虚拟化“虚拟”出的,并不是我买了一台8GB内存的云服务器,云服务提供商的机房就装了一台8G内存的主机。假设机房的硬件总共有1024GB内存,我购买了8GB内存的云服务器,那么通过虚拟化软件会在逻辑上从1024GB分割出8GB内存供我使用。总之,通过虚拟化产生的服务器就叫做云服务器,这些云服务器所在的地方就是“云”上。 云计算其实狭义上来讲,专门指的是用云服务器做计算的(为了强调云服务中的计算作用),但现在基本上云计算和云服务等同了,只要使用的是云服务器都叫做云计算(即使它上面不是真的一直进行科学运算),本文后面也不会可以把云服务和云计算进行区分了,大家理解就好。 三、Iaas、Paas,Saas 云服务提供商可以提供三个层级的云服务,分别是: Iaas(Infrastructure as a Service)基础设施即服务,个人认为这个翻译可以优化为:将基础设施作为(云服务提供商)所提供的服务,这一层级上,购买服务器相当于购买了一个自己攒的裸机,它上面是没有操作系统的,需要自己安装操作系统。 Paas(Platform as a Service)平台即服务,个人认为这个翻译可以优化为:将平台作为(云服务提供商)所提供的服务虚拟化与云计算第3章 虚拟化的关键技术,这一层级上,购买云服务器后,云服务提供商会让你选安装什么操作系统,安装完毕后,一开机就可以运行云服务器了。 Saas(Software as a Service)软件即服务,个人认为这个翻译可以优化为:将软件作为(云服务提供商)所提供的服务,这一层级上普通用户接触的就很多了,比如各种云盘,都是运行在云服务上的,但是我们只需要打开指定的软件就可以使用云服务。 四、B端、C端、G端 这几个词是非常经典的“互联网黑话”,如果经常关注互联网行业一定不会陌生。B指的是business,也就是商业客户,一个软件(产品)开发目标如果是“to B”的,那么它开发出来就是卖给公司(企业)使用的。反推B端产品的开发过程,一切设计思路都是按照一个公司如何使用来思考的,如果直接给个人用,就会觉得非常难用。C指的是Consumer,也就是消费者,同样的也叫做“to C”,它面向的就是我们每个个人。G指的是Government,也就是政府,显然政府与普通的B端公司是不同的,作为国家单位,在安全和保密性上另有要求,并且相关的项目不会只考虑利润,还有国计民生等因素考虑在内,所以单独有一个“G端”的提法。印象中有些公司和政府合作的是普通业务,把政府也看成一个集体随便叫成“C端”了,有些公司要满足的需求特殊,或者想强调自己和政府的合作关系,会更注意把面向政府的项目单独叫做“G端”。 大家就算不刻意关注,也会经常在新闻中看到云计算相关词汇,印象中这个东西已经铺天盖地哪里都有了,可是总有一个感觉,好像自己并没有接触过云计算呀?这就是因为云计算大部分都是to B的,我们直接接触到的,都是在to B的云计算基础上开发出的to C的软件。想一下也是,我需要存一些文件到云盘,直接登陆账号,把文件往云盘软件一扔就可以,没必要自己买一个云服务器,甚至搭建一个集群,再配置网络服务,最后把文件传到服务器上。 五、算力网 各个云服务提供商都有自己的技术,购买不同厂家的云服务器无论是性能还是配置上都有很大区别,如果可以将它们以某种形式统一起来,按照计算量对外出售就好了,于是有专家提出了算力网的概念。同样地,和电网类比就很好理解了,虽然全国有各种规模的火电厂,新能源电厂等,但它们发出的电都要经过电网,在用户看来,无论在哪儿从电网上取电,电压、频率都是一样的。算力网也是类似的构想,我想要运行一个Python写的深度神经网络的程序,需要运行一万次,或者运行一天,不需要买一个云服务器然后再配置我的Python环境,只需要购买“算力”,把程序丢上去就好了。算力网可以看成云服务器进一步的虚拟化,对我们使用来说更加抽象了,但也更加的方便。 和算力网相关的政策就是东数西算,东部地区计算量大,但又无法大规模搭建机房,所以将机房设在西部,这样“算力”是西部地区产生的,但是可以通过算力网将算力提供给东部地区,和通过西电东输将电力从西部送到东部非常像。 六、负载均衡,弹性伸缩,内容分发 如果你购买了多个云服务器,通过配置将它们组成了一个服务器集群给用户提供网络服务,如何把服务器要完成的任务(负载)分摊到各个服务器上,大家都干一样多的活,不会出现一个服务器累死累活的工作其他服务器在看戏的情况,这就是服务器集群需要考虑的负载均衡问题。现在的云服务提供商都会自带负载均衡策略,当然我们也可以自己进行配置。说到这里想放一张之前看到的动图,但是找不到了,内容是一个微软专家演示他们云服务器的调度响应速度,开了8行8列64个云服务器的任务管理器,用任务管理器玩俄罗斯方块,CPU占用率为0那台电脑就是白色背景,CPU占用率为100那台电脑就是蓝色方块,这个有64个云服务器的集群,每隔一秒钟就有几台CPU占用率从100猛降到0,另外几台CPU占用率从0快速升到100,这个调度速度真的非常恐怖。 这个概念其实很好理解,就是说某些资源是动态的/可调整的,云服务器能够根据设置的策略自动调整云服务器资源。比如你在云服务器上隔一段时间跑一个程序,通过弹性伸缩在需要大量CPU资源的时候申请,不需要就释放这些CPU资源,你只需要购买这种服务就可以虚拟化与云计算第3章 虚拟化的关键技术,云服务器提供商自己就实现了弹性伸缩。 内容分发(CDN),这个是一个小概念,如果所购买的云服务器对外提供的是视频点播,音乐点播,新闻推送等内容上的服务,就叫做提供内容分发。 下篇——私货环节 一、工业上云的思考 由于云服务器的便利性,要开发一个网页,或者做一个小程序,不再需要操心实体服务器的运维工作,这些都由云服务提供商负责,现在很多网页都是在云服务器上实现的。云计算的概念非常火热,与各行各业结合就形成了“教育云”,“医疗云”等各种概念,但是在与工业结合的时候会有更多问题。 浏览一下主流的云服务提供商,互联网气息都是十分浓厚的,笔者认为互联网思维有一个特点就是——他们要做一个项目,目的是为了跑通一个商业模式,比如给A学校做一个项目,最终可以形成一整套成果,以后如果B学校C学校也要上云的话,在A学校项目成果上改巴改巴,直接就可以上线了。这个其实完全可以理解,因为IT公司要想赚钱,或者直白点说为了能够发出那么高的工资,必然要找一种“一本万利”的方式,每个项目都从头开发,实在费力不讨好。但是很遗憾,在工业上很多项目可以说就是要从头开始的,我在A电厂做完一个项目,要去B电厂做,发现两个电厂设备参数不同,厂家也不同,厂里使用的通讯协议也不同,等等等等,每个电厂都需要单独分析,单独设计。要想上云的话,云服务提供商也只能做到提供云服务器和基本的运维工作,要让他们参与进来整体架构的讨论也是比较困难的。 上述问题还是可以理解的,接下来的问题,是笔者认为工业上云最大的困难。还是以电力行业为例,“电”作为国计民生最最最基本的资源,如果三天两头出故障,必然会造成社会不稳定。把整个电厂的控制系统都放在云上,也就意味着放在了整个公网上,如果安全防护稍有不当,被黑客攻击,造成的损失是难以估量的,现在电厂的控制系统都是运行在局域网中的,可以在物理上避免这个问题。不过,工业上云好处还是很大的,电厂中设备间也有着很多服务器,如果都放在云上,设备间的维护可以省很多精力,甚至不需要设备间了,那么工业上云应该做到哪个级别呢?如果是厂级对外提供一些整体上的运营和生产数据,这与现有的网络结构并没有什么不同,把厂级数据放在云上,也就是放在公网上而已,最多省一台电脑。所以,工业上云应当是控制系统级甚至精确到每个就地设备级别的,这样相当于把几个不同电厂组合在一起,统筹起来进行控制,并且节省了大量的设备场地,这就又回到了前面的问题,一定要保证在云上的设备足够的安全。 二、为什么云服务会强者渐强? 前面也提到,云服务需求的火爆,使的云服务提供商能够硬气地逼迫硬件厂商进行改进,进一步的,如果云服务提供商率先进入某地的市场,它可以不断地扩大规模,遇到新兴的竞争对手,可以拿出一部分前期的利润,以超低价格提供云服务来压垮还很弱势的竞争对手,这种烧钱游戏,在互联网行业都是相同的。 三、数字孪生和云服务 如果有些人真的不是故意揣着明白装糊涂想蹭热点,而是真的想搞明白所谓的“元宇宙”是什么的话,笔者建议可以先了解一个概念叫数字孪生。数字孪生和云服务相同的地方就是都进行了虚拟化,云服务是将实际的硬件虚拟化成云服务器,而数字孪生是采集实际环境的数据,进而通过仿真得到一个非常接近的虚拟环境,这个非常接近可以是肉眼意义上的,比如我看起来它就是一个大楼,也可以是数字意义上的,比如虚拟战场,并不是建立一个肉眼看起来逼真的环境,而是将战场中所有的兵力,资源进行一比一的模拟,在虚拟环境中进行全局战况的指挥和推演。数字孪生在预期的成果上比虚拟现实更进一步,强调了所虚拟的环境要让人感觉和真实环境相同。“元宇宙”在概念上是非常美好的,有个动漫叫《刀剑神域》,里面提到的完全沉浸式虚拟现实,就是人带上一个头盔后,像做梦一样,进入的虚拟世界和现实世界是完全无法区分的,首先是看着很逼真,然后是人的感官都有反馈,可以说就是现实世界了,到达这样的程度才是真正的元宇宙。真正的元宇宙不光需要研究深度神经网络,最最重要的是脑科学的深入研究,欺骗人的大脑,分不清是做梦还是醒着,这样才能让人区别不出虚拟和真实。不用说元宇宙,目前的技术在数字孪生上还需要大量研究呢。总之,“虚拟化”这个思想将会贯穿未来的科技发展,很多技术本质上就是进行 不同的虚拟化 。 (编辑:PHP编程网 - 襄阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐



浙公网安备 33038102330434号