云算法是什么

云算法是什么,第1张

云计算概念被提出以后并行计算技术和虚拟化技术成为其核心支撑技术,云计算将按需计算带给了普通的用户,也使并行计算成为普通用户也能方便使用的技术,而且并行计算中的"单一系统映像技术"实际也反映系统虚拟化的思想,所以广义来看并行计算技术本身可能包括虚拟化技术,因而并行计算技术是云计算技术中的一个相当重要的技术基础。

云计算及高性能计算的逐步普及使并行程序设计成为许多程序设计人员不可避免的一项艰巨工作,特别是云计算、个人高性能计算机(PHPC)等技术的深入发展,使许多技术人员开始从单机工作模式向并行计算模式转变。由于并行程序设计现在还没有一个很好的集成开发平台提供方便的组件给设计者使用,几乎所有的设计工作都需要从底层自己完成,因此并行程序的设计往往使很多程序设计者望而却步。MPI作为并行程序设计事实上的标准被广泛地应用于各个领域,不少企业及研究机构逐步认识到MPI的重要

服务器是基于规模化的物理服务器集群,每个集群节点被部署在骨干数据中心,可独立提供计算、存储、带宽等互联网基础设施服务。云服务器的物理架构,由存储服务器集群、计算服务器集群、基础架构管理服务器和网络交换机组成。其中,存储服务器集群构建虚拟资源池,具备超大容量,为节点内的云虚拟机提供逻辑磁盘存储、非结构数据存储以及整合备份服务计算服务器集群,通过虚拟化技术整合,由控制平台按需生成、调配计算资源管理服务器,采取双机热备的方式,对整个节点的所有计算服务器、共享存储、网络进行管理,同时对外提供管理整个节点的API网络交换机,负责管理网段、公网交换网段、内部交换网段、存储网段等。

云服务器的资源都是从资源池中调配组合而成。资源池,是由数十台到数百台甚至数万台服务器跨节点、跨数据中心组成,通过成熟的虚拟化技术和已部署的管理程序,共同管理虚拟池中的资源。虚拟化,就是将规模级的物理资源(CPU、内存、磁盘等)高度整合和自由分配,实现资源的弹性扩容或缩减,以及快速地在不断电的前提下完成资源的变化。这就必须要有底层虚拟化技术、SDN的支持。

云计算,大数据,人工智能,区块链热门词汇经常被媒体提起,是否大家都理解他们之间的联系和作用,下面我们用通俗点的说法介绍云计算。

云计算当初的设计目的是为了通过虚拟化技术实现IT资源的管理,管理的主要是计算资源、网络资源、存储资源三个方面。

你去选笔记本电脑或台式电脑,肯定都会看最主要的配置:CPU,内存,硬盘,网卡。计算资源就是CPU和内存,有线或无线网卡和你家里上网的路由器就组成网络资源,硬盘就是存储资源。

各大互联网公司的数据中心管的最主要的东西就上面4个,选一块偏远的地造一个很大很大的机房,里面放置成千上万台服务器提供7*24小时不间断服务。数据中心的管理就像你选电脑配置,管好上面的资源。

很多小公司在创业初期,没有服务器,没有机房,就找到这些有大型数据中心的互联网公司想租用他们机房的设备。在物理设备时期,这个管数据中心的公司就买一台物理设备安装到机房通过网络分配给这些小公司收取费用。

这种模式在规模小的时候看不出问题,但很多小公司突发的需求和时效,这个数据中心的互联网公司就满足不了了。还有小公司可能只要一个小规格的服务器,但数据中心只有大型规格的服务器分配,小公司就不干了,这是让我多花冤枉钱啊。

物理设备的极度不灵活造成了各种资源的浪费和制约数据中心的规模化发展。

有人就想办法了。第一个办法就是虚拟化。用户不是只要一个很小的服务器么?

数据中心的物理设备都很强大,我可以从物理的 CPU、内存、硬盘中虚拟出一小块来给客户,同时也可以虚拟出一小块来给其他客户。每个客户只能看到自己的那一小块,但其实每个客户用的是整个大的设备上的一小块。

虚拟化的技术使得不同客户的服务器看起来是隔离的。也就是我看着好像这块盘就是我的,你看着这块盘就是你的,但实际情况可能我的这个100G 和你的这个 100G 是落在同样一个很大很大的存储上。而且如果事先物理设备都准备好,虚拟化软件虚拟出一个电脑是非常快的,基本上几分钟就能解决。所以在任何一个云上要创建一台服务器,一点几分钟就出来了,就是这个道理。

这样空间灵活性和时间灵活性就基本解决了。

在虚拟化初期阶段,最牛的公司是 VMware。它是实现虚拟化技术比较早的一家公司,可以实现计算、网络、存储的虚拟化。

这家公司很牛,性能做得非常好,虚拟化软件卖得也非常好,赚了好多的钱,后来让 EMC(世界五百强,存储厂商第一品牌)给收购了。但这个世界上还是有很多有情怀的人的,尤其是程序员里面。有情怀的人喜欢做什么事情?开源

这个世界上很多软件都是有闭源就有开源,源就是源代码。也就是说,某个软件做的好,所有人都爱用,但这个软件的代码被我封闭起来,只有我公司知道,其他人不知道。

如果其他人想用这个软件,就要向我付钱,这就叫闭源。但世界上总有一些极客和大牛看不惯这些人垄断的情况。大牛们觉得,这个技术你会我也会;你能开发出来,我也能。

我开发出来就是不收钱,把代码拿出来分享给大家,全世界谁用都可以,所有的人都可以享受到好处,这个叫做开源。

我们每天接触最多的开源就是WWW,万维网,是由蒂姆·伯纳斯·李免费开放代码。2017 年,他因“发明万维网、第一个浏览器和使万维网得以扩展的基本协议和算法”而获得 2016 年度的计算机里的诺贝尔奖-图灵奖。

我们现在在网上的所有行为都应该感谢他的功劳,如果他将这个技术拿来收钱,应该和比尔盖茨差不多有钱。

开源和闭源的例子有很多:例如在闭源的世界里有 Windows,大家用 Windows 都得给微软付钱;开源的世界里面就出现了 Linux。比尔盖茨靠 Windows、Office 这些闭源的软件赚了很多钱,成为世界首富,就有大牛开发了另外一种开源操作系统 Linux。可能不懂IT的人没有听说过 Linux,很多后台的服务器上跑的程序都是 Linux 上的,比如每年的双十一,无论是淘宝、天猫、京东、考拉……支撑双十一抢购的系统都是跑在 Linux 上的。

再如有 Apple 就有安卓。Apple 市值很高,但是苹果系统的代码我们是看不到的,于是谷歌里就有大牛写了安卓手机操作系统把开源代码免费开放。所以大家可以看到几乎所有的其他手机厂商,里面都装安卓系统。原因就是苹果系统不开源,而安卓系统大家都可以用。

在虚拟化世界也一样,有了 VMware,这个软件非常贵。那就有大牛写了两个开源的虚拟化软件,一个叫做 Xen,一个叫做 KVM。

要说虚拟化软件解决了灵活性问题,其实并不全对。因为虚拟化软件一般创建一台虚拟的电脑,是需要人工指定这台虚拟电脑放在哪台物理机上的。这一过程可能还需要比较复杂的人工配置,做这个工作的人专业化程度很高,所以仅仅凭虚拟化软件所能管理的物理机的集群规模都不是特别大,一般在十几台、几十台、最多百台这么一个规模。

这一方面会影响时间灵活性:虽然虚拟出一台电脑的时间很短,但是随着集群规模的扩大,人工配置的过程越来越复杂,越来越耗时。

另一方面也影响空间灵活性:当用户数量多时,这点集群规模,还远达不到想要多少要多少的程度,很可能这点资源很快就用完了,还得去采购。

所以随着集群的规模越来越大,基本都是千台起步,动辄上万台、甚至几十上百万台。如果去查一下 BAT,包括网易、谷歌、亚马逊,服务器数目都大的吓人。

这么多机器要靠人去选一个位置放这台虚拟化的电脑并做相应的配置,几乎是不可能的事情,还是需要机器去做这个事情。

人们就发明了各种各样的算法来做这个事情,算法的名字叫做调度(Scheduler)。

通俗一点说,就是有一个调度中心,几千台机器都在一个池子里面,无论用户需要多少 CPU、内存、硬盘的虚拟电脑,调度中心会自动在大池子里面找一个能够满足用户需求的地方,把虚拟电脑启动起来做好配置,用户就直接能用了。

这个阶段我们称为池化或者云化,到了这个阶段,才可以称为云计算,在这之前都只能叫虚拟化,别TM扯上云化的关系。

云计算大致分两种:一个是私有云,一个是公有云,还有人把私有云和公有云连接起来称为混合云。

私有云:把虚拟化和云化的这套软件部署在别人的数据中心里面。使用私有云的用户往往很有钱,自己买地建机房、自己买服务器,然后让云厂商部署在自己这里。

VMware 后来除了虚拟化,也推出了云计算的产品,并且在私有云市场大赚特赚。

公有云:把虚拟化和云化软件部署在云厂商自己数据中心里面的,用户不需要很大的投入,只要注册一个账号,就能在一个网页上点一下创建一台虚拟电脑。

例如 AWS 即亚马逊的公有云;国内的阿里云、腾讯云、网易云等。

亚马逊为什么要做公有云呢?我们知道亚马逊原来是国外比较大的一个电商,它做电商时也肯定会遇到类似双十一的场景:在某一个时刻大家都冲上来买东西,访问量暴增。

当大家都冲上买东西时,就特别需要云的时间灵活性和空间灵活性。因为它不能时刻准备好所有的资源,那样太浪费了。但也不能什么都不准备,看着双十一这么多用户想买东西登不上去。

所以需要双十一时,就创建一大批虚拟电脑来支撑电商应用,过了双十一再把这些资源都释放掉去干别的。因此亚马逊是需要一个云平台的,然而商用的虚拟化软件实在是太贵了,亚马逊总不能把自己在电商赚的钱全部给了虚拟化厂商。

于是亚马逊基于开源的虚拟化技术,开发了一套自适应的云化软件。没想到亚马逊后来电商越做越牛,云平台也越做越牛。

由于它的云平台需要支撑自己的电商应用;而传统的云计算厂商多为 IT 厂商出身,几乎没有自己的应用,所以亚马逊的云平台对应用更加友好,迅速发展成为云计算的第一品牌,赚了很多钱。

公有云的第一名亚马逊过得很爽,排第二的 Rackspace 过得就很凄惨了。互联网行业的天然的壁垒铸就其残酷性,胜者为王的模式,压根没人听过老二是谁。

老二就不忿了,我干不过老大怎么办呢?开源啊。如上所述,亚马逊虽然使用了开源的虚拟化技术,但云化的代码是闭源的。很多想做又做不了云化平台的公司,只能眼巴巴的看着亚马逊挣大钱。Rackspace 把源代码一公开,整个行业就可以一起把这个平台越做越好,兄弟们大家一起上,和老大拼了。

于是 Rackspace 和美国航空航天局合作创办了开源软件 OpenStack,如上图所示 OpenStack 的架构图,图中三个关键词:Compute 计算、Networking 网络、Storage 存储,就是一个计算、网络、存储的云化管理平台。

当然第二名的技术也是非常棒棒的,有了 OpenStack 之后,果真像 Rackspace 想的一样,所有想做云的大企业都疯了,个个豪强都疯了似的蜂拥而入,你能想象到的所有如雷贯耳的大型 IT 企业:IBM、惠普、戴尔、华为、联想等。

原来云平台大家都想做,看着亚马逊和 VMware 赚了这么多钱,眼巴巴看着没办法,想自己做一个好像难度还挺大。现在好了,有了这样一个开源的云平台 OpenStack,所有的 IT 厂商都加入到这个社区中来,对这个云平台进行贡献,包装成自己的产品,连同自己的硬件设备一起卖。

有的做了私有云,有的做了公有云,OpenStack 已经成为开源云平台的事实标准。

到了这个阶段,云计算基本上实现了时间灵活性和空间灵活性;实现了计算、网络、存储资源的弹性。

计算、网络、存储我们常称为基础设施 Infranstracture, 因而这个阶段的弹性称为资源层面的弹性。

计算资源已经变成了如日常的水电一般,人们可随意调用。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/584719.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-06
下一篇2023-07-06

发表评论

登录后才能评论

评论列表(0条)

    保存