編者按:本文歷數(shù)了1980年至今的技術(shù)發(fā)展階段、形態(tài)和產(chǎn)品。基于技術(shù)和產(chǎn)品演進(jìn)的規(guī)律,物聯(lián)網(wǎng)將迎來高速發(fā)展,同時(shí),全新的場景也對數(shù)據(jù)存儲(chǔ)提出了更復(fù)雜的需求。
如果把過去的四十年分為五個(gè)重要的技術(shù)發(fā)展階段,從時(shí)間軸上可以切分為:1980-2000,2000-2005,2005-2010,2010-2020以及2020-2025。從過去看未來,本文先跟大家一起回顧下前四個(gè)階段分別經(jīng)歷了怎樣的技術(shù)發(fā)展?在技術(shù)應(yīng)用上的主要場景是什么?主流的應(yīng)用形態(tài)是什么?誕生了什么樣的新技術(shù)和新產(chǎn)品?再來一起站在當(dāng)下第五個(gè)階段的視角,聊聊我們會(huì)面對什么樣的挑戰(zhàn)和機(jī)會(huì)。
基礎(chǔ)設(shè)施的完善,推動(dòng)應(yīng)用形態(tài)不斷變遷
在1980~2000這個(gè)階段,是計(jì)算機(jī)技術(shù)發(fā)展和應(yīng)用的階段。計(jì)算機(jī)能夠幫助企業(yè)更好地管理自己的數(shù)據(jù),對提升流程效率有很大的幫助,所以這個(gè)階段的應(yīng)用主要是企業(yè)信息系統(tǒng)。
這個(gè)階段誕生了很多專為企業(yè)服務(wù)的科技公司,創(chuàng)造了很多偉大的商業(yè)產(chǎn)品。應(yīng)用系統(tǒng)的數(shù)據(jù)主要存儲(chǔ)在數(shù)據(jù)庫內(nèi),數(shù)據(jù)庫以關(guān)系數(shù)據(jù)庫為主,這一階段是關(guān)系數(shù)據(jù)庫理論和產(chǎn)品的成熟期,誕生了像Oracle、IBM DB2、微軟SQL Server等商業(yè)數(shù)據(jù)庫產(chǎn)品。
在2000~2005這個(gè)階段,是互聯(lián)網(wǎng)技術(shù)的初始發(fā)展階段。信息能夠通過互聯(lián)網(wǎng)更有效的傳遞,所以這個(gè)階段誕生了大量門戶類的網(wǎng)站,也就是Web 1.0時(shí)代。LAMP(Linux+Apache+MySQL+PHP)是當(dāng)時(shí)最流行的建站技術(shù),是一個(gè)完全由開源產(chǎn)品組合的低成本解決方案。應(yīng)用系統(tǒng)的數(shù)據(jù)存儲(chǔ)仍以關(guān)系數(shù)據(jù)庫為主,MySQL以其開源和低成本的優(yōu)勢替換商業(yè)關(guān)系數(shù)據(jù)庫,得到大規(guī)模的應(yīng)用。
隨著互聯(lián)網(wǎng)上的信息越來越多,人們獲取有效信息的訴求越來越強(qiáng)烈,所以搜索引擎作為一個(gè)新的應(yīng)用形態(tài)誕生。搜索引擎是首個(gè)面臨大規(guī)模數(shù)據(jù)處理挑戰(zhàn)的應(yīng)用,Google作為一家偉大的技術(shù)公司首創(chuàng)了很多大數(shù)據(jù)處理技術(shù)。大家熟知的三駕馬車(GFS、Mapreduce和Bigtable),奠定了未來十年NoSQL和Bigdata技術(shù)的發(fā)展基礎(chǔ)。
在2005~2010這個(gè)階段,隨著個(gè)人PC得到普及,以及接入互聯(lián)網(wǎng)的成本逐漸降低,接入互聯(lián)網(wǎng)的『人』越來越多。有一些新的應(yīng)用形態(tài)因此誕生,一是人們不再僅滿足于從互聯(lián)網(wǎng)上單向獲取信息,更渴望在互聯(lián)網(wǎng)上進(jìn)行人與人之間的信息交流,于是促進(jìn)了社交網(wǎng)絡(luò)的發(fā)展;二是圍繞『人群』的應(yīng)用,一些B2C或C2C的電商網(wǎng)站開始發(fā)展。這個(gè)時(shí)代就是所謂的Web 2.0時(shí)代,『人』作為新的數(shù)據(jù)源開始在互聯(lián)網(wǎng)上產(chǎn)生大量數(shù)據(jù)。
這個(gè)階段誕生了一些超大體量的互聯(lián)網(wǎng)公司,主要是在電商和社交網(wǎng)絡(luò)領(lǐng)域。這些公司面臨著如何支撐如此大規(guī)模數(shù)據(jù)在線服務(wù),以及如何處理和分析這些海量數(shù)據(jù)的挑戰(zhàn)。彼時(shí)還沒有成熟可用的解決方案,所以這些公司不得不開始自研系統(tǒng)的開發(fā),所以之后流行的一些NoSQL和Bigdata系統(tǒng)都是誕生或孵化自這個(gè)時(shí)代的超大體量互聯(lián)網(wǎng)公司,比如Hadoop最早在雅虎內(nèi)部孵化,Cassandra最早是應(yīng)用在Facebook的收件箱搜索場景。
在2010~2020這個(gè)階段,隨著4G技術(shù)發(fā)展和智能手機(jī)的普及,移動(dòng)互聯(lián)網(wǎng)開始發(fā)展。人們可以隨時(shí)隨地聯(lián)網(wǎng),移動(dòng)應(yīng)用可以覆蓋到更廣的人群,滲透到更多的生活場景,比如支付、打車等。傳統(tǒng)互聯(lián)網(wǎng)應(yīng)用逐步向移動(dòng)應(yīng)用形態(tài)轉(zhuǎn)換,產(chǎn)生了大量應(yīng)用搭建的需求,云平臺(tái)作為低成本、易接入的數(shù)據(jù)中心被更多企業(yè)接受,這十年也是云計(jì)算發(fā)展的黃金十年。
云計(jì)算徹底改變了應(yīng)用的運(yùn)行環(huán)境,與傳統(tǒng)IDC不同,在這個(gè)運(yùn)行環(huán)境中,計(jì)算、存儲(chǔ)等資源是池化的,可彈性獲取多類型的存儲(chǔ)和計(jì)算資源?;谠频膹椥再Y源構(gòu)建的應(yīng)用即『云原生』應(yīng)用,越來越多的大數(shù)據(jù)、數(shù)據(jù)庫產(chǎn)品基于云原生構(gòu)建,而為了擁有彈性可擴(kuò)展能力,分布式技術(shù)也得到大量的使用。現(xiàn)代新的大數(shù)據(jù)和數(shù)據(jù)庫產(chǎn)品,分布式和云原生一定是必備的能力。
最后是2020~2025這個(gè)階段,我們已經(jīng)能看到5G、IoT技術(shù)逐漸成熟,又會(huì)誕生一個(gè)新的應(yīng)用形態(tài)即物聯(lián)網(wǎng)。我們能看到的一些新的應(yīng)用場景,包括車聯(lián)網(wǎng)、工業(yè)物聯(lián)網(wǎng)以及智能家居等。
技術(shù)和產(chǎn)品演進(jìn)的規(guī)律
總結(jié)下過去幾十年的技術(shù)和產(chǎn)品演進(jìn)的規(guī)律:基礎(chǔ)設(shè)施技術(shù)->信息化范圍變大->更多場景、更大數(shù)據(jù)規(guī)模->技術(shù)和產(chǎn)品發(fā)展。
每個(gè)階段都是由一個(gè)『基礎(chǔ)設(shè)施』的完善和普及作為起點(diǎn),基礎(chǔ)設(shè)施的核心作用是讓信息化的范圍進(jìn)一步變大。比如互聯(lián)網(wǎng)讓應(yīng)用能與更多終端連接,移動(dòng)互聯(lián)網(wǎng)直接打破了終端這個(gè)壁壘,直接讓應(yīng)用能與更多人連接,而物聯(lián)網(wǎng)會(huì)把更多設(shè)備也加入這個(gè)連接。
隨著信息化的范圍變大,更多新的應(yīng)用場景誕生,同時(shí)更大數(shù)量的『個(gè)體』產(chǎn)生更大規(guī)模的數(shù)據(jù),成為基礎(chǔ)技術(shù)發(fā)展的推動(dòng)力。
在這個(gè)過程中,往往基礎(chǔ)技術(shù)會(huì)落后于應(yīng)用形態(tài)發(fā)展。但隨著分布式技術(shù)和云計(jì)算的普及,基礎(chǔ)技術(shù)演進(jìn)和普及的速度越來越快。我們也可以看到基礎(chǔ)技術(shù)產(chǎn)品形態(tài)的變化,從最早的商業(yè)型產(chǎn)品,到開源型產(chǎn)品,再到現(xiàn)在的云原生產(chǎn)品。
那在物聯(lián)網(wǎng)這個(gè)新階段,設(shè)備的數(shù)量以及產(chǎn)生的數(shù)據(jù)會(huì)是更大的規(guī)模,會(huì)有更大的挑戰(zhàn)。那在這樣的挑戰(zhàn)下,又會(huì)推動(dòng)怎樣的技術(shù)發(fā)展呢?
物聯(lián)網(wǎng)迎來高速發(fā)展面臨兩大挑戰(zhàn)
我們來看下物聯(lián)網(wǎng)到底在經(jīng)歷怎樣的高速發(fā)展,從以下兩個(gè)市場報(bào)告中來看下物聯(lián)網(wǎng)整體的增長態(tài)勢:
設(shè)備數(shù)的大規(guī)模增長:Gartner預(yù)測,到2021年物聯(lián)網(wǎng)內(nèi)設(shè)備數(shù)增長到250億。如何管理如此海量的設(shè)備是第一大挑戰(zhàn)。
設(shè)備數(shù)據(jù)的大規(guī)模增長:IDC報(bào)告中可以看到,到2025年物聯(lián)網(wǎng)數(shù)據(jù)規(guī)模達(dá)到79.4 ZB,年平均增長率高達(dá)34.91%,如何存儲(chǔ)和分析如此海量的數(shù)據(jù)是第二大挑戰(zhàn)。
物聯(lián)網(wǎng)場景下對數(shù)據(jù)存儲(chǔ)的需求
我們以一個(gè)車聯(lián)網(wǎng)中的一個(gè)真實(shí)應(yīng)用場景為例,假如你是一家提供網(wǎng)約車服務(wù)的新能源車企,日常管理數(shù)十萬量新能源汽車提供網(wǎng)約車服務(wù),你會(huì)遇到如下幾個(gè)具體的場景:
設(shè)備數(shù)的大規(guī)模增長:Gartner 預(yù)測,到 2021 年物聯(lián)網(wǎng)內(nèi)設(shè)備數(shù)增長到 250 億。如何管理如此海量的設(shè)備是第一大挑戰(zhàn)。
為便于對這些汽車進(jìn)行管理,每輛汽車都得實(shí)時(shí)匯報(bào)自己的狀態(tài),包括位置信息、剩余電量、行駛里程、行駛速度等等。除了這些動(dòng)態(tài)信息外,每輛車還會(huì)有自己的一些靜態(tài)信息例如型號、車主等,每輛車的這些信息都需要在后端實(shí)時(shí)獲取和管理。
有了這些車輛的實(shí)時(shí)狀態(tài)信息后,就可為車主、乘客或者是后臺(tái)提供車輛的實(shí)時(shí)狀態(tài)查詢服務(wù)。后臺(tái)也會(huì)有一些計(jì)算任務(wù)依賴于實(shí)時(shí)狀態(tài),例如根據(jù)位置信息或特定條件進(jìn)行車輛圈選來進(jìn)行特定任務(wù)的管理,或者是根據(jù)實(shí)時(shí)狀態(tài)來進(jìn)行車輛調(diào)度。
除了車輛自身需要實(shí)時(shí)匯報(bào)狀態(tài)外,車輛與管理后臺(tái)還需要保持一個(gè)消息通道。通過這個(gè)消息通道,車輛會(huì)匯報(bào)自身的一些異常事件,后臺(tái)也可下發(fā)一些消息信息或者控制指令。
另外車輛的一些行駛信息會(huì)上報(bào)并存儲(chǔ)為軌跡數(shù)據(jù),同時(shí)行駛中的一些傳感器數(shù)據(jù)也需要存儲(chǔ)。有了這些數(shù)據(jù)后,一方面可以對行駛軌跡進(jìn)行查詢,另一方面是可以基于數(shù)據(jù)進(jìn)行一些計(jì)算分析,挖掘更多的價(jià)值,比如通過分析歷史行駛數(shù)據(jù)來優(yōu)化調(diào)度算法等。
從這幾個(gè)場景中可以看到,車輛相關(guān)的數(shù)據(jù)主要有三類,一是實(shí)時(shí)狀態(tài)數(shù)據(jù),我們把這類數(shù)據(jù)歸類為『元數(shù)據(jù)』;二是消息通道,我們把這類數(shù)據(jù)歸類為『消息數(shù)據(jù)』;三是軌跡數(shù)據(jù),我們將這類數(shù)據(jù)歸類為『時(shí)序數(shù)據(jù)』。
這三類數(shù)據(jù)對底層存儲(chǔ)有不同的要求,『元數(shù)據(jù)』的特征是高頻更新,對查詢能力要求高,需要根據(jù)多字段條件進(jìn)行數(shù)據(jù)查詢或篩選;『消息數(shù)據(jù)』的特征類似消息隊(duì)列,隊(duì)列數(shù)量極多,需要為每個(gè)設(shè)備維護(hù)一個(gè)獨(dú)立的對壘;『時(shí)序數(shù)據(jù)』的特征是高吞吐寫入,數(shù)據(jù)規(guī)模較大,比較偏重分析場景。
在傳統(tǒng)方案中,元數(shù)據(jù)一般使用MySQL存儲(chǔ),但MySQL最大的問題是無法靈活支持多字段條件篩選,一般需要組合Elasticsearch,依賴Elasticsearch來提供多字段檢索能力。消息數(shù)據(jù)雖然具備消息隊(duì)列的特征,但無法使用傳統(tǒng)消息隊(duì)列,因?yàn)閭鹘y(tǒng)消息隊(duì)列無法支撐如此多數(shù)量的Topic,所以一般也有選擇使用MySQL來模擬隊(duì)列實(shí)現(xiàn)。時(shí)序數(shù)據(jù)一般選擇使用HBase來存儲(chǔ),能提供高吞吐寫入和支撐大規(guī)模存儲(chǔ),但HBase不具備分析能力。
往往基礎(chǔ)技術(shù)會(huì)落后于應(yīng)用形態(tài)發(fā)展,傳統(tǒng)架構(gòu)是通過組合多款產(chǎn)品的方式來構(gòu)建整個(gè)物聯(lián)網(wǎng)存儲(chǔ)系統(tǒng)。這種多組件的組合架構(gòu),架構(gòu)復(fù)雜度高,帶來極高的運(yùn)維成本。開發(fā)者需要理解和使用多款產(chǎn)品,且分布式組件的運(yùn)維具備一定的難度,導(dǎo)致整體的成本非常高。
另外,每個(gè)組件并不是為物聯(lián)網(wǎng)場景設(shè)計(jì)和優(yōu)化,我們可以看到物聯(lián)網(wǎng)場景下設(shè)備元數(shù)據(jù)、消息數(shù)據(jù)和時(shí)序數(shù)據(jù)都有非常典型的特征,且整體規(guī)模增長速度會(huì)遠(yuǎn)超互聯(lián)網(wǎng)時(shí)代,可以預(yù)見老一代產(chǎn)品無法應(yīng)對物聯(lián)網(wǎng)下更大數(shù)據(jù)規(guī)模的增長。
物聯(lián)網(wǎng)需要什么樣的存儲(chǔ)產(chǎn)品
根據(jù)過去幾十年技術(shù)產(chǎn)品發(fā)展的客觀規(guī)律,物聯(lián)網(wǎng)時(shí)代已經(jīng)到來,當(dāng)前的技術(shù)架構(gòu)難以支撐未來物聯(lián)網(wǎng)規(guī)模的增長。面對物聯(lián)網(wǎng)下萬物互聯(lián)這一新的應(yīng)用形態(tài),在海量設(shè)備和海量數(shù)據(jù)的挑戰(zhàn)下,基于云計(jì)算這一新一代基礎(chǔ)平臺(tái),我們利用云原生、分布式等基礎(chǔ)技術(shù),需要打造一個(gè)什么樣的新的基礎(chǔ)產(chǎn)品呢?
我們希望這個(gè)新的基礎(chǔ)產(chǎn)品具備以下幾個(gè)特性:
基于云原生和分布式技術(shù)構(gòu)建,具備可擴(kuò)展性和彈性;
滿足設(shè)備元數(shù)據(jù)、消息數(shù)據(jù)、時(shí)序數(shù)據(jù)的一站式存儲(chǔ)、檢索和分析需求;
具備足夠低的成本來支撐如此海量數(shù)據(jù)。