专利名称:用于对云计算服务进行评测的系统及评测方法
技术领域:
本发明涉及计算机领域,特别涉及一种用于对云计算服务进行评测的系统及评测方法。
背景技术:
云计算(CloudComputing)是虚拟化(Virtualization)、分布式计算 (Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的系统,并借助SaaS(Software as a Service,软件即服务)、PaaS(Platform as a Service,平台即服务)、 IaaS(Infrastructure as a Service,基础设施即服务)等服务方式把强大的计算能力分发到终端用户手中。目前国内外市场上有众多的公共云计算服务商,他们为用户提供了各种类型的云计算服务。这些云计算服务规格不一,价格差别很大。以IaaS为例,用户购买的云计算服务是云主机(一种通过虚拟化技术实现的具有和物理计算机等同功能的计算资源)。云主机的规格多种多样,通常包括CPU数量及速度,内存大小,硬盘大小,网络带宽等。再以由多家云计算服务商提供的存储服务为例,用户购买的是文件存储服务(用户通过服务接口可以读取和写入文件,服务商按照文件的大小和存储时间向用户收费)。这些存储服务在不同网络环境下的文件读取速度和写入速度差别很大,并不能在服务条款里得到保证。云计算服务商向用户提供了多种规格的云服务以供选择。可供选择的云服务的多样性固然方便了用户,但面对众多的选择,普通用户又会遇到无法区分各种云计算服务的性能价格比,从而浪费资金、计算资源等问题。即使是专业用户,面对众多选择也需要投入大量的资金、时间和精力来对各种云计算服务进行手动评测,这样做不仅效率低,而且在准确率上也依赖于技术人员的经验,并且很难精确获得一项或者多项云服务的长期性能特点,如时间-性能曲线。
发明内容
本发明的目的是克服现有技术无法对众多云计算服务商所提供的云计算服务的性能做出客观评测,不利于用户根据自身业务特点选择云计算服务的缺陷,从而提供一种较为客观、公正的云计算评测系统与方法。为了实现上述目的,本发明提供了一种用于对云计算服务进行评测的系统,包括中央管理节点、评测程序仓库节点以及至少一个评测节点;其中,所述的评测程序仓库节点连接到所述的中央管理节点上,所述的中央管理节点与所述至少一个评测节点加以连接;所述的评测程序仓库节点保存用于对云服务进行评测的测试程序;所述的中央管理节点用于对所述的评测程序仓库节点和所述至少一个评测节点进行管理,并存储所述至少一个评测节点所返回的评测数据;所述的至少一个评测节点对所要评测的云服务做评测操作;所述的中央管理节点包括中央控制模块、评测节点控制模块、云服务信息列表、测试程序管理模块、数据存储模块、数据演示模块以及评测数据选择模块;其中,所述的中央控制模块用于控制整个评测过程的开始和结束,相关评测参数的设置,测试程序的增加和删除以及评测数据展示的更新;所述的评测节点控制模块用于控制部署在不同地理位置的各个所述评测节点对各项云服务进行评测,收集来自于各个所述评测节点的评测结果数据,并将这些数据发送至所述的数据存储模块;所述的云服务信息列表中存储了所有需要被评测的云服务的信息,所述云服务的信息包含了被评测的各项云服务的访问信息;所述的测试程序管理模块负责向所述测试程序仓库节点中添加或者删除测试程序;所述的数据存储模块用于存储每次评测的数据结果;所述评测数据选择模块根据需要从所述数据存储模块中读取满足用户需要的评测结果数据,并将这些评测结果数据传输到数据演示模块;所述数据演示模块负责将评测的数据结果演示给用户。上述技术方案中,所述的评测节点包括评测控制模块、测试程序信息列表、云服务信息列表、评测执行模块;其中,所述的评测控制模块控制各项云服务每一次评测的开始和结束,以及将评测结果数据定期地返回给所述中央控制节点;所述的测试程序信息列表中存储了该评测节点所要评测的各项云服务所对应的测试程序信息,该列表用于从评测程序仓库节点查询并获取对应的测试程序;所述的云服务信息列表中存储了该评测节点所负责的云服务的访问控制信息;所述的评测执行模块部署并调用所述的测试程序以评测云服务。本发明还提供了一种应用于所述的用于对云计算服务进行评测的系统的云计算评测方法,包括步骤I)、所述中央管理节点选定所要评测的云服务,确定评测该云服务所需的测试程序,从所述至少一个评测节点中选择对应于所要评测的云服务的评测节点;步骤2)、步骤I)中所选定的评测节点启动所要评测的云服务,调用所述测试程序对所要评测的云服务进行评测;步骤3)、返回并存储评测结果。上述技术方案中,所述的步骤2)包括步骤2-1)、所述评测节点中的评测控制模块向所述评测执行模块发送评测启动信号;步骤2-2)、收到评测启动信号后,所述评测执行模块从所述云服务信息列表模块中读取需要进行评测的云服务的访问控制信息;步骤2-3)、根据所需要评测的云服务种类,所述评测执行模块从所述测试程序信息列表模块中读取当前被评测云计算服务的所需要的测试程序信息;步骤2-4)、评测执行模块根据步骤2-2)中读取的访问控制信息开启当前待评测的云服务;步骤2-5)、根据所开启的云服务的属性,所述评测执行模块查询所述测试程序仓库节点,将所需测试程序或者读取到当前评测节点,或者将其发送至云服务端;步骤2-6)、根据所开启的云服务属性,所述评测执行模块或者在本地或者在云服务端执行步骤2-5)所读取的各项测试程序;步骤2-7)、待所有评测程序执行完毕后,所述评测执行模块将评测程序的输出结果经由所述评测控制模块发送到所述中央管理节点并保存;步骤2-8)、所述评测执行模块根据步骤2-2)中读取的访问控制信息关闭当前已经被评测的云服务;步骤2-9)、所述评测执行模块重复执行步骤2-3)-步骤2_7),直到所述云服务信息列表模块中的所有云服务都已被评测。上述技术方案中,所述的评测结果包括CPU每秒钟内所执行某一项特定运算的次数、内存系统的读写速度、磁盘存储系统的读写速度、访问评测节点以及其他网络站点的时延和带宽、某项应用服务程序在单位时间内的吞吐量。本发明的优点在于I)提出的评测系统可以自动地对多种具有不同控制和访问接口的云计算服务进行评测;2)系统管理员可以根据预算资金方便地调整评测的时间间隔;3)最终评测结果为被评测的云计算服务在不同物理地点被访问时随时间变化的性能曲线图,较为真实地反映出一项云计算服务的长期性能特点;4)用户可以灵活选择需要评测的云服务以及所要评测的性能指标。
图I为在一个实施例中,本发明的云计算服务评测系统及其运行环境的示意图;图2为在一个实施例中,本发明的云计算服务评测系统中的评测程序仓库节点的结构图;图3为在一个实施例中,本发明的云计算服务评测系统中的中央管理节点的结构图;图4为在一个实施例中,本发明的云计算服务评测系统中的评测节点的结构图。
具体实施例方式在对本发明做详细说明前,首先对本发明中所涉及的相关概念做统一的描述。I、云服务商提供公共云计算服务的厂商,如亚马逊(aws.amazon.com)和云快线 (cloudex. cn)等公司。2、云服务云服务商提供的单项云计算服务,如亚马逊提供的EC2( —种云主机服务)、S3 ( —种云存储服务)等服务。3、管理员负责评测服务的配置和管理的工作人员。下面结合附图和具体实施方式
对本发明做进一步说明。在图I中给出了本发明的云计算服务评测系统及其运行环境的示意图,在一个云计算环境中包括有至少一个云服务商,如图I中所示的云服务商A、云服务商B,每个云服务商会向外提供至少一个云服务,如图I中所示的云服务2。每个云服务商会向用户提供应用程序接口(API)来管理和控制其购买的云服务,如图I所示的云管理接口。本发明的云服务评测系统包括有一个中央管理节点,一个评测程序仓库节点以及至少一个评测节点。所述的评测程序仓库节点连接到所述的中央管理节点上;所述的至少一个评测节点各自与所述的中央管理节点连接,它们分布在网络中的不同物理位置,以获得各种云计算服务从不同地域访问时所表现出的性能特点。本发明的云服务评测系统中的所有节点,既可以部署运行于传统的服务器上,也可以部署运行于提供IaaS或者PaaS服务的云中。下面对云服务评测系统中各个部分的功能与组成做进一步的说明。在图2中对所述的评测程序仓库节点的组成做了进一步的说明。图中实线箭头表示控制与被控制关系,虚线箭头表示数据流向。虚线框内为该节点的组成模块测试程序存储模块。该模块存储所有用于对各项云服务进行评测的测试程序。这些测试程序包括但不限于以下两类1)基准性能测试程序。对于IaaS类型的云服务,因为其提供的计算环境与传统计算环境类似,可以使用传统的基准测试程序对该类云服务进行评测。对于其他类型的云服务,由于每家云计算服务商提供的各项云服务的接口不同,需要由开发人员单独开发基准测试程序。但是所有的基准测试程序必须客观地反映出云服务的性能特点。例如,对于类似亚马逊S3存储服务的云服务,对应的基准测试程序可以随机生成各种大小的文件, 多次将这些文件上传至云服务并测量每次上传的时间,便可以评测该云服务在当前网络位置的上传速度。2)应用整体性能测试程序。本文提出的评测系统也支持基于IaaS和PaaS 的应用服务程序的整体性能评测。用户可以将待评估的应用程序和对应的性能测试程序通过系统管理员提交至本发明的评测系统。评测系统在用户指定的一组云服务上部署并运行应用程序,然后根据应用程序特点,在评测节点或者云服务端运行对应的性能测试程序。例如,应用程序可以是一种数据库系统,其对应的性能测试程序执行各种数据库查询操作并记录查询时间。在图3中对所述的中央管理节点的组成做了进一步的说明。图中实线箭头表示控制与被控制关系,虚线箭头表示数据流向。虚线框内为该节点的组成模块,包括中央控制模块、评测节点控制模块、云服务信息列表、测试程序管理模块、数据存储模块、数据演示模块。下面对上述模块的具体功能以及相关操作做进一步说明。所述的中央控制模块用于控制整个评测过程的开始和结束,相关评测参数的设置,测试程序的增加和删除以及评测数据展示的更新。所述的评测节点控制模块用于控制部署在不同地理位置的各个评测节点对各项云服务进行评测,收集来自于各个评测节点的评测结果数据,并将这些数据发送至所述的数据存储模块。所述的云服务信息列表中存储了所有需要被评测的云服务的信息,所述云服务信息包含了由管理员添加的被评测的各项云服务的访问信息,例如云服务的访问地址(如IP 地址或者URL)、用户名、密码或者密钥等。通过云计算服务提供商提供的云计算管理接口, 这些信息用于在评测一项云服务前开启该云服务,在评测结束后关闭该云服务。整个评测系统的管理员可对云服务信息列表中所保存的云服务的种类进行增加或删除,并根据云服务种类的变化增加或删除相应的访问信息。
7
所述的测试程序管理模块负责向测试程序仓库节点中添加或者删除各种基准性能和应用性能测试程序。所述的数据存储模块用于存储每次评测的数据结果。所述的数据演示模块负责将保存在数据存储模块中的评测数据演示给用户。作为一个优选实现方式,在又一个实施例中,所述的中央管理节点还包括有评测数据选择模块,所述评测数据选择模块根据用户或管理员的需要从所述数据存储模块中读取满足用户需要的评测结果数据,并将这些评测结果数据传输到数据演示模块,由所述数据演示模块予以演示。在前一实施例中,评测节点在中央管理节点的控制下生成评测数据后会被保存到数据存储模块,在一定时间周期后,所述数据存储模块中保存的评测数据都被发送到数据演示模块,由该模块演示给用户。在该实施例中,评测数据会没有选择地演示给用户,当数据量较大时,用户可能就无法关注重要的评测数据。本实施例中采用的评测数据选择模块有助于解决这一问题。例如,用户希望知道磁盘存储系统的读写速度在10兆字节每秒以上的云服务有哪些。利用所述评测数据选择模块就可以将磁盘存储系统的读写速度在10兆字节每秒以上的云服务读取出来。在图4中对所述评测节点的组成做了进一步的说明。图中实线箭头表示控制与被控制关系,虚线箭头表示数据流向。虚线框内为该节点的组成模块,包括评测控制模块、测试程序信息列表、云服务信息列表、评测执行模块。下面对上述模块的具体功能以及相关操作做进一步说明。所述的评测控制模块控制每一次每项云服务评测的开始和结束,以及将评测结果数据定期地返回给中央管理节点。每项云服务测试的时间间隔可由管理员指定,通过中央管理节点中的评测节点控制模块发送至各个评测节点并存储于该模块中。所述的测试程序信息列表中存储了该评测节点所负责的各项云服务对应的测试程序信息。该列表中的数据为评测程序仓库节点中存储的测试程序的一个子集。根据所要评测的云服务的动态变化情况,系统管理员可对该模块中所保存的测试程序的种类进行增加或删除。所述的云服务信息列表中存储了该评测节点所负责的云服务的访问控制信息。该列表中的数据为中央控制节点中的云服务信息列表中的数据的一个子集。根据评测节点的自身性能和所处网络环境,系统管理员可以对该模块中所保存的云服务访问控制信息进行增加或者删除。所述的评测执行模块根据所述评测控制模块的控制命令首先通过云服务管理接口开启需要被评测的云服务,然后从评测程序仓库节点获取与所要评测的云服务对应的一系列测试程序并在当前评测节点内或者在指定的云服务上运行,从而实现对云服务的评测。在当前一轮评测结束后,该模块关闭被评测的云服务,并将评测结果发送至所述的评测控制模块。前文提到,评测程序仓库节点中还包括有应用整体性能测试程序,评测执行模块同样可以通过应用整体性能测试程序来实现对部署在云服务端的应用程序进行评测。下面结合上述模块,对本发明的云服务评测系统对云服务进行评测的过程进行说明。在系统安装配置阶段,由系统管理员将各个评测节点部署在不同的地理位置。部署既可以通过传统的将安装有本评测系统的服务器接入网络来实现,也可以通过将本评测系统部署在基于IaaS或者PaaS的云中。系统管理员通过中央管理节点向系统添加各种需要被评测的云服务的访问信息,以及对应于各种云服务的基准测试程序和应用整体性能测试程序。根据各个评测节点的地理位置和其他特点,系统管理员接着给每个评测节点分配需要进行评测的云服务和每项云服务评测的时间间隔T。根据中央管理节点的控制命令,评测系统开始运行,每隔时间T,在中央管理节点的控制下,各个评测节点开始执行以下一系列操作步骤I)、评测控制模块向评测执行模块发送评测启动信号;步骤2)、收到评测启动信号后,评测执行模块从云服务信息列表模块中读取需要进行评测的云服务的访问控制信息;步骤3)、根据所需要评测的云服务种类,评测执行模块从测试程序信息列表模块中读取当前被评测云计算服务的所需要的测试程序信息;步骤4)、评测执行模块根据步骤2)中读取的访问控制信息开启当前待评测的云服务;步骤5)、根据所开启的云服务属性,评测执行模块查询测试程序仓库节点,将所需测试程序或者读取到当前评测节点,或者将其发送至云服务端;步骤6)、根据所开启的云服务属性,评测执行模块或者在本地或者在云服务端执行步骤5)所读取的各项评测程序;步骤7)、待所有评测程序执行完毕后,评测执行模块将评测程序的输出结果经由评测控制模块发送到中央管理节点并保存于其中的数据存储模块;步骤8)、评测执行模块根据步骤2)中读取的访问控制信息关闭当前已经被评测的云服务;步骤9)、评测执行模块重复步骤3)-步骤8),直到云服务信息列表模块中的所有云服务都已被评测;(为提高评测的效率,也可将步骤3)到步骤8)置于一个线程内,通过多线程的方式并行地对多项云服务进行评测。)步骤10)、评测执行模块通知评测控制模块当前一轮的评测结束,控制模块发出结束命令。云服务的评测结果包括但不限于如下指标1)CPU每秒钟内所执行某一项特定运算的次数;2)内存系统的读写速度兆字节每秒;3)磁盘存储系统的读写速度兆字节每秒;3)访问评测节点以及其他网络站点的时延和带宽;4)某个应用服务程序的吞吐量比如一个数据库系统每秒钟可以执行某项查询操作的次数。在上述指标的基础上,可进一步将上述指标中的数据与云服务商的标价相除,得到若干个用于考量性价比的指标,用户根据该指标可以对云服务商所提供的云服务加以选择。为了便于用户比较各种云服务的性能,保存在数据存储模块中的评测数据可通过数据演示模块展示给用户。在这一展示的过程中,控制模块向数据演示模块发送控制命令, 通知其演示数据或者更新已演示的数据,数据演示模块从数据存储模块读取最新的评测数据后,将其演示出来。与传统的评测系统相比,本发明的云服务评测系统将各项云服务的访问和控制信息存储于云服务信息列表中,而评测节点通过这些信息能够开启和关闭需要被评测的云服务,这使得本发明的云服务评测系统可以自动地对具有不同访问和控制接口的云计算服务进行评测。与传统的评测系统相比较,本发明提出的云服务评测系统通过集成云服务管理控制功能,可以利用各个云计算提供商提供的管理接口在评测开始前后动态地开启和关闭各种云服务,因此用户只需在各种测试程序运行时为所使用的云计算服务付费,大大降低了用户的评测成本。本发明的云服务评测系统通过设置评测时间间隔参数,可以让用户方便地根据评测预算来设置性能采样的频率。考虑到云计算通过公共互联网来提供服务,其某些性能指标也与使用者所处的地理位置相关。本发明的云服务评测系统通过在不同地理位置部署评测节点,可以获得各种云服务在不同地理位置的性能特点,使得评测结果更加全面、准确。本发明的云服务评测系统还允许用户灵活选择需要评测的云服务以及所要评测的性能指标,具有广泛的适用性。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种用于对云计算服务进行评测的系统,其特征在于,包括中央管理节点、评测程序仓库节点以及至少一个评测节点;其中,所述的评测程序仓库节点连接到所述的中央管理节点上,所述的中央管理节点与所述至少一个评测节点加以连接;所述的评测程序仓库节点保存用于对云服务进行评测的测试程序;所述的中央管理节点用于对所述的评测程序仓库节点和所述至少一个评测节点进行管理,并存储所述至少一个评测节点所返回的评测数据;所述的至少一个评测节点对所要评测的云服务做评测操作;所述的中央管理节点包括中央控制模块、评测节点控制模块、云服务信息列表、测试程序管理模块、数据存储模块、数据演示模块以及评测数据选择模块;其中,所述的中央控制模块用于控制整个评测过程的开始和结束,相关评测参数的设置,测试程序的增加和删除以及评测数据展示的更新;所述的评测节点控制模块用于控制部署在不同地理位置的各个所述评测节点对各项云服务进行评测,收集来自于各个所述评测节点的评测结果数据,并将这些数据发送至所述的数据存储模块;所述的云服务信息列表中存储了所有需要被评测的云服务的信息,所述云服务的信息包含了被评测的各项云服务的访问信息;所述的测试程序管理模块负责向所述测试程序仓库节点中添加或者删除测试程序;所述的数据存储模块用于存储每次评测的数据结果;所述评测数据选择模块根据需要从所述数据存储模块中读取满足用户需要的评测结果数据,并将这些评测结果数据传输到数据演示模块;所述数据演示模块负责将评测的数据结果演示给用户。
2.根据权利要求I所述的用于对云计算服务进行评测的系统,其特征在于,所述的评测节点包括评测控制模块、测试程序列表、云服务信息列表、评测执行模块;其中,所述的评测控制模块控制各项云服务每一次评测的开始和结束,以及将评测结果数据定期地返回给所述中央控制节点;所述的测试程序列表中存储了该评测节点所要评测的各项云服务所对应的测试程序;所述的云服务信息列表中存储了该评测节点所负责的云服务的访问控制信息;所述的评测执行模块调用所述的测试程序以评测云服务。
3.一种应用于权利要求1-2之一的用于对云计算服务进行评测的系统的云计算评测方法,包括步骤I)、所述中央管理节点选定所要评测的云服务,确定评测该云服务所需的测试程序,从所述至少一个评测节点中选择对应于所要评测的云服务的评测节点;步骤2)、步骤I)中所选定的评测节点启动所要评测的云服务,调用所述测试程序对所要评测的云服务进行评测;步骤3)、返回并存储评测结果。
4.根据权利要求3所述的云计算评测方法,其特征在于,所述的步骤2)包括步骤2-1)、所述评测节点中的评测控制模块向所述评测执行模块发送评测启动信号; 步骤2-2)、收到评测启动信号后,所述评测执行模块从所述云服务信息列表模块中读取需要进行评测的云服务的访问控制信息;步骤2-3)、根据所需要评测的云服务种类,所述评测执行模块从所述测试程序信息列表模块中读取当前被评测云计算服务的所需要的测试程序信息;步骤2-4)、评测执行模块根据步骤2-2)中读取的访问控制信息开启当前待评测的云服务;步骤2-5)、根据所开启的云服务的属性,所述评测执行模块查询所述测试程序仓库节点,将所需测试程序或者读取到当前评测节点,或者将其发送至云服务端;步骤2-6)、根据所开启的云服务属性,所述评测执行模块或者在本地或者在云服务端执行步骤2-5)所读取的各项评测程序;步骤2-7)、待所有评测程序执行完毕后,所述评测执行模块将评测程序的输出结果经由所述评测控制模块发送到所述中央管理节点并保存;步骤2-8)、所述评测执行模块根据步骤2-2)中读取的访问控制信息关闭当前已经被评测的云服务;步骤2-9)、所述评测执行模块重复执行步骤2-3)-步骤2-7),直到所述云服务信息列表模块中的所有云服务都已被评测。
5.根据权利要求4所述的云计算评测方法,其特征在于,所述的评测结果包括CPU每秒钟内所执行某一项特定运算的次数、内存系统的读写速度、磁盘存储系统的读写速度、访问评测节点以及其他网络站点的时延和带宽、某项应用服务程序在单位时间内的吞吐量。
全文摘要
本发明公开了一种用于对云计算服务进行评测的系统,包括中央管理节点、评测程序仓库节点以及至少一个评测节点;其中,评测程序仓库节点连接到中央管理节点上,中央管理节点与至少一个评测节点加以连接;评测程序仓库节点保存用于对云服务进行评测的测试程序;中央管理节点用于对评测程序仓库节点和至少一个评测节点进行管理,并存储至少一个评测节点所返回的评测数据;至少一个评测节点对所要评测的云服务做评测操作。本发明提出的评测系统可以自动地对多种具有不同控制和访问接口的云计算服务进行评测。
文档编号H04L29/08GK102594617SQ20121000831
公开日2012年7月18日 申请日期2012年1月12日 优先权日2012年1月12日
发明者张继勇, 杜佳庆 申请人:易云捷讯科技(北京)有限公司