李建军1,2
(1. 中国电子科技集团公司第三十二研究所,上海 200233;2. 广西大学 计算机与电子信息学院,广西 南宁 530004)
摘要:在分析云计算技术特点基础上,基于云计算组件模型研究了云计算产品的测试方法和技术,并在联通云计算综合管理云平台的测试中进行应用,取得了较好的效果。
关键词:云计算组件模型测试;云计算;云平台测试
中图分类号:TP311.5文献标识码:ADOI:10.19358/j.issn.1674 7720.2016.22.004
引用格式:李建军. 基于云计算组件模型的测试方法和技术研究[J].微型机与应用,2016,35(22):15-17,21.
0引言
随着云计算技术的不断完善,云计算已成为IT行业最新的发展趋势。借助云计算架构下虚拟化、自动化的优势,无论最终用户、SaaS 提供商还是PaaS提供商都能以按需付费的形式从基础设施服务中获得应用所需的计算能力。
云计算的出现给软件开发和软件测试带来巨大影响,这种新的环境要求软件测试的方法和技术也随之变化。当前,市场上涌现了大量的云计算产品,但作为一个新兴的技术和领域,还缺乏完整的测试和评价方法,文献[1-3]主要研究了如何基于云计算环境开展软件测试,本文主要基于云计算组件模型探讨云计算产品的测试策略和测试内容。
1云计算产品组件模型
从功能实现上进行分析,一个典型的云计算产品的结构可以分为多个组件,如图1所示[4]。
平台:面向应用开发人员进行应用开发、集成和交付的环境和工具集。
展示:用户与云计算产品之间的人机交互接口。
集成:与外部子系统的交互接口。
弹性:应用和基础设施的计算能力及容量规划,强调可伸缩性。
存储:提供高可伸缩存储能力的外部存储库,可存储结构化的和非结构化的、静态的和易失性数据。
部署:应用的发布过程,包括开发、测试和最终部署到生产环境。
运行维护:对已投入生产环境的应用进行监控和提供支持。
计费:对占用资源的测量、计费和支付结算。
身份认证:应用的直接使用者的信息,可以使用该信息来优化和定制用户体验。
2测试方法
云计算产品的测试方法与传统系统的测试方法和策略有很大的不同,针对云计算产品进行软件测试时应特别关注平台能力、展示能力、集成能力、存储能力、弹性能力、计费能力、部署和运行维护能力、身份认证等,云组件测试模型如图1所示。
2.1平台组件测试
测试云计算平台组件时重点关注物理资源虚拟化能力、物理设备管理能力、平台安全管理能力及容错性等方面。
(1)验证虚拟化能力首先要关注云计算平台对计算资源(计算资源、存储资源、网络设备等)进行虚拟化再进行分配的能力, 包括设备添加、部署、配置和拆除等功能。
(2)验证平台是否具备物理设备控制功能,具体包括:①管理人员可以根据需要关闭、打开设备的服务。②在指定服务器上创建虚拟机,创建指定服务器上的虚拟机快照,卸载指定服务器上的虚拟机等。③提供远程控制。
(3)验证平台是否具备物理设备监控功能,包括:①支持主机自动发现功能。②在基础设施管理层面,系统能够对所有受控设备的运行状态实施动态、实时的监控。③支持故障节点。对异常设备实施控制,并能人为或自动地隔离故障设备,将设备上的运行信息迁移到其他设备上,能够正常运行。④支持告警功能。对物理服务器的性能指标设定阈值,当接近或超过阈值时,可以对管理人员进行报警,支持短信、邮件发送等方式的报警信息,保证管理人员第一时间收到报警信息,对设备进行维护。
(4)测试平台是否具备物理网络管理能力,包括对物理网络设备如网卡、交换机、路由器等的管理、控制和维护,并为用户提供物理网络拓扑图,实时查看物理网络状态,支持对故障设备的隔离和恢复。验证系统是否提供基于物理网络的网络隔离和宽带控制功能,实现多租户环境下的物理隔离,更好地保护租户的应用和数据[5]。
(5)测试平台的虚拟存储管理能力,包括:①可以为存储卷创建快照,用于快速恢复存储卷和虚拟机。出于安全考虑,每个存储卷都有配额设置和访问控制,只允许有权限的用户和虚拟机读写卷中的数据,默认情况下存储卷可以被所有用户访问。查看是否能创建快照,在存储发生故障时能快速恢复;查看是否为每个存储分配不同的权限,非授权用户访问时被禁止[6]。②支持对关键数据进行加密存储,防范非法用户对数据的滥用;查看是否为关键数据加密。③测试是否支持多存储方案,包括传统的NAS和SAN、分布式存储以及本地存储[7]。用户可根据实际需求选取其中一种存储方案或将几种方案混用。④测试是否支持跨物理和虚拟机访问共享虚拟磁盘和应用数据程序数据,以扩展云平台的应用范围。
(6)验证虚拟网络管理能力,具体包括:①虚拟网络管理主要是针对虚拟机网络,如对虚拟机网卡、网关、虚拟交换机等的管理和维护,在虚拟网络拓扑视图上查看网络划分情况、IP使用情况及各种虚拟设备的在线状态,查看各业务的运行状态。②物理、虚拟的主机能够同时对外提供服务,必须能够提供完整、有效、可控的网络组网的管理、控制能力,能灵活、可靠地实现内部网络与外网(含企业网、互联网)间的映射和必要的安全保障。③根据用户访问和资源控制需要,提供比较全面的网络管理机制,包括访问网关、网络隔离和带宽控制等,从而保证安全和提高网络资源使用均衡。④实现物理网络和虚拟网络之间的互通,即虚拟机可以和物理服务器进行通信,支持在用户在服务器上部署关键应用,同时又能保证整个云平台业务的互通性和一致性。
云计算的安全是指确保数据只能被授权的实体访问,而且数据是机密的、真实的、最新的、存在的。安全性方面一般都提供授权和基于角色的访问控制功能,其正确验证主要通过分析云计算产品的访问管理架构和评估云基础设施中基于安全证书的RBAC实现。云企业用户需要综合权衡安全性与速度、效率,而无须考虑云计算基础设施的基础安全,因此云产品应该提供一组安全服务和工具,使企业能满足个性化需求的安全服务,测试时重点验证以下控制点:
(1)网络接入控制功能:对于非法占用IP资源、内部设备非法跨网段接入等可以及时发现,保障全网的IP管理秩序和网络接入安全;可对虚拟机MAC地址与IP地址进行强绑定,一旦其中任意一项被非法修改,则虚拟机与外界连接的网络立刻被断开(管理员可以通过特别工具恢复),从而保护用户的权益不受到损害。
(2)实时监控整个网络应用:不断获取设备各类指标参数,在问题发生前及时了解非正常情况,分析非法入侵、病毒、物理故障等现象。
(3)测试是否能通过设置阈值实现对网络流量的预警,是否支持全自动防DDoS攻击。
(4)测试审计功能是否完整有效等。
(5)平台的容错性方面,当大量服务器进行同一个计算时,测试单节点故障是否影响应用的正常运行。
2.2集成组件测试
测试是否支持Xen、KVM、VMware等异构虚拟化平台统一管理,并支持对物理机统一管理。
测试其接口管理能力,是否对外提供标准IaaS访问接口,包括图形化界面、命令行界面和可编程开放接口。另外,其提供的接口要求与标准开放的云计算接口与技术相兼容。云平台的API支持兼容AmazonEC2、EBS、S3、LoadBalancing、CloudWatch、Elastic MapReduce等公有云标准。
2.3部署和运行维护组件测试
部署和运行维护能力是衡量云计算平台可用性的一个重要方面,测试时重点考虑以下内容:
(1)是否提供虚拟机全生命周期创建、运行和删除中各个阶段的相应管理功能。主要包括虚拟机的启动、停止、重启、挂起、恢复、克隆、删除、增量备份、在线热迁移,提供基于VNC的虚机连接机制。
(2)是否支持主机选择,对资源能够实现动态调配。
(3)是否支持虚拟机的恢复。
(4)是否支持P2V(Physical to Virtual)能力,可以将用户已有的应用环境整体迁移至云平台,保护用户投资。
(5)支持V2V(Virtual to Virtual)能力,简化虚拟机复制,在此基础上可以提供虚拟机在线热迁移能力,保证在发生故障时,用户业务不中断。支持热备份、冷备份、增量备份、全备份等。迁移包括在线热迁移和冷迁移方式。
运行维护组件,另外需要验证其日志管理和审计功能,测试其是否支持全面管理用户系统访问操作日志,方便查询和回溯用户行为。审计日志包含系统错误/告警事件记录。提供INFO、Debug两种基本运行日志,方便管理员监控系统运行状态、查找详细错误信息和排除故障。
2.4云计算弹性测试
云计算弹性最直接的就是云计算服务的可靠性,其具体体现在服务的可靠性、可使用性、可恢复性、连续性等方面。可用性通常使用正常运行时间所占的百分比来衡量,一般通过提高单个组件的可靠性来获得可用性,同时采用冗余和故障迁移技术来实现容错的目的。
弹性测试需要集合弹性评测模型来进行。服务等级协议SLA定义了云服务类型、服务质量和服务费用,确定了消费者或企业与云服务提供商之间所希望的基本服务水平[8]。
云计算中比较核心的功能是资源的弹性伸缩、动态调度、租户隔离等,所以测试时重点验证以下方面:
(1)弹性伸缩管理。集群的伸缩类型目前定义了三种模式:横向模式(通过增减实例数量满足需求)、纵向模式(通过增减性能满足需求)、动态迁移(故障情况或反应不及时的情况下通过将实例迁移到性能更好的物理机上)。各种模式下,管理员可以自由组合,形成不同的策略类别,以满足用户不同的应用需求。
(2)负载均衡策略。提供多种负载均衡策略,如CPU占用最少策略、内存使用最少策略、访问量最少策略等,用户可以根据应用选择不同的策略实施负载均衡,也可以多种策略混用。
(3)基于工作流的服务流程定义能力。基于工作流引擎,提供内置的资源申请流程、事件管理流程、问题管理流程和变更管理流程的运维流程支持。
2.5身份认证
测试平台是否提供多种用户接入控制,如用户/密码、Ukey认证、手机验证等多种方式,防止非法用户对云平台资源滥用。
验证是否提供用户管理能力,包括提供基于角色的平台用户管理功能。包括用户登录、用户查询、新建用户、修改用户、删除用户及角色管理。
系统是否能够提供软件资源模板、硬件资源模板、网络、存储空间等对象权限分配机制,控制用户可创建虚拟机的类型和配置。授权的操作包括隐藏、创建、更新和删除。用户的功能界面显示根据其角色所决定,不同的用户在前端显示的操作菜单与其具备的权限一样。页面中的功能按钮根据模块中所包含的功能来定义,通过模板及角色所拥有的权限进行控制。
2.6云计算展示测试
云计算所交付的功能需要提供一个人机交互界面(用于接收用户输入和显示系统输出内容),基于浏览器界面的部署和系统升级的便捷性,当前主流云计算应用的展示层一般都提供了浏览器界面,测试时重点验证是否提供统一的门户功能,集成IaaS平台和PaaS平台的监控和管理系统。提供集成式的Dashboard功能,对IaaS和PaaS平台重要的KPI指标进行实时的监控和展示,包括:提供部署服务相关的报表,用于统计和报告物理机、虚拟机数目和部署实施情况;提供监控和管理服务报表,统计和报告服务器和虚拟机的资源利用率情况;提供流程服务报表,统计和报告服务流程执行的相关情况。
2.7计费组件测试
为了合理地对云计算服务使用方收取费用,需要对用户使用情况进行度量,比如以单位度量、应用程序事件、用户登录、应用的正常运行时间、带宽利用率、应用响应时间、监视警报和计费统计等数据为基础。
管理员可定制虚拟机实例、网络、存储等资源服务的使用费用规则,包括计费方式、费率等,并可按照用户所选择的服务等级协议给予相应折扣。对于用户的缴费状态进行全局监控,可根据费用设定相应的启停规则对用户进行管理。如果在设定的规则内,用户欠费状态一直未得到更新,则可自动停止用户对资源的使用权限,必要时可注销账户等。
验证计费组件记录用户虚拟机使用情况,包括使用时间、使用流量和操作序列等,支持最终用户实时查询自己资源使用情况,防止需求超过配额,影响对业务的有效支撑;查看能否进行资源统计分析,以图表的方式展示给用户,并且支持报表生成。
3结束语
本文从典型的云计算产品组件模型入手,分析并提出了云计算产品各功能组件的测试方法和要点,对于云计算平台相关产品的测试和评估具有一定的参考价值。本研究成果已被用于中国联通的的综合管理云平台测试工作中,取得了较好的效果。下一阶段的研究方向为如何基于云计算组件模型的测试结果数据对云平台进行评估。
参考文献
[1] 殷琦,杜明,刘晓强,等.基于云环境的分布式软件接口自动化测试[J]. 计算机测量与控制,2015,23(7):2247-2249.
[2] 肖明清,杨召,薛辉辉,等.云计算及其在测试领域的应用探索[J]. 空军工程大学学报(自然科学版),2015,16(1):50-54.
[3] 周显明,李建军,王莉华,等.基于云计算的测试公共服务平台设计技术[J]. 微型机及应用, 2015,34(4):14-16.
[4] RHOTON J,HAUKIOJA R.云计算架构解决方案设计手册[M]. 赵龙刚,金振林,译.北京:机械工业出版社,2012.
[5] 林闯,苏文博,孟坤,等.云计算安全:架构、机制与模型评价[J]. 计算机学报, 2013,36(9):1765-1781.
[6] 冯朝胜,秦志光,袁丁,等.云数据安全存储技术[J]. 计算机学报, 2015,38(1):150-157.
[7] 袁玉宇,刘川意,郭松柳.云计算时代的数据中心[M].北京:电子工业出版社, 2012.
[8] CHANG W Y, HOSAME A A,SANFORD J.转型中的企业云服务[M].朱爱红,李连,李瑛,等,译.北京:国防工业出版社,2012.