破除大數(shù)據(jù)堅冰 PaaS平臺有妙招
PaaS提供了基礎(chǔ)架構(gòu),軟件開發(fā)者可以在這個基礎(chǔ)架構(gòu)之上建設(shè)新的應(yīng)用,或者擴(kuò)展已有的應(yīng)用。Salesforce的Force.com、Google的App Engine和微軟的Azure(微軟云計算平臺)都采用了PaaS的模式。這些平臺允許公司創(chuàng)建個性化的應(yīng)用,也允許獨(dú)立軟件廠商或者其他的第三方機(jī)構(gòu)針對垂直細(xì)分行業(yè)創(chuàng)建新的解決方案。
PaaS為部署和運(yùn)行應(yīng)用系統(tǒng)提供所需的基礎(chǔ)設(shè)施資源和一個月基礎(chǔ)設(shè)施,應(yīng)用開發(fā)人員無需關(guān)心應(yīng)用的底層硬件和應(yīng)用基礎(chǔ)設(shè)施,并且可以根據(jù)應(yīng)用需求動態(tài)擴(kuò)展應(yīng)用系統(tǒng)所需的資源。完整的PaaS平臺應(yīng)提供如下功能:
第一,分布式運(yùn)行環(huán)境。
第二,多種類型的數(shù)據(jù)存儲,動態(tài)資源伸縮。
第三,應(yīng)用全生命周期支持,提供第三方接入服務(wù)。
第四,提供開發(fā)SDK、IDE等加快應(yīng)用的開發(fā)、測試和部署。
第五,監(jiān)控、管理和計量:提供資源池、應(yīng)用系統(tǒng)的管理和監(jiān)控功能、精確計量應(yīng)用鎖消耗的計算資源。
第六,提供應(yīng)用托管、服務(wù)托管、應(yīng)用服務(wù)器托管、虛擬機(jī)托管。
第七,提供連通性服務(wù)、整合服務(wù)、消息服務(wù)和流程服務(wù)等用于構(gòu)建SOA架構(gòu)風(fēng)格的復(fù)合應(yīng)用。
PaaS的難點(diǎn)與PaaS的特性密不可分,有多租戶支持、彈性伸縮、統(tǒng)一運(yùn)維、系統(tǒng)自愈、細(xì)粒度資源計量、SLA保障等。這些基本也都是云計算的基本特點(diǎn)。多租戶彈性是PaaS區(qū)別于傳統(tǒng)應(yīng)用平臺的本質(zhì)特性,其實(shí)現(xiàn)方式也是用來區(qū)別各類PaaS的最重要標(biāo)志之一,是PaaS的最核心特性之一。
PaaS的一個重要應(yīng)用領(lǐng)域是大數(shù)據(jù)處理,而互聯(lián)網(wǎng)企業(yè)每天都在存儲海量的非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù),這些數(shù)據(jù)需要在短時間內(nèi)被處理,否則就會讓用戶體驗處于崩潰的邊緣。以前,數(shù)據(jù)規(guī)模很大,但是結(jié)構(gòu)化數(shù)據(jù)居多,隨著社交網(wǎng)絡(luò)和移動互聯(lián)網(wǎng)應(yīng)用的興起,非結(jié)構(gòu)化數(shù)據(jù)在采集數(shù)據(jù)的占比越來越大,海量數(shù)據(jù)逐漸演變?yōu)橐詳?shù)據(jù)多樣性為主要特征之一的大數(shù)據(jù)。#p#
PaaS層對數(shù)據(jù)庫的新要求
所謂大數(shù)據(jù),即數(shù)據(jù)集的尺寸大、數(shù)據(jù)生成速度快、結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)類型多、數(shù)據(jù)集蘊(yùn)含的價值大。云計算的PaaS層對數(shù)據(jù)庫技術(shù)提出了新的要求,主要表現(xiàn)在以下幾個方面:
第一,海量數(shù)據(jù)處理。對類似搜索引擎和電信運(yùn)營商級的經(jīng)營分析系統(tǒng)這樣大型的應(yīng)用而言,需要能夠處理PB級的數(shù)據(jù),同時應(yīng)對百萬級的流量。
第二,大規(guī)模集群管理。分布式應(yīng)用可以更加簡單地部署、應(yīng)用和管理。
第三,低延遲讀寫速度??焖俚捻憫?yīng)速度能夠極大地提高用戶的滿意度。
第四,建設(shè)及運(yùn)營成本。云計算應(yīng)用的基本要求是希望在硬件成本、軟件成本以及人力成本方面都有大幅度的降低。
近年來,大數(shù)據(jù)所蘊(yùn)含的巨大價值被人們所認(rèn)識并開發(fā),Google、Facebook、Twitter等基于大數(shù)據(jù)分析的互聯(lián)網(wǎng)應(yīng)用在業(yè)界取得巨大成功,分布式處理系統(tǒng)Hadoop在構(gòu)建大數(shù)據(jù)處理平臺領(lǐng)域應(yīng)用普及,已經(jīng)成為事實(shí)標(biāo)準(zhǔn)。然而,當(dāng)前的Hadoop系統(tǒng)主要基于MapReduce時應(yīng)用的發(fā)展,比如實(shí)時搜索、實(shí)時交易系統(tǒng)、實(shí)時欺騙分析、實(shí)時監(jiān)控、社交網(wǎng)絡(luò)等,都需要一個高度可擴(kuò)展的流式計算解決方案。因此,2011年以來,流式成為業(yè)界應(yīng)用的熱點(diǎn)技術(shù),涌現(xiàn)了眾多成功的應(yīng)用和開源系統(tǒng)實(shí)現(xiàn),如yahoo!的S4系統(tǒng)、Twitter采用的Storm系統(tǒng)。
同時,為加快分布式處理系統(tǒng)的響應(yīng)速度,2012年以來,內(nèi)存計算成為業(yè)界應(yīng)用的熱點(diǎn)技術(shù)。內(nèi)存計算是指CPU直接從內(nèi)存,而不是硬盤上讀取數(shù)據(jù),并進(jìn)行計算、分析,是對傳統(tǒng)的分布式數(shù)據(jù)處理方式的一種加速。內(nèi)存計算作為未來數(shù)據(jù)計算和管理的支撐技術(shù)之一,在商務(wù)智能分析方面擁有巨大的應(yīng)用潛力。
開源社區(qū)推出Memcached,它是一個開源的高性能、分布式的內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。當(dāng)前,Memcached等基于分布式內(nèi)存的數(shù)據(jù)存儲系統(tǒng)在Facebook等企業(yè)已經(jīng)取得成功應(yīng)用。
在大數(shù)據(jù)的存儲方面,弱化一致性的全球分布式數(shù)據(jù)庫系統(tǒng)和突出性能的NoSQL數(shù)據(jù)庫活動量廣泛應(yīng)用。
為了保障數(shù)據(jù)庫操作的完整性和安全性,傳統(tǒng)數(shù)據(jù)庫理論將用戶改變數(shù)據(jù)庫狀態(tài)的一組操作定義為一個事務(wù),并規(guī)定一個支持?jǐn)?shù)據(jù)庫事務(wù)的數(shù)據(jù)庫關(guān)系系統(tǒng)(DataBase Mangement System,DBMS)必須保障一個事務(wù)操作的四項屬性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持續(xù)性(Durability)。
這四大屬性簡稱ACID屬性,與英文中“酸”的單詞字母相同。然而,當(dāng)今的大型互聯(lián)網(wǎng)公司,如Amazon、Google和Yahoo!都為全世界的用戶提供服務(wù),面對如此大規(guī)模的用戶群體和用戶地理分布范圍,單一的集中式數(shù)據(jù)庫架構(gòu)是不現(xiàn)實(shí)的。因此,更好地響應(yīng)世界各地用戶的訪問請求,Amazon等公司多采用全球地理分布的多數(shù)據(jù)庫聯(lián)邦架構(gòu),并將數(shù)據(jù)在多個數(shù)據(jù)庫之間冗余備份,這極大地提升了用戶體驗。
然而,2000年,美國加州伯克利大學(xué)計算機(jī)學(xué)院的Brewer教授提出了著名的CAP理論,明確指出在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的一致性(Consistency)、可用性(Availability)和數(shù)據(jù)分區(qū)容錯(Partition Tolerance)屬性不能同時滿足,最多只能滿足兩項屬性。CAP理論在2002年被Seth Gilbert和Nancy Lynch等人通過嚴(yán)謹(jǐn)?shù)挠嬎憷碚摲椒ㄗC明是正確的。
對于Amazon和Yahoo!所采用的分布式數(shù)據(jù)庫系統(tǒng)而言,數(shù)據(jù)分區(qū)容錯屬性是天然屬性,因而數(shù)據(jù)被分區(qū)存儲而不可預(yù)計的網(wǎng)絡(luò)故障必然會導(dǎo)致數(shù)據(jù)分區(qū)錯誤。因此,依據(jù)CAP理論,對于地理分布的數(shù)據(jù)庫架構(gòu)中,如果需要提供高可用性(Availability),就必須放松對數(shù)據(jù)庫事務(wù)的一致性(Consistency)。
因此,學(xué)術(shù)界提出了對于地理分布的數(shù)據(jù)庫架構(gòu)的事務(wù)支持的新要求,即需要滿足三大屬性:基本可用性(Basically Available),即在任何情況下基本功能可用;柔性事物(Soft state),即允許冗余的數(shù)據(jù)狀態(tài)在某段時間內(nèi)不同步;最終一致性(Eventual Consistency),即保障冗余的數(shù)據(jù)狀態(tài)能夠最終同步。
上述三大屬性簡稱BASE,與英文中“堿”的單詞字母相同。顯而易見,BASE屬性與ACID屬性是相反的。不同于ACID模型,BASE模型通過犧牲強(qiáng)一致性,獲得基本可用性和柔性狀態(tài)保障了系統(tǒng)的可用性和可靠性,并能夠使得數(shù)據(jù)的副本之間最終達(dá)成一致。BASE模型在早期的地理分布式數(shù)據(jù)庫系統(tǒng)中取得成功應(yīng)用,典型系統(tǒng)如Amazon的Dynamo和Yahoo!的PNUTS。#p#
NoSQL在大數(shù)據(jù)處理中取得成功
不僅如此,CAP理論、BASE模型也為當(dāng)前互聯(lián)網(wǎng)領(lǐng)域非常流行的NoSQL(Not Only SQL)數(shù)據(jù)庫系統(tǒng)奠定了理論基礎(chǔ),而NoSQL數(shù)據(jù)庫系統(tǒng)在新興互聯(lián)網(wǎng)企業(yè)如Facebook、Twitter等取得成功應(yīng)用。
SQL(Structured Query Language)是面向關(guān)系型數(shù)據(jù)庫的結(jié)構(gòu)化基礎(chǔ)語言,針對關(guān)系數(shù)據(jù)的功能設(shè)計。NoSQL面向非結(jié)構(gòu)化數(shù)據(jù)存儲,其核心概念并不在數(shù)據(jù)如何被查詢,而是數(shù)據(jù)如何被存儲,即非關(guān)系數(shù)據(jù)庫。
但是NoSQL數(shù)據(jù)庫也可包含面向非結(jié)構(gòu)化數(shù)據(jù)的查詢語言,如開源NoSQL數(shù)據(jù)庫系統(tǒng)Couchbase和SQLite使用的非結(jié)構(gòu)數(shù)據(jù)查詢語言UnQL(Unstructured Data Query Language)。NoSQL數(shù)據(jù)庫主要面向簡單鍵值對(Key-Value)數(shù)據(jù)格式,采用列式存儲方式。另一方面,其放松了數(shù)據(jù)庫事務(wù)的嚴(yán)格一致性要求,因而能夠取得很好的訪問性能和近乎線性的擴(kuò)展性,從而在大數(shù)據(jù)存儲領(lǐng)域取得了巨大成功。
NoSQL的興起也得益于開源社區(qū)的廣泛支持,當(dāng)前應(yīng)用廣泛的NoSQL數(shù)據(jù)庫不僅有Hadoop系統(tǒng)集成的Hbase數(shù)據(jù)庫,還有滿足極高讀寫性能需求的Key-Value數(shù)據(jù)庫,如Redis等;滿足海量存儲需求和訪問的面向文檔的數(shù)據(jù)庫:如MongoDB、CouchDB等;滿足高可擴(kuò)展性和可用性的面向分布式計算的數(shù)據(jù)庫:Cassandra等。
開源軟件的普及推動技術(shù)普及和產(chǎn)業(yè)標(biāo)準(zhǔn)成熟,產(chǎn)業(yè)巨大需求也促使傳統(tǒng)數(shù)據(jù)庫廠商提供NoSQL數(shù)據(jù)庫產(chǎn)品和解決方案。
2012年12月,作為其云計算軟件基礎(chǔ)設(shè)施的一部分,Oracle發(fā)布了NoSQL數(shù)據(jù)庫產(chǎn)品Oracle NoSQL Database 2.0,標(biāo)志著NoSQL數(shù)據(jù)庫已經(jīng)成為大數(shù)據(jù)時代的數(shù)據(jù)處理的主流解決方案之一。
在信息技術(shù)融合應(yīng)用的新時代,大數(shù)據(jù)就是像黃金一樣的新型經(jīng)濟(jì)資產(chǎn)、像石油一樣的重要戰(zhàn)略資源。然而,大數(shù)據(jù)對處理和存儲能力的無限需求使得傳統(tǒng)的IT架構(gòu)和技術(shù)力不從心,唯有云計算才能支撐上述需求,才能支撐面向大數(shù)據(jù)的價值發(fā)現(xiàn),從而實(shí)現(xiàn)跨越式發(fā)展。
PaaS的核心價值是讓應(yīng)用及業(yè)務(wù)更加敏捷、IT服務(wù)水平更高、并實(shí)現(xiàn)更高的資源利用率。在云產(chǎn)業(yè)鏈中,如同傳統(tǒng)的中間件所起的作用一樣,PaaS也將會是產(chǎn)業(yè)鏈的制高點(diǎn)。無論是在大型企業(yè)私有云中,還是在中小企業(yè)所關(guān)心的應(yīng)用云中,PaaS都將起到核心的作用。















 
 
 





 
 
 
 