云平台系统测试重点分析
2022-07-07罗文兵杨婷婷徐海波
罗文兵 杨婷婷 徐海波
(北京赛迪软件测评工程技术中心有限公司 北京市 100048)
云平台是云计算共性基础资源统筹调度的核心,其统筹系统的所有共性基础资源,实现虚拟计算、存储、网络等多类共性软硬件资源的集中管理和统一调度,支撑上层应用基础资源的统一运营、独立运维,实现各业务节点服务资源和数据产品均衡分布,支撑数据、软件、服务等各类资源对各业务节点的共享共用,为各业务节点提供计算资源保障、数据备份保障、软件容灾备份、资源远程调用等服务和支撑。
1 云平台系统
云平台整体架构是基于底层硬件设施,包括服务器、终端机、磁盘阵列、路由器、交换机等,并通过虚拟化技术、分布式并行技术整合形成虚拟化资源池,为上层业务应用统一提供计算资源、存储资源和网络资源。
一般而言,通用云平台技术架构如图1所示,分为以下五个层次。
图1:通用云平台技术架构
(1)物理层,是搭建、部署云基础架构所需的物理设备和配套环境,为云基础架构提供基本的物理资源。
(2)云操作系统层,是构架于服务器、存储、网络等基础硬件资源和单机操作系统、中间件、数据库等基础软件之上的、管理海量的基础硬件、软件资源的云平台综合管理系统。
(3)基础云资源服务层,将各类虚拟化资源封装成对外提供的服务,如虚拟主机服务、裸金属服务、容器服务、对象存储服务、文件存储服务等。
(4)服务支撑层,是指为上层云计算应用调用云基础架构计算、存储资源预留的接口和对用户使用云基础架构计算、存储资源提供的交互界面。服务支撑层主要由数据库服务、大数据引擎服务、中间件服务、管理监控服务、云安全防护服务等组成。
(5)应用层,用户部署的云计算应用。
2 云平台测试重点分析
基于以上分析,针对云平台的测试内容主要包括2个方面,即云平台基础能力测试和云平台对业务应用系统的支撑能力测试。其中,云平台对业务应用系统的支撑能力测试需结合不同业务系统的具体应用需求进行测试设计,不同业务系统对应测试需求差异性较大,本文不对此展开论述,而重点针对云平台基础能力测试进行分析。
如图2所示,云平台软件基础能力包括云操作系统能力、基础云资源服务能力、数据库服务能力、中间件服务能力、大数据引擎服务能力、管理监控服务能力、云安全防护服务能力等方面,下面逐一针对上述服务能力分析其测试重点。
图2:云平台基础能力组成图
2.1 云操作系统测试重点
云操作系统处于云平台底层,支持基于虚拟化资源池的云架构,提供统一的云操作系统和开发环境,可整合、管理和调度云平台所需的计算、存储、网络等硬件资源,形成统一资源池,并能够实现网络的灵活管理和安全控制,提供分布式任务协调与远端调用能力,实现资源的按需动态分配和统一管理调度。云操作系统的测试重点包括:
(1)硬件资源调度能力:主要测试云操作系统是否支持基于虚拟化资源池的云架构;能否根据任务规划、数据处理等任务需要,在统一的资源池分配、调度、使用计算资源;是否具有计算、存储、网络等资源统一调度和快速服务响应的能力。
(2)网络管理能力:主要测试云操作系统是否可以基于软件定义网络的机制等实现网络的管理和控制。
(3)按需扩容能力:主要测试云操作系统是否能够根据业务应用系统扩展需求,对计算、存储能力进行水平扩展,在分布式架构下支持上万台服务器、EB量级等文件存储扩展;是否能够根据需要进行在线扩容和缩容,并实现上层业务应用无感知。
(4)服务运维管理能力:主要测试云操作系统是否支持应用系统进行服务注册、服务发布、服务调度和服务监控等操作。
2.2 基础云资源服务测试重点
基础云资源服务针对业务系统使用需求,在对物理资源和虚拟资源进行有效监控管理的基础上,通过对服务模型的抽取,屏蔽底层基础设施的差异,将云操作系统管理的计算、存储、网络资源封装成各种服务,如计算资源按需可封装为云虚拟主机服务、高性能计算服务、裸金属服务、容器服务等;存储资源可封装为高速存储、对象存储、块存储、文件存储等,为上层应用提供通用的虚拟资源服务。基础云资源服务测试的重点包括如下:
(1)虚拟主机服务能力:主要验证虚拟主机基础资源服务的基本功能、管理与监控接口,以及并发创建和热迁移性能等。
(2)裸金属服务能力:主要测试弹性裸金属服务是否可以满足高性能计算场景下实时数据存储以及历史数据存储需求,是否提供基于并行文件系统的高速文件存储服务等。
(3)容器服务能力:主要验证容器创建、容器应用、容器集群等相关功能,以及容器启动、容器镜像容量等性能。
(4)存储服务能力:主要针对对象存储、文件存储和块存储等基本管理功能、接口管理功能和数据存储性能等进行测试。
其中,在高性能计算场景下量化裸金属的性能损耗,重点从CPU、内存两个方面考察裸金属服务的性能损耗。
(1)关于CPU性能损耗测试。一般普通计算机用指令运算速度衡量CPU计算性能,而高性能计算服务器则都是用万亿次浮点运算的性能来表示服务器的峰值速度。浮点计算峰值是指计算机每秒钟能完成的浮点计算最大次数,通常用FLOPS来表示。选用浮点运算速度作为超算运算能力的评价标准,是因为高性计算服务器主要用于科学计算领域,在科学工程计算软件中包含了大量的浮点数运算,浮点运算速度快的计算机通常也能够更快运行相关的科学工程计算软件。而预处理等地面系统是典型的高性能并行计算场景,其计算过程包含大量的浮点运算。因此,为了更好的评价裸金属服务器的计算性能,本项目采用开源HPL测试工具(国际上著名的TOP500超级计算机排名就是采用HPL测试值作为标准,它对公正、全面、系统的评价机器的浮点性能具有重要意义),通过对裸金属实例采用高斯消元法求解一元N次稠密线性代数方程组的测试,来评价高性能计算机的浮点性能。
(2)关于内存性能损耗测试。内存带宽是内存总线所能提供的数据传输能力,随着处理器核心数量的增多,内存带宽对于提升整个系统性能的作用越发重要。如果某个系统不能快速降内存中的数据传输到处理器中,若干处理核心就会处于等待数据的限制状态,从而导致服务器性能的降低。为了更好的评价裸金属服务的内存带宽性能,本项目采用标准内存测试工具Stream(STREAM是一套综合性能测试程序集,通过fortran和C两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率,使得STREAM测试例程可以充分发挥出内存的能力)来对裸金属服务的内存性能损耗进行测试。
浮点运算能力和内存带宽都存在理论性能,结合上述测试工具测试的结果,通过理论性能值和实测性能值的对比,我们就能计算出服务器的性能损耗。
2.3 数据库服务测试重点
数据库服务针对业务系统不同类型、不同特性数据的存储、管理及查询需求,提供多种容量动态可扩展的数据库存储服务,实现多种类型及特性数据的按需存储及管理。数据库服务一般包括关系型数据库、时空型数据库、时序型数据库等服务,因此,其测试重点包括:
(1)关系型数据库服务能力,主要测试关系型数据库支持能力,包括读写分离、读节点间负载均衡等功能测试,IOPS与连接数等性能测试、相关管理接口测试及安全能力测试。
(2)时空型数据库服务能力,测试时空型数据库支持能力,包括空间几何对象、空间栅格对象、时空移动对象等时空数据类型支撑能力测试等。
(3)时序型数据库服务能力,测试时间序列数据库支持能力,包括数据库读写功能测试等。
2.4 中间件服务测试重点
中间件服务为业务应用系统在研发、部署、运行、管理、维护各环节提供一系列基于分布式架构的中间件服务,构建包括分布式应用服务、消息队列、API网关、云服务总线等服务在内的通用中间件服务体系,能够为业务应用系统提供统一的中间件通用支撑平台,并实现通用中间件服务的统一管理和维护。其中,消息队列是目前应用最广泛的中间件之一,其优点是可以提高系统的吞吐量、并发能力,同时消息传递实时性也被广为关注,因此,中间件服务的测试重点内容主要围绕消息中间件的消息传递实时性能进行阐述。
首先,我们对影响消息队列性能的因素进行分析,经分析可以得出消息队列性能取决于网络条件和消息中间件本身发布、同步消息等多个环节,假定在通信网络条件及网络请求开销基本一致的前提下,则消息队列性能主要和消息发送时间、消息同步时间、消息消费时间等相关。综上,测试时需要对消息队列全链路进行测试,包括端到端总体延迟和分阶段延迟两部分测算内容。
2.4.1 端到端总体延迟测试
端到端总体延迟是从消息发送端发布消息到接收端收到消息推送的整个过程的耗时。综合考虑业务系统的典型业务处理场景,在测试中设计相应的测试数据包,进行针对性测试。
2.4.2 分阶段延迟测试
将整个消息队列消息链路拆分为多个阶段,首先是消息发送端、消息队列服务、消息消费端,再进一步将这几个端进行内部拆解,消息发送端拆解为编码阶段、发送阶段,消息接收端又可拆解为接收阶段、解码阶段。分阶段统计相应的延迟,从而了解消息发送的总体情况。
在测试数据准备方面,时钟频率偏差是时钟长期计时累积误差的主要原因,为了模拟真实的业务场景,发送端到接收端分布在不同的虚拟主机实例中,因此发送端和接收端会存在一定的时间偏差,为了要提高时钟长期计时精度,必须补偿时钟频率偏差,可采用NTP方式校准时钟频率偏差。由于NTP时间同步服务器进行同步的授时精度是毫秒级,因此还需要进一步减少操作系统内核处理延时的影响,从而提高NTP授时精度,发/收时间戳应尽量接近主机真实发/收包时刻。在不改变硬件的条件下,一个可行的办法是修改网卡驱动程序,将记录NTP包发/收时间戳从应用程序移至网卡驱动程序处,可消除操作系统内核处理延时不确定而引入的误差。这种方法可大幅提高NTP授时精度至μs级,以满足μs级时间精度要求。
2.5 大数据引擎服务测试重点
大数据引擎服务通过提供基于分布式数据仓库的离线计算、实时计算等服务,实现海量大数据的分布式存储、计算、分析挖掘、建模等需求;通过构建大数据仓库,实现全系统设备状态信息、系统运行数据、数据产品等数据的汇集和统一管理,同时提供基础数据库、数据迁移、数据分析、数据处理等共用数据软件工具服务。大数据引擎服务测试重点包括:
(1)大规模离线数据处理能力,测试离线计算框架是否支持超大规模计算集群扩展和单集群TB量级离线数据处理,为开展大规模离线数据分析挖掘提供支撑。
(2)实时计算处理能力,测试实时计算框架是否支持多维度实时数据的统一接入和流式数据处理,为提高实时数据处理分析业务提供支撑。
(3)实时数据分发服务能力,测试是否提供实时数据接入和实时数据分发能力。
2.6 管理监控服务测试重点
管理监控服务针对云平台及各业务系统的实时监控管理和预警处理需求,通过对运行状态、资源使用情况、访问情况等信息的收集、管理、分析和统计,构建包括日志监控、应用监控、平台监控等服务在内的统一监控管理体系,全面支撑云平台、数据、应用、安全等各方面的运维服务,确保系统安全可靠运行,实现对云平台及业务应用的运行时状态、资源和访问等情况的监控和告警管理。管理监控服务的测试重点包括:
(1)平台监控服务功能,测试云平台是否支持服务器节点的接入和扩展等行为数据的采集和告警。
(2)用户管理监控功能,测试云平台是否支持对云平台用户的监控和管理。
(3)应用监控服务功能,测试云平台是否提供对业务应用的运行时状态与健康情况进行实时监控。
(4)日志监控服务能力,测试大规模计算集群管理监控日志查询响应能力,以及海量日志实时接入与处理能力。
2.7 云安全防护服务测试重点
云安全防护构建覆盖主机安全防护、网络安全防护、数据安全防护、应用安全防护等各个方面的全方位安全保障体系,通过各类安全技术实现信息系统的边界防护、网络监测、计算机防护;为全网提供统一的安全态势监控、安全设备管理、安全策略制定、安全应急响应、安全公共服务、安全审计分析等管理与服务功能。云安全防护的测试重点包括:
(1)访问控制能力:主要验证云平台是否提供集中式访问控制功能;是否支持统一的身份管理与权限认证;是否具备不同策略的用户和用户组管理功能等。
(2)云安全防护能力:主要测试云平台对典型网络攻击的检测与防护能力,应能对SQL注入、跨站脚本、目录遍历等常见攻击行为进行检测与防护。
(3)网络监控能力:主要测试云平台能否对网络流量进行监控,主动识别网络异常行为等。
3 应用实践分析
基于以上对云平台测试重点的分析,项目组针对某云平台进行了第三方测试,共设计91组测试用例,其中云操作系统测试用例11组,基础云资源服务测试用例28组,数据库服务测试用例11组,中间件服务测试用例12组,大数据引擎服务测试用例12组,管理监控服务测试用例7组,云安全防护测试用例10组,测试用例全面覆盖了上述重点测试内容。其中限于篇幅,结合平台具体需求设计的部分测试内容如表1所示。
表1:部分测试内容示例
同时,项目组搭建了完整的测试环境,包括控制节点、计算节点、存储阵列、网络设备、终端设备等。其中,控制节点对计算资源池、存储资源池、网络资源进行统一管理及配置,完成云平台虚拟机、云桌面虚拟机的创建及动态调整;计算节点是云计算系统的核心,通过云平台对计算节点服务器实现虚拟化处理,将计算资源池化,按照环境实际需要分配出每台云平台虚拟服务器、云桌面虚拟服务器计算资源,包括CPU资源、内存资源;分布式存储系统存储介质采用控制节点与计算节点服务器本地硬盘,为云平台、云桌面分配系统运行和数据存储空间。为了实现云计算系统的统一便捷管理,避免数据之间的相互干扰和提高网络性能,将网络分为业务网络、管理网络两部分。测试环境网络拓扑图如图3所示。
图3:测试环境拓扑图
经测试,项目组共发现软件问题近30个,主要问题表现在平台部分功能实现错误、性能不达标等,经研制单位修改和回归测试,所有缺陷最终实现归零,软件质量得到明显提升。
4 结束语
本文提出针对云平台基础能力测试的重点测试内容,能够较好的指导云服务厂商优化云平台产品,同时指导测试人员开展云平台测试工作。目前本文的测试需求分析重点围绕云平台基础能力进行,后续将结合实际项目开展云平台对业务支撑能力测试需求分析的研究。