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