云计算系统測试之技术概念

1.什么是云计算

云计算是云计算(Grid Computing )、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统。并借助SaaS、PaaS、IaaS等先进的商业模式把这强大的计算能力分布到终端用户手中。从狭义上说,云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源。

从广义上说。云计算是指服务的交付和使用模式。指通过网络以按需、易扩展的方式获得所需的服务。总的来说。云计算具有下面特点:

?资源池:服务提供商的资源被池化,并通过多租户模式为客户提供各种服务。并依据客户的需求动态提供物理或虚拟化的资源。这些资源是位置独立的,由于用户并不确切的知道服务提供商的资源在那里。可是客户能够指定较高层次的位置,比如国家、州或数据中心。

这些资源包含存储、处理能力、内存、网络带宽和虚拟机。

?按需自助服务:客户能够按需、自己主动地获取计算能力,比如server计算时间和网络存储,而不须要和服务提供商进行人为交互。

?高速弹性:服务能够高速、弹性的获得,某种情况下是自己主动化的,规模能够高速扩大或缩小。

对于客户来说。供应能力似乎是无限的,能够随意购买,随时购买。

?广泛的网络接入:计算能力可通过网络。并通过标准机制进行訪问,使得各种瘦(或胖)client(比如移动电话、便携式电脑或PDA)平台均能够使用。

?按使用量计费的服务:云系统对服务(存储、处理能力、带宽、活动用户帐户)进行适当的抽象,并提供服务计量能力,以自己主动控制和优化资源使用情况。资源的使用能够检測、控制、统计。为客户和服务商提供透明的服务使用量。

2.云计算典型系统

1)Google云计算平台

Google公司有一套专属的云计算平台。这个平台先是为Google最重要的搜索应用提供服务,如今已经扩展到其它应用程序。Google云计算基础平台主要包含3个部分:Google File System 文件系统、Map/Reduce编程模式、大规模分布式数据库BigTable。

?Google File System 文件系统

为了满足Google迅速增长的数据处理需求。Google设计并实现了Google文件系统(GFS。Google File System),它是开发的基于Linux的专有分布式文件系统。

GFS专门为Google的核心数据即页面搜索的存储进行了优化。

?MapReduce分布式编程环境

为了让内部非分布式系统方向背景的员工可以有机会将应用程序建立在大规模的集群基础之上,Google还设计并实现了一套大规模数据处理的编程规范Map/Reduce系统。

这样,非分布式专业的程序编写人员也可以为大规模的集群编写应用程序而不用去顾虑集群的可靠性、可扩展性等问题。

?分布式大规模数据库管理系统BigTable

因为在Google的数据中心存储PB级以上的非关系型数据时候,比方网页和地理数据等,为了更好地存储和利用这些数据,Google构建了弱一致性要求的大规模数据库系统BigTable。

BigTable不是一个关系型的数据库,它也不支持关联(join)等高级SQL操作,取而代之的是多级映射的数据结构,并是一种面向大规模处理、容错性强的自我管理系统,拥有TB级的内存和PB级的存储能力,使用结构化的文件来存储数据。并每秒能够处理数百万的读写操作。

2)亚马逊弹性云EC2

亚马逊(Amazon)将他们的云计算平台称为弹性计算云(elastic compute cloud,简称EC2),是最早提供远程云计算平台服务的公司。Amazon将自己的弹性计算云建立在公司内部的大规模集群计算的平台上。而用户能够通过弹性计算云的网络界面去操作在云计算平台上执行的各个实例(instance)。用户使用实例的付费方式由用户的使用状况决定,即用户仅仅需为自己所使用的计算平台实例付费,执行结束后计费也随之结束。这里所说的实例即是由用户控制的完整的虚拟机执行实例。

通过这样的方式,用户不必自己去建立云计算平台,节省了设备与维护费用。

3) 微软Azure 平台

Windows Azure Platform 是一个执行在微软数据中心的云计算平台。

它包含一个云计算操作系统和一个为开发人员提供的服务集合。开发人员创建的应用既能够直接在该平台中执行,也能够使用该云计算平台提供的服务。相比較而言。Windows Azure platform延续了微软传统软件平台的特点,能够为客户提供熟悉的开发体验。用户已有的很多应用程序都能够相对平滑地迁移到该平台上执行。

另外Windows
Azure Platform还能够依照云计算的方式按需扩展,在商业开发时能够节省开发部署的时间和费用。

Windows Azure platform包含Windows Azure、SQL Azure和Windows Azure platform AppFabric。Windows Azure可看成一个云计算服务的操作系统;SQL Azure是云中的数据库。AppFabric是一个基于Web的开发服务,它能够把现有应用和服务与云平台的连接和互操作变得更为简单。

AppFabric让开发者能够把精力放在他们的应用逻辑上而不是在部署和管理云服务的基础架构上。

4)  IBM“蓝云”计算平台

IBM的“蓝云”计算平台是一套软、硬件平台,将Internet上使用的技术扩展到企业平台上。使得数据中心使用类似于互联网的计算环境。

“蓝云”大量使用了IBM先进的大规模计算技术,结合了IBM自身的软、硬件系统以及服务技术,支持开放标准与开放源码软件。“蓝云”基于IBM Almaden研究中心的云基础架构,採用了Xen和PowerVM虚拟化软件,Linux操作系统映像以及Hadoop软件(Google
File System以及MapReduce的开源实现)。“蓝云”计算平台由一个数据中心、IBM Tivoli部署管理软件(Tivoli provisioning manage)、IBM Tivoli监控软件(IBM Tivoli monitoring)、IBM WebSphere应用server、IBM DB2数据库以及一些开源信息处理软件和开源虚拟化软件共同组成。“蓝云”的硬件平台环境与一般的x86server集群类似。使用刀片的方式添加了计算密度。

3.云计算系统故障事件

云计算的核心思想。是将大量用网络连接的计算资源统一管理和调度。构成一个计算资源池向用户按需服务。

它为用户提供了一个高性能计算环境,高可伸缩的弹性的可计算平台,准确、安全、可靠而稳定的计算资源和存储资源。然而。近年来国际主流的云计算系统和应用均暴露出不同程度的可靠性和安全性问题。比如:

1)Google应用引擎平台宕机

2009年7月3日,Google App Engine遭遇“数据仓库操作延迟添加、错误率上升等故障。” 这次故障持续了约6小时更糟糕的是。在Google更新Google Groups上的消息时,App Engine Status网页却因这次故障而全然无法訪问。据悉,这次Google App Engine故障不仅造成用户的经济损失,甚至影响到了Mac版Chrome浏览器的开发。

2010年02月25日。Google支持第三方网络应用的App
Engine平台再次发生宕机故障,全部存放的第三方应用陷入瘫痪,殃及绝大部分网络应用。

整个平台瘫痪时间超过两小时。

2)Google Gmail和日历服务中断

2010年2月23日,Google Gmail出现问题,持续时间长达两个半小时,这次故障导致全球数以百万计的用户在几小时内无法訪问账户。经济损失无法估量,因为此次server故障。Google将针对企业的Google Apps高级版订户的付费时间延长十五天。2010年10月12日到2010年10月19日,Google的日历服务中断了8天。这起事故让0.2%的Google日历用户中断了多天的訪问。

3)Google Voice服务宕机

2010年11月23日,Google Voice网络电话服务再发生宕机事故,部分Google Voice用户无法拨出或接听电话。这次宕机事故仅仅是最近Google Voice多个问题中的一个。2010年11月2日和5日都发生了类似的宕机事故。

4)亚马逊S3服务故障

Amazon的云存储平台Simple Storage Service(S3)在2008年7月出现了服务故障。故障持续了8个小时之久,依赖S3进行文件存储的在线公司因此蒙受了损失。

S3在2月份的时候也出现过一次类似的故障,当时该故障持续了两个小时。

5)亚马逊EC2云计算服务遭到僵尸网络攻击

2010年4月,亚马逊基于云计算的EC2(弹性计算云)服务在一个星期内接连发生了两起故障,一起是僵尸网络引起的内部服务故障,还有一起是在弗吉尼亚州的一个数据中心发生的电源故障。

云计算代表IT 领域向集约化、规模化与专业化道路发展的趋势。是一种面向Internet的IT资源交付和试用模式,但它在整合IT资源、提高资源利用率的同一时候,其性能、安全可靠性问题备受关注。

这些问题都非常大程度上制约了云计算产业的发展。成为实现大规模云计算的障碍。因此,专业性的云计算系统測试是解决眼下云计算故障问题的一个重要手段之中的一个。但云计算系统的复杂性和对于用户的不透明性也决定了第三方測试的难度。那么怎样来对云计算系统进行測试呢?将在下节谈谈我对云计算測试的看法。

4.云计算系统測试

云计算系统中大量融入了面向服务的体系结构。用户能够通过该体系结构来实施、部署、运行和管理自己所提交的作业,能够说云服务是构成云计算系统的基本功能单元。

云服务測试也成为云计算系统測试的基础部分。同一时候,云计算的目的是提供实现高性能计算、可靠、稳定而安全的计算环境。云计算的性能測试和安全可靠性測试也是云计算软件測试的重要内容。

1)云计算系统功能和标准符合性測试

云计算系统软件的发展与应用与其对应的技术标准或规范是分不开的,衡量一种云系统能否够符合用户需求,从非常大意义上讲就是在衡量它们所提供的服务的正确性以及是否符合技术标准或规范。

然而,眼下云计算相关标准不是非常统一,各有说法百家争鸣。但就云计算特征和主要功能来说,各家还是比較统一的。如分为三个层次:SaaS、PaaS和IaaS,要实现资源池及其调度管理、任务的分解、调度和运行、按需自助服务、服务计费、工作流管理、虚拟化平台以及门户应用等一些主要功能。

假设就SaaS来说,能够測试的是Web服务測试,一个非常重要的方面就是測试其是否符合规范,包含UDDI,XML,SOAP,WSDL等,仅仅有符合这些规范,才干向用户提供正确的Web服务,因此Web服务測试所使用的方法和技术能够被云服务測试所借鉴和引用。云计算服务測试的目标是确保云服务为给定的请求传递期望的应答.然而对于大多数云计算服务,准确预測client将会发送什么类型的请求、列举全部可能的请求是不可行的,由于请求输入的范围空间可能非常大。

因此。验证云计算服务能否够处理范围广泛的请求类型和參数非常重要。

2)云计算系统性能測试

云计算性能測试的目标是验证在各种负载情况下云计算服务的性能。进行性能測试的最佳方式是使得多个測试客户执行完整的云服务測试,包含请求提交和应答验证。性能測试不仅通过指定的并发请求数目来监视server的响应速率,还要測试各类负载是否导致云服务功能性故障。因此,要求云服务性能測试工具可以设置或者定制性能測试场景(主要是指定负载等级、负载分布等)来执行云性能測试套件。依据高性能计算系统常见的应用场景,云计算系统性能測试可设置的场景主要包含bell曲线、缓冲区測试、线性添加和稳定负载。这样,通过使用不同的測试场景来使用不同的測试用例,同一时候还应支持跨越远端的云server分布虚拟用户,从而模拟极限測试与压力測试。

3)云计算系统安全可靠性測试

云计算系统安全可靠性測试採用主要是以系统评估为主。測试为辅的方法。因此。也须要对现有的云计算系统进行提炼,总结出普遍适用的云计算模型,进而能通过云计算模型得到云计算的安全可靠性模型。在这个模型下对云计算系统的安全可靠性进行评估。

云计算系统的安全可靠性模型主要是由一些评价指标构成。这些指标要能完整地描写叙述系统可靠性要求的各个方面,指标之间应降低交叉,防止相互包括。要具有相对独立性。

模型的结构也决定了指标之间的组合关系,这些关系与云计算系统的应用类型有关。

測试人员通过測试或评估收集这些指标值,这些指标值通过模型提供的结构组合在一起,它与其它測试的结果终于构成了对云计算系统的安全完整得评价。

时间: 2024-08-29 16:27:01

云计算系统測试之技术概念的相关文章

软件測试基本方法(六)之集成測试和系统測试

在软件开发中.常常会遇到这种情况.单元測试时确认每一个模块都能单独工作,但这些模块集成在一起之后会出现有些模块不能正常工作.比如,在chrome环境下用js写了一个实时捕捉video中特定区域的模块,正常工作:利用worker线程进行webgl场景渲染,也正常.但是当两个运算合并时.出现一个模块不能正常执行,原因在于两个模块不适合在worker线程中结合.基于worker本身的局限性,仅仅能有一个模块正常工作. 所以,非常有必要进行集成測试. (1)集成測试定义: 集成測试是将软件集成起来,对模

熊猫猪新系统測试之四:Ubuntu 14.04

眼下猫猪在办公室一般用的就是乌班图系统,一方面原因是老本本性能跑不起来Windows,更重要的是本猫认为Linux系统更开放些.况且如今用的也比較熟了,全然能够脱离Windows鸟!这一系列4篇新系统測试的文章,除了iOS8是在mac上所写的以外(在iOS上写csdn博客感觉有点太那个啥了吧),其它所有都是在博客所測试的系统上写的哦!事实上Ubuntu 14.04对于本猫来说不算新系统,由于非常早就已经升级使用了.但由于对于Ubuntu来说是最新稳定版本号,再加上对于使用Windows系统的童鞋

机房收费系统——測试计划

測试计划(GB8567--88) 1引言 在项目基本编码工作完毕的就要进行測试.对于排除出错误和修复漏洞有重要作用. 1.1编写目的 測试的主要目的就是尽可能多的找到系统中的漏洞,而且设计出測试用例,对系统測试.目的及在于对測试的方法.測试流程,有一定大体上的掌控. 本文档的预期读者是測试人员. 系统測试在整个项目开发过程中.比例占到了40%~50%.基本上在项目进行编码的过程中就開始了測试,所以測试的好坏也影响了系统的功能实现情况. 1.2背景 说明: a.  測试计划所从属的软件系统的名称:

熊猫猪新系统測试之二:Mac OS X 10.10 优胜美地

在第一篇windows 10技术预览版測试之后.本猫为大家呈现还有一个刚刚才更新的mac操作系统:"优胜美地".苹果相同一改以猫科动物为代号命名的传统.在10.9的Mavericks之后,第二次使用景点名称的命名方式新的10.10操作系统:Mavericks是美国加尼福尼亚州的一处海滩.而Yosemite则是美国约塞米蒂国家公园的大陆译称呀!我老是下意识的把"优胜美地"和本国的某品牌空调广告词乱搭,比較无语呀! 假设说Mavericks仅仅是10.7界面上的小打小闹

系统吞吐量、TPS(QPS)、用户并发量、性能測试概念和公式

PS:以下是性能測试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢.系统吞吐能力越低,反之越高. 系统吞吐量几个重要參数:QPS(TPS).并发数.响应时间 QPS(TPS):每秒钟request/事务 数量 并发数: 系统同一时候处理的request/事务数 响应时间:  一般取平均响应时间 (非常多人常常会把并发数和TPS理解混淆

TaintDroid下载预编译(五):TaintDroid(Android)系统编译虚拟机和真机測试

光说不练非好汉,如今就让我们开启自己编译的系统測试!事实上懂得这些过程.就知道了Android手机系统定制的整个流程.现有的智能机都是使用Google的android开源的系统然后加入一些自己的东西.就成为公司的系统! TaintDroid(Android)虚拟机上測试 我们前面讲了怎样编译,编译的成功的标识就是生成system.img文件,例如以下图: sdk替换 拷贝system.img镜像文件,替换掉sdk中的镜像.例如以下图: 对于创建AVD非常easy,这里几张图就能够看懂. wate

站点系统压力測试Jmeter+Badboy

近期项目须要压力測试,因此搜了几款试用,首选的是LoadRunner这款大名鼎鼎的測试软件: LoadRunner11 下载请猛戳这里 传送门LoadRunner破解文件 下载请猛戳这里 传送门LoadRunner注冊表清理工具 下载请猛戳这里 传送门 (超级license 最高支持6.5w个并发:AEACFSJI-YJKJKJJKEJIJD-BCLBR) 怎样安装请自行參考: http://www.neversaydie.cc/loadrunner11-download-and-crack-i

软件測试自学指南---从入门到精通

近来,软件測试行业发展迅速,企业越来越重视測试了.越来越多的人增加了測试大军中,非常多人也想通过自学来学习软件測试技术增加这个行业,可是如今软件測试的书籍越来越多,也良莠不齐,并且软件測试涉及的技术也越来越多.本文主要说明的是从事软件測试行业须要必备的知识,以及该怎样学习,主要给大家提供一些比較优秀的书籍,并给出学习的顺序.希望通过阅读本文,读者能够明白该怎样学习測试,并学习哪些知识.因为仅是个人建议,如有错误不妥的地方,敬请提出批评. 一.软件測试基础知识 要想进入測试这个行业,就必需要了解什

写可測试的代码

写可測试的代码 不论什么一个软件都是能够測试.在某种意义上,用户的使用过程也就是一个软件測试的过程.但是这并非我们今天要讲的可測试性.我们讲的可測试性指的是代码的可測试性,通俗点儿说就是是一串代码里包括的逻辑是不是能够被单元測试所覆盖.在这篇文章里我会从单元測试的基本概念開始引伸到怎样写单元測试,怎样写可单元測试的代码.文章里全部的样例都是C#写的,一来它是我职业生涯的主力语言.二来C#广为人知,相信对广大职业的或是业余的程序猿来说读懂C#的代码不会是什么特别困难的事情.实际上我描写叙述的方法和