云計(jì)算是一種新型的業(yè)務(wù)交付模式,同時(shí)也是新型的IT基礎(chǔ)設(shè)施管理方法。通過(guò)新型的業(yè)務(wù)交付模式,用戶將通過(guò)網(wǎng)絡(luò)充分利用優(yōu)化的硬件、軟件和網(wǎng)絡(luò)資源,并以此為基礎(chǔ)提供創(chuàng)新的業(yè)務(wù)服務(wù)。新型的IT基礎(chǔ)設(shè)施管理方法讓IT部門(mén)可以把海量資源作為一個(gè)統(tǒng)一的大資源進(jìn)行管理,支持IT部門(mén)在大量增加資源的同時(shí)無(wú)需顯著增加相應(yīng)的人員進(jìn)行維護(hù)管理,云計(jì)算的相關(guān)技術(shù)如下:
一、虛擬化
虛擬化可大幅度提高組織過(guò)程中資源和應(yīng)用程序的效率和可用性。虛擬化把物理資源和最終呈現(xiàn)給用戶的資源進(jìn)行了分離,實(shí)際上是一個(gè)替代過(guò)程,在具有統(tǒng)一良好架構(gòu)設(shè)計(jì)的物理資源上創(chuàng)建出多個(gè)替代資源(即虛擬資源),替代資源和物理資源具有相同的接口和功能,對(duì)用戶來(lái)說(shuō)虛擬資源具備與物理資源相同的使用功能,同時(shí)還可以有不同的屬性,如價(jià)格、容量、可調(diào)整性等。
二、自動(dòng)化部署
云計(jì)算的一個(gè)核心思想是通過(guò)自動(dòng)化的方式盡可能地簡(jiǎn)化任務(wù),使得用戶可以通過(guò)自助服務(wù)方式快捷地獲取所需的資源和能力。部署是基礎(chǔ)設(shè)施管理中十分重要,也是需要花費(fèi)很大工作量的一部分,包括操作系統(tǒng)、中間件和應(yīng)用等不同層次的部署。自動(dòng)化部署可提供簡(jiǎn)化流程,用戶提出申請(qǐng)后由自動(dòng)化部署平臺(tái)根據(jù)調(diào)度和預(yù)約自動(dòng)完成相應(yīng)的部署,因此用戶只需花十幾分鐘,甚至幾分鐘就可以得到一個(gè)完整的環(huán)境,極大地提高了工作效率。
三、應(yīng)用規(guī)模擴(kuò)展
云計(jì)算提供了一個(gè)巨大的資源池,而應(yīng)用的使用又有不同的負(fù)載周期,根據(jù)負(fù)載對(duì)應(yīng)用的資源進(jìn)行動(dòng)態(tài)伸縮可以顯著提高資源的有效利用率,即高負(fù)載時(shí)動(dòng)態(tài)擴(kuò)展資源,低負(fù)載時(shí)釋放多余的資源,這就是應(yīng)用規(guī)模擴(kuò)展技術(shù)所解決的問(wèn)題。該技術(shù)以應(yīng)用為基本單位,為不同的應(yīng)用架構(gòu)設(shè)定不同的集群類型,每一種集群類型都有特定的擴(kuò)展方式,然后通過(guò)監(jiān)控負(fù)載的動(dòng)態(tài)變化,自動(dòng)為應(yīng)用集群增加或者減少資源。
四、分布式文件系統(tǒng)
分布式存儲(chǔ)的目標(biāo)是利用云環(huán)境中多臺(tái)服務(wù)器的存儲(chǔ)資源來(lái)滿足單臺(tái)服務(wù)器所不能滿足的存儲(chǔ)需求。其特征是,存儲(chǔ)資源能夠被抽象表示和統(tǒng)一管理,并且能夠保證數(shù)據(jù)讀寫(xiě)與操作的安全性、可靠性等各方面的要求。
云計(jì)算催生了一些優(yōu)秀的分布式文件系統(tǒng)和云存儲(chǔ)服務(wù)。最典型的云平臺(tái)分布式文件系統(tǒng)是Googie的GFS和開(kāi)源的Hadoop。這兩種可伸縮的分布式文件系統(tǒng)利用容錯(cuò)和故障恢復(fù)機(jī)制,有效地克服了單節(jié)點(diǎn)故障導(dǎo)致的系統(tǒng)故障,實(shí)現(xiàn)了大規(guī)模海量級(jí)的文件存儲(chǔ)。以Hadoop文件系統(tǒng)為例,Hadoop文件系統(tǒng)(HDFS)是一個(gè)運(yùn)行在普通硬件之上的分布式文件系統(tǒng),它和現(xiàn)有的分布式文件系統(tǒng)有著很多相似性。然而,與其他分布式文件系統(tǒng)的區(qū)別也是很明顯的:HDFS是高容錯(cuò)性的。可以部署在低成本的硬件上,HDFS高吞吐量地對(duì)應(yīng)用程序進(jìn)行數(shù)據(jù)訪問(wèn),它適合大數(shù)據(jù)集的應(yīng)用程序,HDFS放開(kāi)一些POSIX的需求去實(shí)現(xiàn)流式地訪問(wèn)文件數(shù)據(jù)。
五、分布式數(shù)據(jù)庫(kù)與非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)
在分布式文件系統(tǒng)上。典型的存儲(chǔ)海量結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)包括Google的BigTable、開(kāi)源的HBase等。這些系統(tǒng)可將非結(jié)構(gòu)化數(shù)據(jù)(如網(wǎng)頁(yè)等)存儲(chǔ)為分布式的、多維的、有序的圖。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目,是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),并且采用的是基于列的而不是基于行的模式。其用戶存儲(chǔ)數(shù)據(jù)行在一個(gè)表里,一個(gè)數(shù)據(jù)行擁有一個(gè)可選擇的鍵和任意數(shù)量的列;表是疏松存儲(chǔ)的,因此用戶可以給行定義各種不同的列。HBase主要用于需要隨機(jī)訪問(wèn),實(shí)時(shí)讀寫(xiě)大數(shù)據(jù)。
六、分布式計(jì)算
基于云平臺(tái)的最典型的分布式計(jì)算模式是Map Reduce編程模型。Map Reduce將大型任務(wù)分成很多細(xì)粒度的子任務(wù),這些子任務(wù)分布式在多個(gè)計(jì)算節(jié)點(diǎn)上進(jìn)行調(diào)度和計(jì)算,從而在云平臺(tái)上獲得對(duì)海量數(shù)據(jù)的處理能力。“Map(映射)”和“Reduce(化簡(jiǎn))”的主要思想都是從函數(shù)式編程語(yǔ)言里借來(lái)的:當(dāng)前的軟件實(shí)現(xiàn)是指定一個(gè)Map(映射)函數(shù),用來(lái)把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(化簡(jiǎn))函數(shù),用來(lái)保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。
簡(jiǎn)單說(shuō)來(lái),一個(gè)映射函數(shù)就是對(duì)一些獨(dú)立元素組成概念列表的每一個(gè)元素進(jìn)行指定的操作。事實(shí)上,每個(gè)元素都是被獨(dú)立操作的,而原始列表沒(méi)有被更改,因?yàn)檫@里創(chuàng)建了一個(gè)新的列表來(lái)保存新的答案。也就是說(shuō),Map操作是可以高度并行的,這對(duì)高性能要求的應(yīng)用以及并行計(jì)算領(lǐng)域的需求非常有用。Reduce操作指的是對(duì)一個(gè)列表的元素進(jìn)行適當(dāng)?shù)暮喜?。雖然它不如映射函數(shù)那么并行,但是因?yàn)榛?jiǎn)總是有一個(gè)簡(jiǎn)單的答案,大規(guī)模的運(yùn)算相對(duì)獨(dú)立,所以化簡(jiǎn)函數(shù)在高度并行環(huán)境下也很有用。