云計算系統(tǒng)測試技術(shù)基礎(chǔ)
1.什么是云計算
云計算是云計算(Grid Computing )、分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing)、網(wǎng)絡存儲(Network Storage Technologies)、虛擬化(Virtualization)、負載均衡(Load Balance)等傳統(tǒng)計算機技術(shù)和網(wǎng)絡技術(shù)發(fā)展融合的產(chǎn)物。它旨在通過網(wǎng)絡把多個成本相對較低的計算實體整合成一個具有強大計算能力的完美系統(tǒng),并借助 SaaS、PaaS、IaaS等先進的商業(yè)模式把這強大的計算能力分布到終端用戶手中。從狹義上說,云計算是指IT基礎(chǔ)設施的交付和使用模式,指通過網(wǎng)絡以按需、易擴展的方式獲得所需的資源。從廣義上說,云計算是指服務的交付和使用模式,指通過網(wǎng)絡以按需、易擴展的方式獲得所需的服務。總的來說,云計算具有以下特點:
資源池:服務提供商的資源被池化,并通過多租戶模式為客戶提供各種服務,并根據(jù)客戶的需求動態(tài)提供物理或虛擬化的資源。這些資源是位置獨立的,因為用戶并不確切的知道服務提供商的資源在那里,但是客戶可以指定較高層次的位置,例如國家、州或數(shù)據(jù)中心。這些資源包括存儲、處理能力、內(nèi)存、網(wǎng)絡帶寬和虛擬機。
按需自助服務:客戶可以按需、自動地獲取計算能力,例如服務器計算時間和網(wǎng)絡存儲,而不需要和服務提供商進行人為交互。
快速彈性:服務可以快速、彈性的獲得,某種情況下是自動化的,規(guī)??梢钥焖贁U大或縮小。對于客戶來說,供應能力似乎是無限的,可以任意購買,隨時購買。
廣泛的網(wǎng)絡接入:計算能力可通過網(wǎng)絡,并通過標準機制進行訪問,使得各種瘦(或胖)客戶端(例如移動電話、便攜式電腦或PDA)平臺均可以使用。
按使用量計費的服務:云系統(tǒng)對服務(存儲、處理能力、帶寬、活動用戶帳戶)進行適當?shù)某橄?,并提供服務計量能力,以自動控制和?yōu)化資源使用情況。資源的使用可以檢測、控制、統(tǒng)計,為客戶和服務商提供透明的服務使用量。
2.云計算典型系統(tǒng)
1)Google云計算平臺
Google公司有一套專屬的云計算平臺,這個平臺先是為Google最重要的搜索應用提供服務,現(xiàn)在已經(jīng)擴展到其他應用程序。Google云計算基礎(chǔ)平臺主要包括3個部分:Google File System 文件系統(tǒng)、Map/Reduce編程模式、大規(guī)模分布式數(shù)據(jù)庫BigTable。
Google File System 文件系統(tǒng)
為了滿足Google迅速增長的數(shù)據(jù)處理需求,Google設計并實現(xiàn)了Google文件系統(tǒng)(GFS,Google File System),它是開發(fā)的基于Linux的專有分布式文件系統(tǒng)。GFS專門為Google的核心數(shù)據(jù)即頁面搜索的存儲進行了優(yōu)化。
MapReduce分布式編程環(huán)境
為了讓內(nèi)部非分布式系統(tǒng)方向背景的員工能夠有機會將應用程序建立在大規(guī)模的集群基礎(chǔ)之上,Google還設計并實現(xiàn)了一套大規(guī)模數(shù)據(jù)處理的編程規(guī)范Map/Reduce系統(tǒng)。這樣,非分布式專業(yè)的程序編寫人員也能夠為大規(guī)模的集群編寫應用程序而不用去顧慮集群的可靠性、可擴展性等問題。
分布式大規(guī)模數(shù)據(jù)庫管理系統(tǒng)BigTable
由于在Google的數(shù)據(jù)中心存儲PB級以上的非關(guān)系型數(shù)據(jù)時候,比如網(wǎng)頁和地理數(shù)據(jù)等,為了更好地存儲和利用這些數(shù)據(jù),Google構(gòu)建了弱一致性要求的大規(guī)模數(shù)據(jù)庫系統(tǒng) BigTable。BigTable不是一個關(guān)系型的數(shù)據(jù)庫,它也不支持關(guān)聯(lián)(join)等高級SQL操作,取而代之的是多級映射的數(shù)據(jù)結(jié)構(gòu),并是一種面向大規(guī)模處理、容錯性強的自我管理系統(tǒng),擁有TB級的內(nèi)存和PB級的存儲能力,使用結(jié)構(gòu)化的文件來存儲數(shù)據(jù),并每秒可以處理數(shù)百萬的讀寫操作。
2)亞馬遜彈性云EC2
亞馬遜(Amazon)將他們的云計算平臺稱為彈性計算云(elastic compute cloud,簡稱EC2),是最早提供遠程云計算平臺服務的公司。Amazon將自己的彈性計算云建立在公司內(nèi)部的大規(guī)模集群計算的平臺上,而用戶可以通過彈性計算云的網(wǎng)絡界面去操作在云計算平臺上運行的各個實例(instance)。用戶使用實例的付費方式由用戶的使用狀況決定,即用戶只需為自己所使用的計算平臺實例付費,運行結(jié)束后計費也隨之結(jié)束。這里所說的實例即是由用戶控制的完整的虛擬機運行實例。通過這種方式,用戶不必自己去建立云計算平臺,節(jié)省了設備與維護費用。
3) 微軟Azure 平臺
Windows Azure Platform 是一個運行在微軟數(shù)據(jù)中心的云計算平臺。它包括一個云計算操作系統(tǒng)和一個為開發(fā)者提供的服務集合。開發(fā)人員創(chuàng)建的應用既可以直接在該平臺中運行,也可以使用該云計算平臺提供的服務。相比較而言,Windows Azure platform延續(xù)了微軟傳統(tǒng)軟件平臺的特點,能夠為客戶提供熟悉的開發(fā)體驗,用戶已有的許多應用程序都可以相對平滑地遷移到該平臺上運行。另外 Windows Azure Platform還可以按照云計算的方式按需擴展,在商業(yè)開發(fā)時可以節(jié)省開發(fā)部署的時間和費用。Windows Azure platform包括Windows Azure、SQL Azure和Windows Azure platform AppFabric。Windows Azure可看成一個云計算服務的操作系統(tǒng);SQL Azure是云中的數(shù)據(jù)庫;AppFabric是一個基于Web的開發(fā)服務,它可以把現(xiàn)有應用和服務與云平臺的連接和互操作變得更為簡單。 AppFabric讓開發(fā)人員可以把精力放在他們的應用邏輯上而不是在部署和管理云服務的基礎(chǔ)架構(gòu)上。
4) IBM“藍云”計算平臺
IBM的“藍云”計算平臺是一套軟、硬件平臺,將Internet上使用的技術(shù)擴展到企業(yè)平臺上,使得數(shù)據(jù)中心使用類似于互聯(lián)網(wǎng)的計算環(huán)境。“藍云”大量使用了IBM先進的大規(guī)模計算技術(shù),結(jié)合了IBM自身的軟、硬件系統(tǒng)以及服務技術(shù),支持開放標準與開放源代碼軟件。“藍云”基于IBM Almaden研究中心的云基礎(chǔ)架構(gòu),采用了Xen和PowerVM虛擬化軟件,Linux操作系統(tǒng)映像以及Hadoop軟件(Google File System以及MapReduce的開源實現(xiàn))。“藍云”計算平臺由一個數(shù)據(jù)中心、IBM Tivoli部署管理軟件(Tivoli provisioning manage)、IBM Tivoli監(jiān)控軟件(IBM Tivoli monitoring)、IBM WebSphere應用服務器、IBM DB2數(shù)據(jù)庫以及一些開源信息處理軟件和開源虛擬化軟件共同組成。“藍云”的硬件平臺環(huán)境與一般的x86服務器集群類似,使用刀片的方式增加了計算密度。
#p#
3.云計算系統(tǒng)故障事件
云計算的核心思想,是將大量用網(wǎng)絡連接的計算資源統(tǒng)一管理和調(diào)度,構(gòu)成一個計算資源池向用戶按需服務。它為用戶提供了一個高性能計算環(huán)境,高可伸縮的彈性的可計算平臺,準確、安全、可靠而穩(wěn)定的計算資源和存儲資源。然而,近年來國際主流的云計算系統(tǒng)和應用均暴露出不同程度的可靠性和安全性問題,例如:
1)Google應用引擎平臺宕機
2009年7月3 日,Google App Engine遭遇“數(shù)據(jù)倉庫操作延遲增加、錯誤率上升等故障。” 這次故障持續(xù)了約6小時更糟糕的是,在Google更新Google Groups上的消息時,App Engine Status網(wǎng)頁卻因這次故障而完全無法訪問。據(jù)悉,這次Google App Engine故障不僅造成用戶的經(jīng)濟損失,甚至影響到了Mac版Chrome瀏覽器的開發(fā)。2010年02月25日,Google支持第三方網(wǎng)絡應用的 App Engine平臺再次發(fā)生宕機故障,所有存放的第三方應用陷入癱瘓,殃及絕大部分網(wǎng)絡應用。整個平臺癱瘓時間超過兩小時。
2)Google Gmail和日歷服務中斷
2010年2月23 日,Google Gmail出現(xiàn)故障,持續(xù)時間長達兩個半小時,這次故障導致全球數(shù)以百萬計的用戶在幾小時內(nèi)無法訪問賬戶,經(jīng)濟損失無法估量,由于此次服務器故障,Google將針對企業(yè)的Google Apps高級版訂戶的付費時間延長十五天。2010年10月12日到2010年10月19日,Google的日歷服務中斷了8天。這起事故讓0.2%的 Google日歷用戶中斷了多天的訪問。
3)Google Voice服務宕機
2010年11月23日,Google Voice網(wǎng)絡電話服務再發(fā)生宕機事故,部分Google Voice用戶無法撥出或接聽電話。這次宕機事故只是近期Google Voice多個問題中的一個。2010年11月2日和5日都發(fā)生了類似的宕機事故。
4)亞馬遜S3服務故障
Amazon的云存儲平臺Simple Storage Service(S3)在2008年7月出現(xiàn)了服務故障,故障持續(xù)了8個小時之久,依賴S3進行文件存儲的在線公司因此蒙受了損失。S3在2月份的時候也出現(xiàn)過一次類似的故障,當時該故障持續(xù)了兩個小時。
5)亞馬遜EC2云計算服務遭到僵尸網(wǎng)絡攻擊
2010年4月,亞馬遜基于云計算的EC2(彈性計算云)服務在一個星期內(nèi)接連發(fā)生了兩起故障,一起是僵尸網(wǎng)絡引起的內(nèi)部服務故障,另一起是在弗吉尼亞州的一個數(shù)據(jù)中心發(fā)生的電源故障。
云計算代表IT 領(lǐng)域向集約化、規(guī)?;c專業(yè)化道路發(fā)展的趨勢,是一種面向Internet的IT資源交付和試用模式,但它在整合IT資源、提高資源利用率的同時,其性能、安全可靠性問題備受關(guān)注。這些問題都很大程度上制約了云計算產(chǎn)業(yè)的發(fā)展,成為實現(xiàn)大規(guī)模云計算的障礙。因此,專業(yè)性的云計算系統(tǒng)測試是解決目前云計算故障問題的一個重要手段之一。但云計算系統(tǒng)的復雜性和對于用戶的不透明性也決定了第三方測試的難度,那么如何來對云計算系統(tǒng)進行測試呢?將在下節(jié)談談我對云計算測試的看法。
4.云計算系統(tǒng)測試
云計算系統(tǒng)中大量融入了面向服務的體系結(jié)構(gòu),用戶可以通過該體系結(jié)構(gòu)來實施、部署、執(zhí)行和管理自己所提交的作業(yè),可以說云服務是構(gòu)成云計算系統(tǒng)的基本功能單元。云服務測試也成為云計算系統(tǒng)測試的基礎(chǔ)部分。同時,云計算的目的是提供實現(xiàn)高性能計算、可靠、穩(wěn)定而安全的計算環(huán)境,云計算的性能測試和安全可靠性測試也是云計算軟件測試的重要內(nèi)容。
1)云計算系統(tǒng)功能和標準符合性測試
云計算系統(tǒng)軟件的發(fā)展與應用與其相應的技術(shù)標準或規(guī)范是分不開的,衡量一種云系統(tǒng)是否能夠符合用戶需求,從很大意義上講就是在衡量它們所提供的服務的正確性以及是否符合技術(shù)標準或規(guī)范。然而,目前云計算相關(guān)標準不是很統(tǒng)一,各有說法百家爭鳴,但就云計算特征和主要功能來說,各家還是比較統(tǒng)一的,如分為三個層次:SaaS、PaaS和 IaaS,要實現(xiàn)資源池及其調(diào)度管理、任務的分解、調(diào)度和執(zhí)行、按需自助服務、服務計費、工作流管理、虛擬化平臺以及門戶應用等一些主要功能。如果就 SaaS來說,可以測試的是Web服務測試,一個很重要的方面就是測試其是否符合規(guī)范,包括UDDI,XML,SOAP,WSDL等,只有符合這些規(guī)范, 才能向用戶提供正確的Web服務,因此Web服務測試所使用的方法和技術(shù)可以被云服務測試所借鑒和引用。云計算服務測試的目標是確保云服務為給定的請求傳遞期望的應答.然而對于大多數(shù)云計算服務,準確預測客戶端將會發(fā)送什么類型的請求、列舉所有可能的請求是不可行的,因為請求輸入的范圍空間可能非常大。因此,驗證云計算服務是否可以處理范圍廣泛的請求類型和參數(shù)非常重要。
2)云計算系統(tǒng)性能測試
云計算性能測試的目標是驗證在各種負載情況下云計算服務的性能。進行性能測試的最佳方式是使得多個測試客戶運行完整的云服務測試,包括請求提交和應答驗證。性能測試不僅通過指定的并發(fā)請求數(shù)目來監(jiān)視服務器的響應速率,還要測試各類負載是否導致云服務功能性故障。因此,要求云服務性能測試工具能夠設置或者定制性能測試場景(主要是指定負載等級、負載分布等)來執(zhí)行云性能測試套件。根據(jù)高性能計算系統(tǒng)常見的應用場景,云計算系統(tǒng)性能測試可設置的場景主要包括bell曲線、緩沖區(qū)測試、線性增加和穩(wěn)定負載。這樣,通過使用不同的測試場景來使用不同的測試用例,同時還應支持跨越遠端的云服務器分布虛擬用戶,從而模擬極限測試與壓力測試。
3)云計算系統(tǒng)安全可靠性測試
云計算系統(tǒng)安全可靠性測試采用主要是以系統(tǒng)評估為主,測試為輔的方法。因此,也需要對現(xiàn)有的云計算系統(tǒng)進行提煉,總結(jié)出普遍適用的云計算模型,進而能通過云計算模型得到云計算的安全可靠性模型,在這個模型下對云計算系統(tǒng)的安全可靠性進行評估。云計算系統(tǒng)的安全可靠性模型主要是由一些評價指標構(gòu)成,這些指標要能完整地描述系統(tǒng)可靠性要求的各個方面,指標之間應減少交叉,防止相互包含,要具有相對獨立性。模型的結(jié)構(gòu)也決定了指標之間的組合關(guān)系,這些關(guān)系與云計算系統(tǒng)的應用類型有關(guān)。測試人員通過測試或評估收集這些指標值,這些指標值通過模型提供的結(jié)構(gòu)組合在一起,它與其他測試的結(jié)果最終構(gòu)成了對云計算系統(tǒng)的安全完整得評價。
博文出處:http://blog.csdn.net/enweitech/article/details/46358241