樊峰鑫 牛晓博
(海军士官学校信息通信系,安徽蚌埠 233012)
云计算是当前互联网技术领域的一个热点,它的出现宣告了低成本提供超级计算时代的到来,作为新一代互联网计算资源的基石,云计算支撑着互联网几乎所有的上层数据处理系统,无论是大数据还是人工智能以及其它各类应用场景,都需要依托去云计算提供的基础设施来运行,了解云计算技术已是专业人士必须了解的技术,本文以通俗易懂的语言对云计算技术及其服务形式进行分析,并对云计算和大数据、人工智能之间的关系进行了简单阐述,以期加深读者对于互联网领域几个热点技术的了解。
云计算最初的目标是对资源的管理,包括计算资源、网络资源以及存储资源。
计算资源一般指程序运行时所需的CPU资源、内存资源。
网络资源主要指各种设备接入网络所通过的媒介,例如线路、带宽等。
存储资源指存储设备的空间,例如100G、1T、10T等。
对于一台电脑是这个样子,对于一个数据中心也是同样的,可以想象一个企业有一个很大的机房,里面堆了很多服务器,可以为各种业务提供服务,数据中心的管理人员是怎么把这些设备统一管理起来呢?管理的目标就是要达到资源配置的灵活性,包括时间的灵活性和空间的灵活性。
时间的灵活性:想什么时候用就什么时候用,需要用的时候随时一点便可实现。
空间的灵活性:想要多少就有多少,例如云盘,可以满足随时上传随时有空间可以用。
时间和空间的灵活性即我们常说的云计算的弹性,然而一开始物理设备并不能做到很好的灵活性,比如买台服务器或计算机都需要采购的时间,如果用户告诉某个云厂商需要开台电脑使用某种配置的物理服务器,那么当时去采购就很难,时间灵活性非常差。另外空间灵活性也不够,比如用户需要一个市场上已经找不到的配置较低的电脑,此时为了满足用户去买一个市场上有的配置较高的,便会造成资源和金钱的双重浪费。那么如何解决灵活性的问题呢?
虚拟化技术[1]通俗点说就是使得不同客户的电脑看起来是隔离的,但实际是落在一台设备上,比如一个用户看起来有一个10G的硬盘,另一个用户也看着自己有一个10G的硬盘,但实际这两个10G是落在同一个很大的存储上的。实现虚拟化比较早的一家公司就是VMware,它可以实现计算、网络、存储的虚拟化。虚拟化软件并没有完全解决灵活性的问题,因为它一般创建一台虚拟的电脑,是需要人工指定这台虚拟电脑放在哪台物理机上的,这一过程还需要比较复杂的人工配置,所以虚拟化软件所能管理的物理机的集群规模并不大,一般在十几台、几十台。当用户数量越来越多时,这样集群的规模便远远达不到想要多少有多少的需求,所以随着集群规模的不断增大,甚至达到几十上百万台时,这么多机器如果靠人工去进行虚拟化电脑的配置,便几乎是不可能的事了,于是人们发明了各种各样的算法来做这个事。这类算法叫做调度(Scheduler)。
调度[2]是指在特定的资源环境下,根据一定的资源使用规则,在不同的资源使用者之间进行资源调整的过程。通俗一点说,调度就是指几千台机器都在一个池子里,根据用户对虚拟机配置的具体需求,调度中心会自动在大池子里找一个能够满足用户需求的地方,用户就直接可以用了,我们称之为池化或者云化,虚拟化和云化技术的结合才可称为云计算。此前阶段都只能称为虚拟化。
根据云计算服务对象范围的不同,云计算主要有两种部署模式[3],一种是私有云,一种是公有云。
私有云:私有云指为一个企业或组织提供专用的云环境,通俗点说就是云厂商根据用户需求将虚拟化和云化技术部署在用户自己数据中心里面,私有云的使用对象通常为政府机构、金融机构以及其他希望对环境拥有控制权的中大型组织。
公有云:云供应商将虚拟化及云化技术部署在自己的数据中心里为用户提供服务,用户可以付费进行“租用”,公有云中,所有的“租户”共享相同的硬件、网络和存储资源。常见的公有云供应商有阿里云、腾讯云等。
云计算服务是分层的,大概分为:基础设施层、平台层、软件层,即我们通常听到的IaaS、PaaS、SaaS,这个三层的分法主要是从用户体检的角度出发的。
Infrastructure-as-a-Service(基础设施即服务),用户无需花费高额成本购买基础设施,可通过租用方式使用云服务商提供的基础设施,如服务器、存储资源、网络资源,后期自己安装操作系统、管理应用程序。这种模式下用户节省了对基础设施的高成本投入。以解决住房需求为例,IaaS就相当于直接购买毛坯房,节省了盖房子的过程。IaaS主要的用户是系统管理员。
IaaS云有以下七个基本功能[4]:
(1)资源抽象:使用资源抽象的方法(如资源池)更好地调度和管理物理资源。
(2)资源监控:通过对资源的监控,能够保证基础设施高效率的运行。
(3)负载管理:通过负载管理,不仅能使部署在基础设施上的应用更好地应对突发情况,而且还能更好地利用系统资源。
(4)数据管理:对于云计算而言,数据的完整性、可靠性和可管理性是对IaaS的基本要求。
(5)资源部署:也就是将整个资源从创建到使用的流程自动化。
(6)安全管理:IaaS的安全管理的主要目标是保证基础设施和其提供的资源能被合法地访问和使用。
(7)计费管理:通过细致的计费管理能使用户更灵活地使用资源。
Platform-as-a-Service(平台即服务),云服务商提供基础设施服务的同时也提供平台软件层,包括操作系统、数据库、中间件和运行库,这种模式下用户只需负责管理应用软件即可,而且不论是在部署或者在运行的时候,用户都无需为服务器、操作系统、网络和存储等资源的管理操心,这些繁琐的工作都由PaaS供应商负责处理。这就好比直接购买了简装房,只需在此基础上完善房子的功能即可。PaaS主要的用户是开发人员。
为了支撑整个PaaS平台的运行,供应商需要提供以下四大功能:
(1)友好的开发环境:通过提供SDK和IDE等工具让用户能在本地进行应用的开发和测试。
(2)丰富的服务:PaaS平台会以API的形式将各种各样的服务提供给上层的应用。
(3)自动的资源调度:也就是可伸缩性,不仅能优化系统资源,而且能自动调整资源来帮助运行于其上的应用更好地应对突发流量。
(4)精细的管理和监控:通过PaaS能够提供应用层的管理和监控,比如,能够观察应用运行的情况和具体数值(如吞吐量、反映时间)来更好地衡量应用的运行状态,还有能够通过精确计量应用使用所消耗的资源来更好地计费。
Software-as-a-Service(软件即服务),云服务商将应用软件统一部署在自己的服务器上,用户只要接上网络通过浏览器就能直接使用在云端上运行的应用,而不需要顾虑类似安装等琐事,并且免去初期高昂的软硬件投入。就像购买了精装房一样,直接拎包入住即可。SaaS主要面对的是普通的用户。
要实现SaaS服务,供应商需完成以下四个方面的功能:
(1)随时随地访问:在任何时候或者任何地点,只要接上网络,用户就能访问SaaS服务。
(2)支持公开协议:通过支持公开协议(如HTML等),能够方便用户使用。
(3)安全保障:SaaS服务商需要提供一定的安全机制,不仅要使存储在云端的用户数据绝对安全,而且也要在客户端实施一定的安全机制来保护用户。
(4)多住户机制:通过多住户机制,不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。
说起云计算,总是不可避免地联想到大数据与人工智能,它们是当下互联网技术领域最热门的几个技术,它们之间相互促进相互发展,这里用比较浅显的语言描述三者间的关系方便大家的理解。
云计算是将服务器、存储器、存储设备以及网络资源等打包成云端,为客户提供相关的按使用量付费的模式。
大数据则是将结构化数据和非结构化数据形成的所有数据整合起来,用以发现数据背后相关关系的信息资产。
人工智能(AI)概念比较广泛,一言蔽之就是让计算机或机器能够模拟人类思考和智能行为的一种理论方法和技术。
这三个概念中最早提出的应该是人工智能的概念,这一词最早是在1956年的一次国际会议上提出。但在往后的40年里,人工智能的研究一直没有很大的突破,其原因是当时的硬件和数据量的限制。在这里就要引入一个新的名词,叫做机器学习。机器学习是人工智能的核心,使计算机具有智能的根本途径,它主要使用归纳的方法。所谓归纳,可以理解为不断输入数据,然后从输入的大量数据中学习出规矩,最终得到一个输出。
实现人工智能需要大量的数据,上世纪90年代随着个人计算机的普及,数据的收集和存储变得越来越容易,直到如今,人类已经进入大数据时代。在大数据时代如果只靠自己的个人计算机去计算这个庞大的数据,根本无法实现,这时云计算做为一种基础设施,全面支撑大数据技术,通过服务商提供的大量服务器进行“核爆炸”式的计算并将结果返回。
用层次结构来描述三者间关系,云计算为底层,为产品提供硬件服务的支撑;大数据位于第二层,对数据进行分析,让数据产生价值;最顶层是人工智能,根据大批量的数据,实现机器的智能化决策。三者之间相辅相成,互相促进,并将深刻改变我们的世界。
如今我们正处于信息科技和信息化井喷式发展的时代,云计算、大数据、人工智能作为时代热门话题,它们之间不是独立存在的,随着技术的不断延伸发展,三者之间的边界越来越模糊,这是发展与需求产生的自然趋势,对于我们来说,只有弄清楚它们的本质,抓住机遇,跟上趋势,创新发展,才能在高科技的发展大潮中立于不败之地。