什么是云計(jì)算?
云計(jì)算(cloudcomputing)是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。云是網(wǎng)絡(luò)、互聯(lián)網(wǎng)的一種比喻說法。過去在圖中往往用云來表示電信網(wǎng),后來也用來表示互聯(lián)網(wǎng)和底層基礎(chǔ)設(shè)施的抽象。因此,云計(jì)算甚至可以讓你體驗(yàn)每秒10萬億次的運(yùn)算能力,擁有這么強(qiáng)大的計(jì)算能力可以模擬核爆炸、預(yù)測氣候變化和市場發(fā)展趨勢。用戶通過電腦、筆記本、手機(jī)等方式接入數(shù)據(jù)中心,按自己的需求進(jìn)行運(yùn)算。
對(duì)云計(jì)算的定義有多種說法。對(duì)于到底什么是云計(jì)算,至少可以找到100種解釋?,F(xiàn)階段廣為接受的是美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)定義:云計(jì)算是一種按使用量付費(fèi)的模式,這種模式提供可用的、便捷的、按需的網(wǎng)絡(luò)訪問,進(jìn)入可配置的計(jì)算資源共享池(資源包括網(wǎng)絡(luò),服務(wù)器,存儲(chǔ),應(yīng)用軟件,服務(wù)),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務(wù)供應(yīng)商進(jìn)行很少的交互。
云計(jì)算的特點(diǎn)
(1)超大規(guī)模
“云”具有相當(dāng)?shù)囊?guī)模,Google云計(jì)算已經(jīng)擁有100多萬臺(tái)服務(wù)器,Amazon、IBM、微軟、Yahoo等的“云”均擁有幾十萬臺(tái)服務(wù)器。企業(yè)私有云一般擁有數(shù)百上千臺(tái)服務(wù)器?!霸啤蹦苜x予用戶前所未有的計(jì)算能力。
?。?)虛擬化
云計(jì)算支持用戶在任意位置、使用各種終端獲取應(yīng)用服務(wù)。所請求的資源來自“云”,而不是固定的有形的實(shí)體。應(yīng)用在“云”中某處運(yùn)行,但實(shí)際上用戶無需了解、也不用擔(dān)心應(yīng)用運(yùn)行的具體位置。只需要一臺(tái)筆記本或者一個(gè)手機(jī),就可以通過網(wǎng)絡(luò)服務(wù)來實(shí)現(xiàn)我們需要的一切,甚至包括超級(jí)計(jì)算這樣的任務(wù)。
?。?)高可靠性
“云”使用了數(shù)據(jù)多副本容錯(cuò)、計(jì)算節(jié)點(diǎn)同構(gòu)可互換等措施來保障服務(wù)的高可靠性,使用云計(jì)算比使用本地計(jì)算機(jī)可靠。
(4)通用性
云計(jì)算不針對(duì)特定的應(yīng)用,在“云”的支撐下可以構(gòu)造出千變?nèi)f化的應(yīng)用,同一個(gè)“云”可以同時(shí)支撐不同的應(yīng)用運(yùn)行。
?。?)高可擴(kuò)展性
“云”的規(guī)??梢詣?dòng)態(tài)伸縮,滿足應(yīng)用和用戶規(guī)模增長的需要。
(6)按需服務(wù)
“云”是一個(gè)龐大的資源池,你按需購買;云可以像自來水,電,煤氣那樣計(jì)費(fèi)。
?。?)極其廉價(jià)
由于“云”的特殊容錯(cuò)措施可以采用極其廉價(jià)的節(jié)點(diǎn)來構(gòu)成云,“云”的自動(dòng)化集中式管理使大量企業(yè)無需負(fù)擔(dān)日益高昂的數(shù)據(jù)中心管理成本,“云”的通用性使資源的利用率較之傳統(tǒng)系統(tǒng)大幅提升,因此用戶可以充分享受“云”的低成本優(yōu)勢,經(jīng)常只要花費(fèi)幾百美元、幾天時(shí)間就能完成以前需要數(shù)萬美元、數(shù)月時(shí)間才能完成的任務(wù)。
云計(jì)算可以徹底改變?nèi)藗兾磥淼纳睿瑫r(shí)也要重視環(huán)境問題,這樣才能真正為人類進(jìn)步做貢獻(xiàn),而不是簡單的技術(shù)提升。
?。?)潛在的危險(xiǎn)性
云計(jì)算服務(wù)除了提供計(jì)算服務(wù)外,還必然提供了存儲(chǔ)服務(wù)。但是云計(jì)算服務(wù)當(dāng)前壟斷在私人機(jī)構(gòu)(企業(yè))手中,而他們僅僅能夠提供商業(yè)信用。對(duì)于政府機(jī)構(gòu)、商業(yè)機(jī)構(gòu)(特別像銀行這樣持有敏感數(shù)據(jù)的商業(yè)機(jī)構(gòu))對(duì)于選擇云計(jì)算服務(wù)應(yīng)保持足夠的警惕。一旦商業(yè)用戶大規(guī)模使用私人機(jī)構(gòu)提供的云計(jì)算服務(wù),無論其技術(shù)優(yōu)勢有多強(qiáng),都不可避免地讓這些私人機(jī)構(gòu)以“數(shù)據(jù)(信息)”的重要性挾制整個(gè)社會(huì)。對(duì)于信息社會(huì)而言,“信息”是至關(guān)重要的。另一方面,云計(jì)算中的數(shù)據(jù)對(duì)于數(shù)據(jù)所有者以外的其他用戶云計(jì)算用戶是保密的,但是對(duì)于提供云計(jì)算的商業(yè)機(jī)構(gòu)而言確實(shí)毫無秘密可言。所有這些潛在的危險(xiǎn),是商業(yè)機(jī)構(gòu)和政府機(jī)構(gòu)選擇云計(jì)算服務(wù)、特別是國外機(jī)構(gòu)提供的云計(jì)算服務(wù)時(shí),不得不考慮的一個(gè)重要的前提。
云計(jì)算技術(shù)的架構(gòu)層
1.顯示層
多數(shù)數(shù)據(jù)中心云計(jì)算架構(gòu)的這層主要是用于以友好的方式展現(xiàn)用戶所需的內(nèi)容和服務(wù)體驗(yàn),并會(huì)利用到下面中間件層提供的多種服務(wù),主要有五種技術(shù):
HTML:標(biāo)準(zhǔn)的Web頁面技術(shù),現(xiàn)在主要以HTML4為主,但是將要推出的HTML5會(huì)在很多方面推動(dòng)Web頁面的發(fā)展,比如視頻[1]和本地存儲(chǔ)等方面。
JavaScript:一種用于Web頁面的動(dòng)態(tài)語言,通過JavaScript,能夠極大地豐富Web頁面的功能,并且用以JavaScript為基礎(chǔ)的AJAX創(chuàng)建更具交互性的動(dòng)態(tài)頁面。
CSS:主要用于控制Web頁面的外觀,而且能使頁面的內(nèi)容與其表現(xiàn)形式之間進(jìn)行優(yōu)雅地分離。
Flash[2]:業(yè)界最常用的RIA(RichInternetApplications)技術(shù),能夠在現(xiàn)階段提供HTML等技術(shù)所無法提供的基于Web的富應(yīng)用,而且在用戶體驗(yàn)方面,非常不錯(cuò)。
Silverlight:來自業(yè)界巨擎微軟的RIA技術(shù),雖然其現(xiàn)在市場占有率稍遜于Flash,但由于其可以使用C#[5]來進(jìn)行編程,所以對(duì)開發(fā)者非常友好。
2.中間層
這層是承上啟下的,它在下面的基礎(chǔ)設(shè)施層所提供資源的基礎(chǔ)上提供了多種服務(wù),比如緩存服務(wù)和REST服務(wù)等,而且這些服務(wù)即可用于支撐顯示層,也可以直接讓用戶調(diào)用,并主要有五種技術(shù):
REST:通過REST技術(shù),能夠非常方便和優(yōu)雅地將中間件層所支撐的部分服務(wù)提供給調(diào)用者。
多租戶:就是能讓一個(gè)單獨(dú)的應(yīng)用實(shí)例可以為多個(gè)組織服務(wù),而且保持良好的隔離性和安全性,并且通過這種技術(shù),能有效地降低應(yīng)用的購置和維護(hù)成本。
并行處理:為了處理海量的數(shù)據(jù),需要利用龐大的X86集群進(jìn)行規(guī)模巨大的并行處理,Google的MapReduce是這方面的代表之作。
應(yīng)用服務(wù)器:在原有的應(yīng)用服務(wù)器的基礎(chǔ)上為云計(jì)算做了一定程度的優(yōu)化,比如用于GoogleAppEngine的Jetty應(yīng)用服務(wù)器。
分布式緩存:通過分布式緩存技術(shù),不僅能有效地降低對(duì)后臺(tái)服務(wù)器的壓力,而且還能加快相應(yīng)的反應(yīng)速度,最著名的分布式緩存例子莫過于Memcached。
3.基礎(chǔ)設(shè)施層
這層作用是為給上面的中間件層或者用戶準(zhǔn)備其所需的計(jì)算和存儲(chǔ)等資源,主要有四種技術(shù):
虛擬化:也可以理解它為基礎(chǔ)設(shè)施層的“多租戶”,因?yàn)橥ㄟ^虛擬化技術(shù),能夠在一個(gè)物理服務(wù)器上生成多個(gè)虛擬機(jī),并且能在這些虛擬機(jī)之間能實(shí)現(xiàn)全面的隔離,這樣不僅能減低服務(wù)器的購置成本,而且還能同時(shí)降低服務(wù)器的運(yùn)維成本,成熟的X86虛擬化技術(shù)有VMware的ESX和開源的Xen。
分布式存儲(chǔ):為了承載海量的數(shù)據(jù),同時(shí)也要保證這些數(shù)據(jù)的可管理性,所以需要一整套分布式的存儲(chǔ)系統(tǒng)。
關(guān)系型數(shù)據(jù)庫:基本是在原有的關(guān)系型數(shù)據(jù)庫的基礎(chǔ)上做了擴(kuò)展和管理等方面的優(yōu)化,使其在云中更適應(yīng)。
NoSQL:為了滿足一些關(guān)系數(shù)據(jù)庫所無法滿足的目標(biāo),比如支撐海量的數(shù)據(jù)等,一些公司特地設(shè)計(jì)一批不是基于關(guān)系模型的數(shù)據(jù)庫。
4.管理層
這層是為橫向的三層服務(wù)的,并給這三層提供多種管理和維護(hù)等方面的技術(shù),主要有下面這六個(gè)方面:
帳號(hào)管理:通過良好的帳號(hào)管理技術(shù),能夠在安全的條件下方便用戶地登錄,并方便管理員對(duì)帳號(hào)的管理。
SLA監(jiān)控:對(duì)各個(gè)層次運(yùn)行的虛擬機(jī),服務(wù)和應(yīng)用等進(jìn)行性能方面的監(jiān)控,以使它們都能在滿足預(yù)先設(shè)定的SLA(ServiceLevelAgreement)的情況下運(yùn)行。
計(jì)費(fèi)管理:也就是對(duì)每個(gè)用戶所消耗的資源等進(jìn)行統(tǒng)計(jì),來準(zhǔn)確地向用戶索取費(fèi)用。
安全管理:對(duì)數(shù)據(jù),應(yīng)用和帳號(hào)等IT[6]資源采取全面地保護(hù),使其免受犯罪分子和惡意程序的侵害。
負(fù)載均衡:通過將流量分發(fā)給一個(gè)應(yīng)用或者服務(wù)的多個(gè)實(shí)例來應(yīng)對(duì)突發(fā)情況。
運(yùn)維管理:主要是使運(yùn)維操作盡可能地專業(yè)和自動(dòng)化,從而降低云計(jì)算中心的運(yùn)維成本。
云計(jì)算架構(gòu)其中有三層是橫向的,分別是顯示層、中間件層和基礎(chǔ)設(shè)施層,通過這三層技術(shù)能夠提供非常豐富的云計(jì)算能力和友好的用戶界面,云計(jì)算架構(gòu)還有一層是縱向的,稱為管理層,是為了更好地管理和維護(hù)橫向的三層而存在的。
云計(jì)算架構(gòu)分層
一般來說,目前大家比較公認(rèn)的云架構(gòu)是劃分為基礎(chǔ)設(shè)施層、平臺(tái)層和軟件服務(wù)層三個(gè)層次的。對(duì)應(yīng)名稱為IaaS,PaaS和SaaS。IaaS,InfrastructureasaService,中文名為基礎(chǔ)設(shè)施即服務(wù),有點(diǎn)拗口,大家習(xí)慣了就好。如圖1所示。

圖1云計(jì)算架構(gòu)示意圖
IaaS主要包括計(jì)算機(jī)服務(wù)器、通信設(shè)備、存儲(chǔ)設(shè)備等,能夠按需向用戶提供的計(jì)算能力、存儲(chǔ)能力或網(wǎng)絡(luò)能力等IT基礎(chǔ)設(shè)施類服務(wù),也就是能在基礎(chǔ)設(shè)施層面提供的服務(wù)。今天IaaS能夠得到成熟應(yīng)用的核心在于虛擬化技術(shù),通過虛擬化技術(shù)可以將形形色色計(jì)算設(shè)備統(tǒng)一虛擬化為虛擬資源池中的計(jì)算資源,將存儲(chǔ)設(shè)備統(tǒng)一虛擬化為虛擬資源池中的存儲(chǔ)資源,將網(wǎng)絡(luò)設(shè)備統(tǒng)一虛擬化為虛擬資源池中的網(wǎng)絡(luò)資源。當(dāng)用戶訂購這些資源時(shí),數(shù)據(jù)中心管理者直接將訂購的份額打包提供給用戶,從而實(shí)現(xiàn)了IaaS。
PaaS, Platform as a Service,中文名為平臺(tái)即服務(wù)。如果以傳統(tǒng)計(jì)算機(jī)架構(gòu)中“硬件+操作系統(tǒng)/開發(fā)工具+應(yīng)用軟件”的觀點(diǎn)來看待,那么云計(jì)算的平臺(tái)層應(yīng)該提供類似操作系統(tǒng)和開發(fā)工具的功能。實(shí)際上也的確如此,PaaS定位于通過互聯(lián)網(wǎng)為用戶提供一整套開發(fā)、運(yùn)行和運(yùn)營應(yīng)用軟件的支撐平臺(tái)。就像在個(gè)人計(jì)算機(jī)軟件開發(fā)模式下,程序員可能會(huì)在一臺(tái)裝有Windows或Linux操作系統(tǒng)的計(jì)算機(jī)上使用開發(fā)工具開發(fā)并部署應(yīng)用軟件一樣。微軟公司的Windows Azure和谷歌公司的GAE,可以算是目前PaaS平臺(tái)中最為知名的兩個(gè)產(chǎn)品了。
SaaS,軟件即服務(wù)。簡單地說,就是一種通過互聯(lián)網(wǎng)提供軟件服務(wù)的軟件應(yīng)用模式。在這種模式下,用戶不需要再花費(fèi)大量投資用于硬件、軟件和開發(fā)團(tuán)隊(duì)的建設(shè),只需要支付一定的租賃費(fèi)用,就可以通過互聯(lián)網(wǎng)享受到相應(yīng)的服務(wù),而且整個(gè)系統(tǒng)的維護(hù)也由廠商負(fù)責(zé)。
云計(jì)算和大數(shù)據(jù)的區(qū)別
云計(jì)算就是硬件資源的虛擬化;大數(shù)據(jù)就是海量數(shù)據(jù)的高效處理。云計(jì)算相當(dāng)于我們的計(jì)算機(jī)和操作系統(tǒng),將大量的硬件資源虛擬化之后再進(jìn)行分配使用,在云計(jì)算領(lǐng)域目前的老大應(yīng)該算是Amazon,可以說為云計(jì)算提供了商業(yè)化的標(biāo)準(zhǔn),另外值得關(guān)注的還有VMware(其實(shí)從這一點(diǎn)可以幫助你理解云計(jì)算和虛擬化的關(guān)系),開源的云平臺(tái)最有活力的就是Openstack了;
大數(shù)據(jù)相當(dāng)于海量數(shù)據(jù)的“數(shù)據(jù)庫”,而且通觀大數(shù)據(jù)領(lǐng)域的發(fā)展也能看出,當(dāng)前的大數(shù)據(jù)處理一直在向著近似于傳統(tǒng)數(shù)據(jù)庫體驗(yàn)的方向發(fā)展,Hadoop的產(chǎn)生使我們能夠用普通機(jī)器建立穩(wěn)定的處理TB級(jí)數(shù)據(jù)的集群,把傳統(tǒng)而昂貴的并行計(jì)算等概念一下就拉到了我們的面前,但是其不適合數(shù)據(jù)分析人員使用(因?yàn)镸apReduce開發(fā)復(fù)雜),所以PigLatin和Hive出現(xiàn)了(分別是Yahoo!和facebook發(fā)起的項(xiàng)目,說到這補(bǔ)充一下,在大數(shù)據(jù)領(lǐng)域Google、facebook、twitter等前沿的互聯(lián)網(wǎng)公司作出了很積極和強(qiáng)大的貢獻(xiàn)),為我們帶來了類SQL的操作,到這里操作方式像SQL了,但是處理效率很慢,絕對(duì)和傳統(tǒng)的數(shù)據(jù)庫的處理效率有天壤之別,所以人們又在想怎樣在大數(shù)據(jù)處理上不只是操作方式類SQL,而處理速度也能“類SQL”,Google為我們帶來了Dremel/PowerDrill等技術(shù),Cloudera(Hadoop商業(yè)化最強(qiáng)的公司,Hadoop之父cutting就在這里負(fù)責(zé)技術(shù)領(lǐng)導(dǎo))的Impala也出現(xiàn)了。
整體來看,未來的趨勢是,云計(jì)算作為計(jì)算資源的底層,支撐著上層的大數(shù)據(jù)處理,而大數(shù)據(jù)的發(fā)展趨勢是,實(shí)時(shí)交互式的查詢效率和分析能力,借用Google一篇技術(shù)論文中的話,“動(dòng)一下鼠標(biāo)就可以在秒級(jí)操作PB級(jí)別的數(shù)據(jù)”。
電子發(fā)燒友App










評(píng)論