随着全球科技、经济的不断发展,大数据时代的到来,数据量呈现爆发性增加[1]。在社会网络的发展以及消费群体方面,以中国网民数为例,截至2018年6月,中国网民规模达8.02亿,普及率为57.7%;2018年上半年,新增网民2968万人,较2017年末增长3.8%;中国宽带用户中,92%的用户参与到社会化媒体中,大量、频繁地使用博客、微博、社区、视频和图片分享等形式,产生了大量的需要存储的数据[2-4]。人们希望把所有的资源放在一起,能够像使用水电一样方便地通过网络以服务的形式来访问所有资源。对于大型的企业来说,基于成本考虑,面临的最主要问题是如何不必在数据中心的建设或者基础设备的建设上花费巨大,而且能够满足所需要的服务,从而节省更多的人力以及财力,同时,企业对效率和价值的追求,促使具有弹性的业务服务技术的出现。
另外,各行各业需要处理的数据激增。例如,网民们热衷的购物网站、游戏网站、聊天工具等产生的需要在后台处理的海量数据;在医疗数据分析中,大部分医疗相关数据,如医生或护士手写的病例记录、收费记录、处方药记录等以纸质形式转化为数据,美国的医疗健康系统数据量就曾达到了150EB,而热门的基因研究中,已经公开发布的基因DNA微阵列达到50万之多;军事、自然灾害防御系统产生的以及需要处理的海量信息等,这些数据不仅数量巨大,而且数据的格式种类繁多,单个甚至多个计算机的处理、服务能力不足以支持当前数据处理的需求,在这种情况下,云计算技术应运而生。
云计算技术的产生,补充并满足了传统的计算模式不能满足人们对于高性能计算能力或者海量数据的存储空间而引发的迫切需求,同时,信息世界中诸多不确定因素的存在,同样促使具有实时的信息获取、全面的信息分析技术的出现,云计算技术的深入应用更好地弥补了这方面的缺失。
与传统信息技术相比,云计算有以下特点:
(1)虚拟化:云计算通过虚拟化技术,将分布在不同地理位置的资源整合成逻辑上统一的资源池,用户可以随时随地通过接入互联网来获取云计算所提供的服务,而不必关心这些资源所部署的具体位置。
(2)面向服务:云计算资源池中的资源以服务的形式提供给用户,服务成本低且计费灵活。大量的廉价设备被用来部署云计算系统的服务器节点,这使得云计算系统的资源价格具有显著的成本优势。
(3)动态性:尽管云资源是虚拟化的,但仍可以提供高性能和可靠的云服务,资源本身的灵活性使其可以根据用户的需求进行动态调整。
(4)高可靠性:云计算系统具有多副本容错、计算节点可以互换等特点,可以为用户提供可靠的服务。
(5)通用性:云计算不局限于特定的操作系统平台、特定的应用,在云计算环境下支持的应用灵活度高、具有很强的通用性。
因此,充分利用云计算的特点,云服务提供商可以极大地提高资源(硬件、软件、空间、人力、能源等)的利用率和各类业务的响应速度,有效地聚合工作中任务的各个方面[5,6]。在云计算系统中,计算设施可以不设立在本地,用户不需要关心运行计算所提供资源的具体位置,用户关心的只是提交自己的应用需求,将实际的应用需求传给“云端”,具体的实现由“云端”中的分析、处理、执行设备或机构进行协同合作,之后,云计算系统把执行的结果反馈给用户。
不仅飞速发展的技术行业需要云计算技术,渗透各行各业的大数据技术同样需要云计算技术作为稳定发展的技术支撑。
(1)云计算是提取大数据的前提
信息社会,数据量在不断增长,技术在不断进步,在海量数据的前提下,提取、处理和利用数据的成本超过了数据价值本身,此时,来自公有云、私有云以及混合云之上的强大的云计算能力,对于降低数据提取过程中的成本不可或缺。
(2)云计算可高效分析数据
数据分析阶段,引入公有云和混合技术,此外,类似Hadoop的分布式处理软件平台可用于数据集中处理阶段。当完成数据分析后,提供分析的原始数据不需要一直保留,可以使用私有云分析处理结果,即可用信息导入数据库。
(3)云计算提供数据管理虚拟化
可用信息最终用来指导决策,通过将软件即服务应用于云平台中,可将可用信息转化到用户现有系统中,帮助用户强化管理模式。
行业信息与云计算的结合将使大数据分析变得更简单,对大数据与云计算结合领域进行深入探索,引发了计算机行业的变革,而这种变革也使得云计算技术又迅速渗透到全球的不同行业中,如医疗、军事、农业、工业生产等领域不断出现对云计算技术的需求,特别是云计算技术对于以上行业产生的大数据的存储、管理、分析,有利地推动了各个行业的飞速发展。
云计算是计算技术为人类提供服务的方式向智能化、自动化、人性化纵深发展的一场革命,而云计算的发展也随着人类社会的发展不断完善,其发展过程如图1-1所示。
图1-1 云计算的发展
随着云计算技术的不断发展,其在计算机行业的影响力逐步强大:
(1)亚马逊服务推出了其桌面即服务WorkSpaces[7-9],进一步扩展其云生态系统。
(2)微软在2013年推出Cloud OS云操作系统[10],包括Windows Server 2012 R2、System Center 2012 R2、Windows Azure Pack在内的一系列企业级云计算产品及服务。Windows Azure为开发人员提供随选的计算和存储环境,以便在Internet上通过Microsoft数据中心来托管、扩充及管理Web应用程式。
(3)IBM在2013年推出基于OpenStack和其他现有云标准的私有云服务[11,12],并开发出一款能够让用户在多个云之间迁移数据的云存储软件InterCloud,而且正在为 InterCloud申请专利,这项技术旨在为云计算增加弹性,并提供更好的信息保护。
因此,随着当今大数据的不断发展,研究云计算的任务调度更能促进其发展。而不同的分布式系统都有着自身的特色,需要扬长避短地使用才可以更好地发挥其性能,云计算也具有其本身的固有特点,同样也需要对其进行优化,才可以发挥其自身的优势。
在云计算系统中,不同计算能力的资源,用户使用或者服务提供商提供的成本也不同。对于时间敏感型的应用,提供具有较强处理能力的资源,使得任务运行完成所需的时间较短;而对于成本敏感型的应用,可以提供较低处理成本的资源,使得任务运行完成所需的成本较低。云计算提供了很多的云服务,从实际应用的方面考虑,云计算可以分为基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)三个层次[13-15],其关系表示如图1-2所示。(www.xing528.com)
图1-2 云计算服务体系结构
它们之间的关系主要可以从两个角度进行分析:其一是用户体验角度,从这个角度而言,它们之间的关系是独立的,因为它们面对不同类型的用户。其二是技术角度,从这个角度而言,它们并不是简单的继承关系(SaaS基于PaaS,而PaaS基于IaaS),因为首先,SaaS可以基于PaaS或者直接部署在IaaS之上,其次,PaaS可以构建于IaaS之上,也可以直接构建在物理资源之上。
IaaS(Infrastructure-as-a-Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施中获得服务。例如硬件服务器租用。IaaS的基本功能:
(1)资源抽象:使用资源抽象方法,例如资源池,能更好地调度和管理物理资源。
(2)资源监控:通过对资源的监控,能够保证基础设施高效率地运行。
(3)负载管理:通过负载管理,不仅能使部署在基础设施上的应用更好地应对突发情况,而且还能更好地利用系统资源。
(4)数据管理:对云计算而言,数据的完整性、可靠性和可管理性是对IaaS的基本要求。
(5)资源部署:将整个资源从创建到使用的流程自动化。
(6)安全管理:IaaS的安全管理的主要目标是保证基础设施和其提供的资源能被合法地访问和使用。
(7)计费管理:通过细致的计费管理能使用户更灵活地使用资源。
PaaS(Platform-as-a-Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。例如,软件的个性化定制开发。
为了支撑整个PaaS平台的运行,供应商需要提供四大功能:
(1)友好的开发环境:通过提供SDK和IDE等工具让用户能在本地方便地进行应用的开发和测试。
(2)丰富的服务:PaaS平台会以API的形式将各种各样的服务提供给上层的应用。
(3)自动的资源调度:即可伸缩特性,云计算不仅能优化系统资源,而且能自动调整资源来帮助运行于其上的应用更好地应对突发流量。
(4)精细的管理和监控:通过PaaS能够提供应用层的管理和监控,比如,能够观察应用运行的情况和具体数值,例如吞吐量、响应时间,以更好地衡量应用的运行状态,并能够通过精确计量应用使用所消耗的资源来更好地计费。
SaaS(Software-as-a-Service):软件即服务。它是一种通过Internet提供软件的模式,用户无须购买软件,而是向提供商租用基于Web的软件来管理企业的经营活动。例如,阳光云服务器。
要实现SaaS服务,供应商需要完成四个方面的要求:
(1)随时随地访问:在任何时候或者任何地点,只要接上网络,用户就能访问云计算系统中的SaaS服务。
(2)支持公开协议:通过支持公开协议,例如HTML4/5,能够方便用户使用。
(3)安全保障:SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于绝对安全的环境中,而且也要在客户端实施一定的安全机制,例如HTTPS,来保护用户。
(4)多租户(Multi-Tenant)机制:通过多租户机制,不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制服务以满足用户的特殊需求。
但是在这三个层次中都存在着相同的问题,即任务与资源之间如何调度的问题。各个任务执行所需要的成本、时间以及系统负载均衡需求的满足需要用到云计算任务优化调度策略。云计算的商业化特性,以及商业化的应用发展,使其必须具有通用性设计,并能为用户的动态需求提供多样化的服务,这也促使云计算服务提供商需要有自己的资源分配与任务调度策略,才能高效地运营服务,如在Amazon的弹性云产品中,虚拟机的利用率需要合理的调度来保证;在线ERP系统提高用户满意度的方法是优化其系统中的任务调度算法。
云计算系统中的运营成本、用户对系统的满意度以及稳定性等都是由任务调度策略的有效性决定的。然而,在云计算系统中,海量数据的存储、资源的有效利用、大数据的复杂解析、计算的弹性需求、用户任务的调度具有多方面的复杂性,以往的任务优化调度不能很好地适用于云计算的系统环境中。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。