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