浅谈云计算及其技术
2018-01-14贺贝
贺贝
(河南工业贸易职业学院,河南 郑州 450053)
随着网络的日益普及和IT技术的迅猛发展,网络存储和计算等服务不断深入到生活的方方面面。目前,PC依然是人们日常工作生活的核心工具,用来处理文档、存储数据、发送E-mail、业务计算或与别人信息共享等。在 “云计算”时代,“云”会完成存储和计算工作。用户只需要一台能上网的电脑或其他终端设备,不需要安装任何应用软件,不需要关心存储或计算发生在哪朵“云”上,就可以存储大量数据,通过网络服务来实现需要做的一切,甚至包括超级计算。重要的是,用户不必担心个人数据会丢失,因为“云”会帮用户安全保管。这样的愿景取决于互联网技术带来的一种新型网络计算模式——云计算。
云计算的思想可以追溯到20世纪60年代,图灵奖得主John McCarthy曾说 :“计算将成为公共基础设施。”这意味着计算能力可以被用作一种商品,就如燃气和水。在最基本的意义上,云计算就是数据存储在云端,应用和服务存储在云端,充分利用数据中心强大的计算能力,实现用户业务系统的自适应性[1]。2007年10月,IBM和谷歌宣布在云计算领域的合作之后,云计算引起了广泛关注,成为业界和学术界的一个热点。
1 云计算的定义
目前,云计算系统尚无统一定义,云计算提供商根据自己的业务推出相关的云计算策略。Hewitt认为云计算系统主要是在云服务器上永久存储信息,而在使用信息时只能在客户端缓存,客户端可以是台式机、笔记本、手持式设备等[2]。Wang Lizhe等人从云计算系统应具备的功能出发,给出了科学云计算系统的定义,指出云计算系统不仅为用户提供硬件服务HaaS、软件服务SaaS和数据资源服务DaaS,还可以把平台服务提供给用户,用户根据需要向计算平台提出自己的硬件配置、软件安装和数据访问申请[3]。Buyya等人认为云计算是由一组内部互联虚拟机组成的并行分布式计算系统,该系统可以基于服务提供商和客户之间的良好服务水平协议动态提供计算资源。加州大学伯克利分校认为,云指的是数据中心的硬件和系统软件,分为公共云(开放给公众)和私有云(企业组织本身),在公共云基础上,云计算系统意味着终端用户应用以因特网服务的形式由SaaS提供商交付,并且云提供商向SaaS提供数据核心的软硬件服务。
2 云计算系统的特点
(1)支持虚拟化。云计算系统可作为一个虚拟资源池,通过在一个服务器上部署多个虚拟机和应用,提高资源利用率 ;当一个服务器过载时支持负载迁移。
(2)提供服务质量保证(QoS)。云计算系统能为用户提供符合QoS要求的服务,并可以根据用户需要对系统进行调整,如硬件配置、网络带宽、存储容量等。
(3)高可靠性、可用性和可扩展性。云计算系统必须确保能够为用户提供可靠的服务,确保用户可以随时随地访问所需的服务。当用户系统的规模发生变化时,云计算系统可以根据用户需要自由地进行折弯。
(4)自主性。云计算系统是一个自治系统,系统管理对用户是透明的,不同的管理任务自动完成。系统硬件、软件和存储可自动配置,以便用户按需提供。
3 云计算及其相关技术
3.1 虚拟化技术
云计算的关键技术是虚拟化技术。通过虚拟化单个服务器可支持多个虚拟机运行多个操作系统和应用程序,从而提高服务器的利用率,并通过虚拟化向应用提供可扩展的平台服务。虚拟机技术的核心是HyperVisor(虚拟机监控程序),它在虚拟机和底层硬件之间创建一个抽象层,可以拦截操作系统对硬件的调用,并为驻留在其上的操作系统提供虚拟CPU和内存。目前,VMware ESX和Citrix xenService可以直接在硬件上运行,虚拟操作系统运行在HyperVisor上,可以根据用户需求提供IT基础设施。
随着虚拟化技术的应用,虚拟资源的管理是研究的热点之一。有专家提出了一种将VM供应模型集成到现有资源管理框架中的方法。VM的管理通过两级调度方法集成到批量调度中,为用户提供最大的努力,但目前不支持虚拟资源的预订服务。在调度短期租用请求时,传统的调度器很难完成严格的预定资源服务租约。另一种方法提出了利用虚拟机进行无缝挂起和恢复计算的能力来解决这一问题。对于具有较不严格可用性需求的批处理任务,调度器首先挂起当前的计算任务,然后以严格的可用性要求完成作业,例如预定的资源分配。
3.2 数据管理技术
随着Web 2.0的出现,互联网上的信息呈指数级增长,如搜索引擎、在线事务处理等应用系统处理数据的规模越来越大。云计算系统必须给用户提供一个简单易用的编程模型来并行处理用户的数据,从而更好地利用云计算系统的资源。因此研究者提出了一些分布式系统和并行编程模型来支持大规模数据处理。
为了能够对海量数据进行高效的分析处理和对特定数据进行快速搜索,云计算系统的数据管理技术必须具备对海量数据的存储、读取后进行大量分析的能力。数据的读操作频率要远大于数据的更新频率,因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式,将表按列划分后存储。云计算的数据管理技术最著名的是Google的Big2 Table数据管理技术。Hadoop开发团队正在开发类似Big Table的开源数据管理模块。采用列存储的方式管理数据,如何提高数据的更新速率以及随机读速率,是未来数据管理技术必须解决的问题。
3.3 云计算技术下的海量数据挖掘技术
现代数据挖掘算法往往需要大量的训练过程,并做好相关的数据统计,实现模型参数的求解和优化。海量数据挖掘是一种基于大量分布式基础数据挖掘的分布式并行算法。在提供详细的并行数据挖掘算法的过程中,有必要结合关联规则的学习分类方法来进行聚类和流数据挖掘。对于分布式图书挖掘中的中间件库,MAHOUT是一种开源的、可扩展的分布式数据挖掘,其中组件间库的构建过程实现了聚类分类和协同过滤的应用,并完成了进化规划数据挖掘算法。结合Hadoop云计算的高效操作和基本框架,可以很好地挖掘和应用云计算海量数据,降低成本。
3.4 Web Services与SOA
云服务通常以Web服务的形式实现。云服务的组织和协作可以在面向服务的体系结构中进行管理。SOA架构下的云服务可以部署在各种分布式平台上,也可以通过网络访问各种服务。近年来,SOA受到了广泛关注,但这并不是一个新概念。基于网络的SOA的一些早期实例是RPC、DCOM和0RBS(对象请求代理),而最近的网格计算是基于SOA的体系结构和解决方案。
在SOA环境中,终端用户请求IT服务(或一组服务),希望这些服务满足一定的QoS要求,并且用户请求即时服务,或者在特定延迟之后满足[4]。可以预见,在未来十年内,基于服务的解决方案将是向个人和机构提交信息和其他IT相关功能的主要手段。例如,软件应用、基于Web的服务、个人和商业桌面计算等。
4 结束语
云计算系统已经成为下一代IT系统的发展趋势,云计算技术的发展和应用是一种必然趋势,是企业、家庭和个人的一次划时代的革命[5],但云计算技术仍存在不能忽视的技术困难和弱点,云系统的安全性、自治性、服务质量、服务描述发现、云交互等方面,还需要进一步研究。纵观全球高端云计算技术的发展,不可否认的是,云计算技术服务有很大的发展空间。相信在不久的将来,云计算技术将取得巨大的进步。