云计算并不神秘,简单理解云计算可以把云想成一个电厂,而使用者并不需要自己发电就可以使用交流电,对电来说,自打解决了远距离传输和高压电技术,交流电运输,交流电就应运而生了,而在此之前,只有自己自发产生的少量的直流电。如果把网络想成是远距离传输,云相关的技术想成是高压电技术,那么云计算就很容易理解了。
一、云计算的分类
云的分类可以有很多种,按照云提供的服务分类来说,云服务可以分为三种,一种是软件即服务(saap),一种是平台即服务Paap,一种是基础架构即服务IaaP。
如果云提供在线的软件服务,如:在线使用的画图工具,办公软件,甚至在线的游戏,ps等都算作是软件即服务,不用安装软件,考虑更新的问题,内存够不够,只要是有网络,浏览器,账号就可以使用。
平台即服务主要面向软件开发人员及对计算性能及速度有高要求的人群,实现硬件加操作系统的云服务,客户可以在云平台上进行开发、测试、编译等操作。google的app engine和亚马逊的EC2就是代表。
基础架构即服务是开放层级最高的一种服务,将主机、网络设备分享给用户进行使用,用户无需购买这些硬件软件系统,只需要缴费就可以享用性能优,随业务量增减的平台服务。如
IBM的blue cloud。
如果按照安装目的来分类,可以分为公有云和私有云,安装在远程主机上用户可以直接采用服务的称为公有云,本地自建,自行购买硬件、设计系统环境、开发软件等称为私有云,也就是自建部署。至于两者如何选择,从成本、部署速度等方面进行考量。
二、云服务的搭建
一般的云中心包含上百台服务器,而大型的云计算中心服务器高达数万台,投入的人力物力不可小觑,不光包括底层的硬件,再通过一个所谓“管理系统”将多台服务器整合调度成为一个超算中心,在通过网络和装置提供前面叙述的iaas、paas、paas服务。
构建云中心除了考虑机房的规划外,在网络设计的时候带宽及备用线路,网络布线,稳定性也必须考虑,除此之外,供电系统很重要,智能供电可以提供最佳能源供应,节能同样值得重视。
目前,服务器的选择有IBM、hp、DELL,浪潮等,系统软件包含vmware,oracle,intel等,存储包含emc,东芝,netapp,IBM,huawei等,网络设备包含cisco,华为等。
三、和云计算相关的那些技术
3.1 虚拟技术。
对于云计算来说,尤其是iaap,最大的优势就在于可以提供的可伸缩的硬件资源,集约利用的同时保证了性能,之所以能够这样实现,关键的就是用虚拟化(visualization)来实现。
3.1.1 p2p 模型
过去的网络拓扑结构,基本都是服务器-客户端的主动模型,服务器提供服务,客户端从服务器端分享带宽,储存和计算能力,这样一旦多个请求到来很容易早成拥塞,但云时代的虚拟技术改善了这一窘境,peer-to-peer技术使得硬件之间不再是单纯的主从关系,而是相互互为客户-服务的关系,低位平等,每个节点同时也是服务端和客户端,中继端,这样以来越来越多的节点加入,越来越性能好,就好像一份100道题的试卷,如果100个人每个人负责一道题的解答,然后答案相互共享,一般来说速度和效率远比一个人答,其他人抄效率高。
常见的p2p模型结构是easymule,将一个下载文件分为很多小块,每人下载其中的一部分,下载后相互分享。每个节点需要做的只是比较哪条路快些,然后选择下载,下载完成合并所有即可。同样,qq的视频、语音通话、文件传送等都是p2p模式。
3.1.2 哪些对象可以被虚拟化?
一句话:一切好些都可以被虚拟化。
① 硬件虚拟化。将硬件和操作系统之间加入虚拟化,将硬件虚拟成为多个硬件体,一台主机被分割为多台主机,彼此的软件安装和操作系统不会相互干扰。
操作系统虚拟化。同一个主机中拥有多个操作系统,不仅方便迁移系统,而且可以与本机其他操作系统并行。
② 应用程序虚拟化。让应用程序在一个环境中运行,解决了软件兼容性的问题,即使用户遍布世界,也可以同时存取数据。
③ 存储空间虚拟化。过去总是不同存储厂家的设备导致无法共存,利用虚拟化可以将不同的存储进行整合,统一调配利用。
据估计,2014年平均每台服务器可以虚拟产生8.5倍于该服务器性能的虚拟机。70%的工作都交给虚拟机来做。
3.2 分布式计算
分布式计算是需要远程计算机同时分担一下任务以节省时间,比如说原本需要一百分钟处理完毕的一项任务,我们可以,将一百台计算机来同时计算,只需要一分钟就可以完成,由于许多服务器只发为发挥低于15%的计算能力,因此可以将服务虚拟出多台虚拟机,再将服务器分为较小的子任务,分配给某一台服务器进行全力的工作。
那么重点就在于100台计算机之间如何进行任务分割,调度,如何保持沟通,避免数据丢失,这些是分布式解决的问题。
如果运算仅仅需要普通计算机就可以完成,那么只需要云计算就可以,如果每个计算都需要超算才能完成,那么就需要一种叫做“网格计算”的技术进行处理。
谷歌的搜索引擎就是典型的分布式计算的例子,由于谷歌有服务器达到百万台的规模,其任务是对比网页内容,将符合搜索字符串的网页从其中挑出并依据一定的顺序排序,虽然输入的条件不多,但是网页的数量却很庞大,如果单靠一台服务器进行比对,必将耗费巨大的时间,因此必须依照分布式计算,应用大量的分服务器,同时进行计算,才有可能有办法在极短的时间内完成。谷歌搜索引擎需要频繁的处理不断涌入的搜索任务,但是工作相对简单,换而言之就是数量庞大的难度不高,所以不需要超级计算机的运算能力,只需要大量个人计算机等级的服务器即可达到要求。
利用网格计算的一个最佳案例是新加坡国立大学的计算中心。新加坡国立大学利用网格计算,整合了效率计算资源的实力,这项计划是基于一个资源共享的计算网络。时至今日,参与这项计划的服务器已经达到了1554台,参与者以图书馆计算中心和理工领域学院为主,除了校内学术单位可以自愿提供资源以外,其他的校内师生也可以一个人身份拥有PC或者将高性能计算机贡献出来,帮助他人进行计算操作。加入计算网格的程序非常简单,学术单位的计算机只需要安装一套软件,就可以成为网格中的一员,至于个人机关的计算机只需按下鼠标进行同意和设定程序就可以了,所有的应用程序都在一个“沙盒”当中进行,不会存在任何的中毒或数据窃取问题。