今天跟大家講講云計算、大數(shù)據(jù)和人工智能。為什么講這三個東西呢?因為這三個東西現(xiàn)在非;,并且它們之間好像互相有關(guān)系:一般談云計算的時候會提到大數(shù)據(jù)、談人工智能的時候會提大數(shù)據(jù)、談人工智能的時候會提云計算……感覺三者之間相輔相成又不可分割。但如果是非技術(shù)的人員,就可能比較難理解這三者之間的相互關(guān)系,所以有必要解釋一下。
一、云計算最初的目標
我們首先來說云計算。云計算最初的目標是對資源的管理,管理的主要是計算資源、網(wǎng)絡(luò)資源、存儲資源三個方面。
1. 管數(shù)據(jù)中心就像配電腦
什么叫計算、網(wǎng)絡(luò)、存儲資源?
比如你要買臺筆記本電腦,是不是要關(guān)心這臺電腦是什么樣的CPU?多大的內(nèi)存?這兩個就被我們稱為計算資源。
這臺電腦要上網(wǎng),就需要有個可以插網(wǎng)線的網(wǎng)口,或者有可以連接我們家路由器的無線網(wǎng)卡。您家也需要到運營商比如聯(lián)通、移動或者電信開通一個網(wǎng)絡(luò),比如100M的帶寬。然后會有師傅弄一根網(wǎng)線到您家來,師傅可能會幫您將您的路由器和他們公司的網(wǎng)絡(luò)連接配置好。這樣您家的所有的電腦、手機、平板就都可以通過您的路由器上網(wǎng)了。這就是網(wǎng)絡(luò)資源。
您可能還會問硬盤多大?過去的硬盤都很小,大小如10G之類的;后來即使500G、1T、2T的硬盤也不新鮮了。(1T是1000G),這就是存儲資源。
對于一臺電腦是這個樣子的,對于一個數(shù)據(jù)中心也是同樣的。想象你有一個非常非常大的機房,里面堆了很多的服務(wù)器,這些服務(wù)器也是有CPU、內(nèi)存、硬盤的,也是通過類似路由器的設(shè)備上網(wǎng)的。這時的問題就是:運營數(shù)據(jù)中心的人是怎么把這些設(shè)備統(tǒng)一的管理起來的呢?
2. 靈活就是想啥時要都有,想要多少都行
管理的目標就是要達到兩個方面的靈活性。具體哪兩個方面呢?
舉個例子來理解:比如有個人需要一臺很小的電腦,只有一個CPU、1G內(nèi)存、10G的硬盤、一兆的帶寬,你能給他嗎?像這種這么小規(guī)格的電腦,現(xiàn)在隨便一個筆記本電腦都比這個配置強了,家里隨便拉一個寬帶都要100M。然而如果去一個云計算的平臺上,他要想要這個資源時,只要一點就有了。
這種情況下它就能達到兩個方面靈活性:
•時間靈活性:想什么時候要就什么時候要,需要的時候一點就出來了;
•空間靈活性:想要多少就有多少。需要一個太很小的電腦,可以滿足;需要一個特別大的空間例如云盤,云盤給每個人分配的空間動不動就很大很大,隨時上傳隨時有空間,永遠用不完,也是可以滿足的。
空間靈活性和時間靈活性,即我們常說的云計算的彈性。而解決這個彈性的問題,經(jīng)歷了漫長時間的發(fā)展。
3. 物理設(shè)備不靈活
第一個階段是物理設(shè)備時期。這個時期客戶需要一臺電腦,我們就買一臺放在數(shù)據(jù)中心里。
物理設(shè)備當(dāng)然是越來越牛,例如服務(wù)器,內(nèi)存動不動就是百G內(nèi)存;例如網(wǎng)絡(luò)設(shè)備,一個端口的帶寬就能有幾十G甚至上百G;例如存儲,在數(shù)據(jù)中心至少是PB級別的(一個P是1000個T,一個T是1000個G)。
然而物理設(shè)備不能做到很好的靈活性:
•首先是它缺乏時間靈活性。不能夠達到想什么時候要就什么時候要。比如買臺服務(wù)器、買個電腦,都要有采購的時間。如果突然用戶告訴某個云廠商,說想要開臺電腦,使用物理服務(wù)器,當(dāng)時去采購就很難。與供應(yīng)商關(guān)系好的可能需要一個星期,與供應(yīng)商關(guān)系一般的就可能需要采購一個月。用戶等了很久電腦才到位,這時用戶還要登錄上去慢慢開始部署自己的應(yīng)用。時間靈活性非常差。
•其次是它的空間靈活性也不行。例如上述的用戶需要一個很小很小的電腦,但現(xiàn)在哪還有這么小型號的電腦?不能為了滿足用戶只要一個G的內(nèi)存是80G硬盤的,就去買一個這么小的機器。但是如果買一個大的,又會因為電腦大,需要向用戶多收錢,可用戶需要用的只有那么小一點,所以多付錢就很冤。
4. 虛擬化靈活多了
有人就想辦法了。第一個辦法就是虛擬化。用戶不是只要一個很小的電腦么?數(shù)據(jù)中心的物理設(shè)備都很強大,我可以從物理的CPU、內(nèi)存、硬盤中虛擬出一小塊來給客戶,同時也可以虛擬出一小塊來給其他客戶。每個客戶只能看到自己的那一小塊,但其實每個客戶用的是整個大的設(shè)備上的一小塊。
虛擬化的技術(shù)使得不同客戶的電腦看起來是隔離的。也就是我看著好像這塊盤就是我的,你看著這塊盤就是你的,但實際情況可能我的這個10G和你的這個10G是落在同樣一個很大很大的存儲上。而且如果事先物理設(shè)備都準備好,虛擬化軟件虛擬出一個電腦是非?斓,基本上幾分鐘就能解決。所以在任何一個云上要創(chuàng)建一臺電腦,一點幾分鐘就出來了,就是這個道理。
這樣空間靈活性和時間靈活性就基本解決了。
5. 虛擬世界的賺錢與情懷
在虛擬化階段,最牛的公司是VMware。它是實現(xiàn)虛擬化技術(shù)比較早的一家公司,可以實現(xiàn)計算、網(wǎng)絡(luò)、存儲的虛擬化。這家公司很牛,性能做得非常好,虛擬化軟件賣得也非常好,賺了好多的錢,后來讓EMC(世界五百強,存儲廠商第一品牌)給收購了。
但這個世界上還是有很多有情懷的人的,尤其是程序員里面。有情懷的人喜歡做什么事情?開源。
這個世界上很多軟件都是有閉源就有開源,源就是源代碼。也就是說,某個軟件做的好,所有人都愛用,但這個軟件的代碼被我封閉起來,只有我公司知道,其他人不知道。如果其他人想用這個軟件,就要向我付錢,這就叫閉源。
但世界上總有一些大牛看不慣錢都讓一家賺了去的情況。大牛們覺得,這個技術(shù)你會我也會;你能開發(fā)出來,我也能。我開發(fā)出來就是不收錢,把代碼拿出來分享給大家,全世界誰用都可以,所有的人都可以享受到好處,這個叫做開源。
比如最近的蒂姆·伯納斯·李就是個非常有情懷的人。2017年,他因“發(fā)明萬維網(wǎng)、第一個瀏覽器和使萬維網(wǎng)得以擴展的基本協(xié)議和算法”而獲得2016年度的圖靈獎。圖靈獎就是計算機界的諾貝爾獎。然而他最令人敬佩的是,他將萬維網(wǎng),也就是我們常見的WWW技術(shù)無償貢獻給全世界免費使用。我們現(xiàn)在在網(wǎng)上的所有行為都應(yīng)該感謝他的功勞,如果他將這個技術(shù)拿來收錢,應(yīng)該和比爾蓋茨差不多有錢。
開源和閉源的例子有很多:
例如在閉源的世界里有Windows,大家用Windows都得給微軟付錢;開源的世界里面就出現(xiàn)了Linux。比爾蓋茨靠Windows、Office這些閉源的軟件賺了很多錢,稱為世界首富,就有大牛開發(fā)了另外一種操作系統(tǒng)Linux。很多人可能沒有聽說過Linux,很多后臺的服務(wù)器上跑的程序都是Linux上的,比如大家享受雙十一,無論是淘寶、京東、考拉……支撐雙十一搶購的系統(tǒng)都是跑在Linux上的。
再如有Apple就有安卓。Apple市值很高,但是蘋果系統(tǒng)的代碼我們是看不到的。于是就有大牛寫了安卓手機操作系統(tǒng)。所以大家可以看到幾乎所有的其他手機廠商,里面都裝安卓系統(tǒng)。原因就是蘋果系統(tǒng)不開源,而安卓系統(tǒng)大家都可以用。
在虛擬化軟件也一樣,有了VMware,這個軟件非常貴。那就有大牛寫了兩個開源的虛擬化軟件,一個叫做Xen,一個叫做KVM,如果不做技術(shù)的,可以不用管這兩個名字,但是后面還是會提到。
6. 虛擬化的半自動和云計算的全自動
要說虛擬化軟件解決了靈活性問題,其實并不全對。因為虛擬化軟件一般創(chuàng)建一臺虛擬的電腦,是需要人工指定這臺虛擬電腦放在哪臺物理機上的。這一過程可能還需要比較復(fù)雜的人工配置。所以使用VMware的虛擬化軟件,需要考一個很牛的證書,而能拿到這個證書的人,薪資是相當(dāng)高,也可見復(fù)雜程度。
所以僅僅憑虛擬化軟件所能管理的物理機的集群規(guī)模都不是特別大,一般在十幾臺、幾十臺、最多百臺這么一個規(guī)模。
這一方面會影響時間靈活性:雖然虛擬出一臺電腦的時間很短,但是隨著集群規(guī)模的擴大,人工配置的過程越來越復(fù)雜,越來越耗時。另一方面也影響空間靈活性:當(dāng)用戶數(shù)量多時,這點集群規(guī)模,還遠達不到想要多少要多少的程度,很可能這點資源很快就用完了,還得去采購。
所以隨著集群的規(guī)模越來越大,基本都是千臺起步,動輒上萬臺、甚至幾十上百萬臺。如果去查一下BAT,包括網(wǎng)易、谷歌、亞馬遜,服務(wù)器數(shù)目都大的嚇人。這么多機器要靠人去選一個位置放這臺虛擬化的電腦并做相應(yīng)的配置,幾乎是不可能的事情,還是需要機器去做這個事情。
人們發(fā)明了各種各樣的算法來做這個事情,算法的名字叫做調(diào)度(Scheduler)。通俗一點說,就是有一個調(diào)度中心,幾千臺機器都在一個池子里面,無論用戶需要多少CPU、內(nèi)存、硬盤的虛擬電腦,調(diào)度中心會自動在大池子里面找一個能夠滿足用戶需求的地方,把虛擬電腦啟動起來做好配置,用戶就直接能用了。這個階段我們稱為池化或者云化。到了這個階段,才可以稱為云計算,在這之前都只能叫虛擬化。
7. 云計算的私有與公有
云計算大致分兩種:一個是私有云,一個是公有云,還有人把私有云和公有云連接起來稱為混合云,這里暫且不說這個。
•私有云:把虛擬化和云化的這套軟件部署在別人的數(shù)據(jù)中心里面。使用私有云的用戶往往很有錢,自己買地建機房、自己買服務(wù)器,然后讓云廠商部署在自己這里。VMware后來除了虛擬化,也推出了云計算的產(chǎn)品,并且在私有云市場賺的盆滿缽滿。
•公有云:把虛擬化和云化軟件部署在云廠商自己數(shù)據(jù)中心里面的,用戶不需要很大的投入,只要注冊一個賬號,就能在一個網(wǎng)頁上點一下創(chuàng)建一臺虛擬電腦。例如AWS即亞馬遜的公有云;例如國內(nèi)的阿里云、騰訊云、網(wǎng)易云等。
亞馬遜為什么要做公有云呢?我們知道亞馬遜原來是國外比較大的一個電商,它做電商時也肯定會遇到類似雙十一的場景:在某一個時刻大家都沖上來買東西。當(dāng)大家都沖上買東西時,就特別需要云的時間靈活性和空間靈活性。因為它不能時刻準備好所有的資源,那樣太浪費了。但也不能什么都不準備,看著雙十一這么多用戶想買東西登不上去。所以需要雙十一時,就創(chuàng)建一大批虛擬電腦來支撐電商應(yīng)用,過了雙十一再把這些資源都釋放掉去干別的。因此亞馬遜是需要一個云平臺的。
然而商用的虛擬化軟件實在是太貴了,亞馬遜總不能把自己在電商賺的錢全部給了虛擬化廠商。于是亞馬遜基于開源的虛擬化技術(shù),如上所述的Xen或者KVM,開發(fā)了一套自己的云化軟件。沒想到亞馬遜后來電商越做越牛,云平臺也越做越牛。
由于它的云平臺需要支撐自己的電商應(yīng)用;而傳統(tǒng)的云計算廠商多為IT廠商出身,幾乎沒有自己的應(yīng)用,所以亞馬遜的云平臺對應(yīng)用更加友好,迅速發(fā)展成為云計算的第一品牌,賺了很多錢。
在亞馬遜公布其云計算平臺財報之前,人們都猜測,亞馬遜電商賺錢,云也賺錢嗎?后來一公布財報,發(fā)現(xiàn)不是一般的賺錢。僅僅去年,亞馬遜AWS年營收達122億美元,運營利潤31億美元。
8. 云計算的賺錢與情懷
公有云的第一名亞馬遜過得很爽,第二名Rackspace過得就一般了。沒辦法,這就是互聯(lián)網(wǎng)行業(yè)的殘酷性,多是贏者通吃的模式。所以第二名如果不是云計算行業(yè)的,很多人可能都沒聽過了。
第二名就想,我干不過老大怎么辦呢?開源吧。如上所述,亞馬遜雖然使用了開源的虛擬化技術(shù),但云化的代碼是閉源的。很多想做又做不了云化平臺的公司,只能眼巴巴的看著亞馬遜掙大錢。Rackspace把源代碼一公開,整個行業(yè)就可以一起把這個平臺越做越好,兄弟們大家一起上,和老大拼了。
于是Rackspace和美國航空航天局合作創(chuàng)辦了開源軟件OpenStack,如上圖所示OpenStack的架構(gòu)圖,不是云計算行業(yè)的不用弄懂這個圖,但能夠看到三個關(guān)鍵字:Compute計算、Networking網(wǎng)絡(luò)、Storage存儲。還是一個計算、網(wǎng)絡(luò)、存儲的云化管理平臺。
當(dāng)然第二名的技術(shù)也是非常棒的,有了OpenStack之后,果真像Rackspace想的一樣,所有想做云的大企業(yè)都瘋了,你能想象到的所有如雷貫耳的大型IT企業(yè):IBM、惠普、戴爾、華為、聯(lián)想等都瘋了。
原來云平臺大家都想做,看著亞馬遜和VMware賺了這么多錢,眼巴巴看著沒辦法,想自己做一個好像難度還挺大,F(xiàn)在好了,有了這樣一個開源的云平臺OpenStack,所有的IT廠商都加入到這個社區(qū)中來,對這個云平臺進行貢獻,包裝成自己的產(chǎn)品,連同自己的硬件設(shè)備一起賣。有的做了私有云,有的做了公有云,OpenStack已經(jīng)成為開源云平臺的事實標準。
9 . IaaS, 資源層面的靈活性
隨著OpenStack的技術(shù)越來越成熟,可以管理的規(guī)模也越來越大,并且可以有多個OpenStack集群部署多套。比如北京部署一套、杭州部署兩套、廣州部署一套,然后進行統(tǒng)一的管理。這樣整個規(guī)模就更大了。
在這個規(guī)模下,對于普通用戶的感知來講,基本能夠做到想什么時候要就什么什么要,想要多少就要多少。還是拿云盤舉例子,每個用戶云盤都分配了5T甚至更大的空間,如果有1億人,那加起來空間多大啊。
其實背后的機制是這樣的:分配你的空間,你可能只用了其中很少一點,比如說它分配給你了5個T,這么大的空間僅僅是你看到的,而不是真的就給你了,你其實只用了50個G,則真實給你的就是50個G,隨著你文件的不斷上傳,分給你的空間會越來越多。
當(dāng)大家都上傳,云平臺發(fā)現(xiàn)快滿了的時候(例如用了70%),會采購更多的服務(wù)器,擴充背后的資源,這個對用戶是透明的、看不到的。從感覺上來講,就實現(xiàn)了云計算的彈性。其實有點像銀行,給儲戶的感覺是什么時候取錢都有,只要不同時擠兌,銀行就不會垮。
10. 總結(jié)
到了這個階段,云計算基本上實現(xiàn)了時間靈活性和空間靈活性;實現(xiàn)了計算、網(wǎng)絡(luò)、存儲資源的彈性。計算、網(wǎng)絡(luò)、存儲我們常稱為基礎(chǔ)設(shè)施Infranstracture, 因而這個階段的彈性稱為資源層面的彈性。管理資源的云平臺,我們稱為基礎(chǔ)設(shè)施服務(wù),也就是我們常聽到的IaaS(Infranstracture As A Service)。
二、云計算不光管資源,也要管應(yīng)用
有了IaaS,實現(xiàn)了資源層面的彈性就夠了嗎?顯然不是,還有應(yīng)用層面的彈性。
這里舉個例子:比如說實現(xiàn)一個電商的應(yīng)用,平時十臺機器就夠了,雙十一需要一百臺。你可能覺得很好辦啊,有了IaaS,新創(chuàng)建九十臺機器就可以了啊。但90臺機器創(chuàng)建出來是空的,電商應(yīng)用并沒有放上去,只能讓公司的運維人員一臺一臺的弄,需要很長時間才能安裝好的。
雖然資源層面實現(xiàn)了彈性,但沒有應(yīng)用層的彈性,依然靈活性是不夠的。有沒有方法解決這個問題呢?
人們在IaaS平臺之上又加了一層,用于管理資源以上的應(yīng)用彈性的問題,這一層通常稱為PaaS(Platform As A Service)。這一層往往比較難理解,大致分兩部分:一部分筆者稱為“你自己的應(yīng)用自動安裝”,一部分筆者稱為“通用的應(yīng)用不用安裝”。
•自己的應(yīng)用自動安裝:比如電商應(yīng)用是你自己開發(fā)的,除了你自己,其他人是不知道怎么安裝的。像電商應(yīng)用,安裝時需要配置支付寶或者微信的賬號,才能使別人在你的電商上買東西時,付的錢是打到你的賬戶里面的,除了你,誰也不知道。所以安裝的過程平臺幫不了忙,但能夠幫你做得自動化,你需要做一些工作,將自己的配置信息融入到自動化的安裝過程中方可。比如上面的例子,雙十一新創(chuàng)建出來的90臺機器是空的,如果能夠提供一個工具,能夠自動在這新的90臺機器上將電商應(yīng)用安裝好,就能夠?qū)崿F(xiàn)應(yīng)用層面的真正彈性。例如Puppet、Chef、Ansible、Cloud Foundary都可以干這件事情,最新的容器技術(shù)Docker能更好的干這件事情。
•通用的應(yīng)用不用安裝:所謂通用的應(yīng)用,一般指一些復(fù)雜性比較高,但大家都在用的,例如數(shù)據(jù)庫。幾乎所有的應(yīng)用都會用數(shù)據(jù)庫,但數(shù)據(jù)庫軟件是標準的,雖然安裝和維護比較復(fù)雜,但無論誰安裝都是一樣。這樣的應(yīng)用可以變成標準的PaaS層的應(yīng)用放在云平臺的界面上。當(dāng)用戶需要一個數(shù)據(jù)庫時,一點就出來了,用戶就可以直接用了。有人問,既然誰安裝都一個樣,那我自己來好了,不需要花錢在云平臺上買。當(dāng)然不是,數(shù)據(jù)庫是一個非常難的東西,光Oracle這家公司,靠數(shù)據(jù)庫就能賺這么多錢。買Oracle也是要花很多錢的。
然而大多數(shù)云平臺會提供MySQL這樣的開源數(shù)據(jù)庫,又是開源,錢不需要花這么多了。但維護這個數(shù)據(jù)庫,卻需要專門招一個很大的團隊,如果這個數(shù)據(jù)庫能夠優(yōu)化到能夠支撐雙十一,也不是一年兩年能夠搞定的。
比如您是一個做單車的,當(dāng)然沒必要招一個非常大的數(shù)據(jù)庫團隊來干這件事情,成本太高了,應(yīng)該交給云平臺來做這件事情,專業(yè)的事情專業(yè)的人來做,云平臺專門養(yǎng)了幾百人維護這套系統(tǒng),您只要專注于您的單車應(yīng)用就可以了。
要么是自動部署,要么是不用部署,總的來說就是應(yīng)用層你也要少操心,這就是PaaS層的重要作用。
雖說腳本的方式能夠解決自己的應(yīng)用的部署問題,然而不同的環(huán)境千差萬別,一個腳本往往在一個環(huán)境上運行正確,到另一個環(huán)境就不正確了。
而容器是能更好地解決這個問題。
容器是 Container,Container另一個意思是集裝箱,其實容器的思想就是要變成軟件交付的集裝箱。集裝箱的特點:一是封裝,二是標準。
在沒有集裝箱的時代,假設(shè)將貨物從 A運到 B,中間要經(jīng)過三個碼頭、換三次船。每次都要將貨物卸下船來,擺得七零八落,然后搬上船重新整齊擺好。因此在沒有集裝箱時,每次換船,船員們都要在岸上待幾天才能走。
有了集裝箱以后,所有的貨物都打包在一起了,并且集裝箱的尺寸全部一致,所以每次換船時,一個箱子整體搬過去就行了,小時級別就能完成,船員再也不用上岸長時間耽擱了。
這是集裝箱“封裝”、“標準”兩大特點在生活中的應(yīng)用。
那么容器如何對應(yīng)用打包呢?還是要學(xué)習(xí)集裝箱。首先要有個封閉的環(huán)境,將貨物封裝起來,讓貨物之間互不干擾、互相隔離,這樣裝貨卸貨才方便。好在 Ubuntu中的LXC技術(shù)早就能做到這一點。
封閉的環(huán)境主要使用了兩種技術(shù),一種是看起來是隔離的技術(shù),稱為 Namespace,也即每個 Namespace中的應(yīng)用看到的是不同的 IP地址、用戶空間、程號等。另一種是用起來是隔離的技術(shù),稱為 Cgroups,也即明明整臺機器有很多的 CPU、內(nèi)存,而一個應(yīng)用只能用其中的一部分。
所謂的鏡像,就是將你焊好集裝箱的那一刻,將集裝箱的狀態(tài)保存下來,就像孫悟空說:“定”,集裝箱里面就定在了那一刻,然后將這一刻的狀態(tài)保存成一系列文件。這些文件的格式是標準的,誰看到這些文件都能還原當(dāng)時定住的那個時刻。將鏡像還原成運行時的過程(就是讀取鏡像文件,還原那個時刻的過程)就是容器運行的過程。
有了容器,使得 PaaS層對于用戶自身應(yīng)用的自動部署變得快速而優(yōu)雅。
三、大數(shù)據(jù)擁抱云計算
在PaaS層中一個復(fù)雜的通用應(yīng)用就是大數(shù)據(jù)平臺。大數(shù)據(jù)是如何一步一步融入云計算的呢?
1. 數(shù)據(jù)不大也包含智慧
一開始這個大數(shù)據(jù)并不大。原來才有多少數(shù)據(jù)?現(xiàn)在大家都去看電子書,上網(wǎng)看新聞了,在我們80后小時候,信息量沒有那么大,也就看看書、看看報,一個星期的報紙加起來才有多少字?如果你不在一個大城市,一個普通的學(xué)校的圖書館加起來也沒幾個書架,是后來隨著信息化的到來,信息才會越來越多。
首先我們來看一下大數(shù)據(jù)里面的數(shù)據(jù),就分三種類型,一種叫結(jié)構(gòu)化的數(shù)據(jù),一種叫非結(jié)構(gòu)化的數(shù)據(jù),還有一種叫半結(jié)構(gòu)化的數(shù)據(jù)。
•結(jié)構(gòu)化的數(shù)據(jù):即有固定格式和有限長度的數(shù)據(jù)。例如填的表格就是結(jié)構(gòu)化的數(shù)據(jù),國籍:中華人民共和國,民族:漢,性別:男,這都叫結(jié)構(gòu)化數(shù)據(jù)。
•非結(jié)構(gòu)化的數(shù)據(jù):現(xiàn)在非結(jié)構(gòu)化的數(shù)據(jù)越來越多,就是不定長、無固定格式的數(shù)據(jù),例如網(wǎng)頁,有時候非常長,有時候幾句話就沒了;例如語音,視頻都是非結(jié)構(gòu)化的數(shù)據(jù)。
•半結(jié)構(gòu)化數(shù)據(jù):是一些XML或者HTML的格式的,不從事技術(shù)的可能不了解,但也沒有關(guān)系。
其實數(shù)據(jù)本身不是有用的,必須要經(jīng)過一定的處理。例如你每天跑步帶個手環(huán)收集的也是數(shù)據(jù),網(wǎng)上這么多網(wǎng)頁也是數(shù)據(jù),我們稱為Data。數(shù)據(jù)本身沒有什么用處,但數(shù)據(jù)里面包含一個很重要的東西,叫做信息(Information)。
數(shù)據(jù)十分雜亂,經(jīng)過梳理和清洗,才能夠稱為信息。信息會包含很多規(guī)律,我們需要從信息中將規(guī)律總結(jié)出來,稱為知識(Knowledge),而知識改變命運。信息是很多的,但有人看到了信息相當(dāng)于白看,但有人就從信息中看到了電商的未來,有人看到了直播的未來,所以人家就牛了。如果你沒有從信息中提取出知識,天天看朋友圈也只能在互聯(lián)網(wǎng)滾滾大潮中做個看客。
有了知識,然后利用這些知識去應(yīng)用于實戰(zhàn),有的人會做得非常好,這個東西叫做智慧(Intelligence)。有知識并不一定有智慧,例如好多學(xué)者很有知識,已經(jīng)發(fā)生的事情可以從各個角度分析得頭頭是道,但一到實干就歇菜,并不能轉(zhuǎn)化成為智慧。而很多的創(chuàng)業(yè)家之所以偉大,就是通過獲得的知識應(yīng)用于實踐,最后做了很大的生意。
所以數(shù)據(jù)的應(yīng)用分這四個步驟:數(shù)據(jù)、信息、知識、智慧。
最終的階段是很多商家都想要的。你看我收集了這么多的數(shù)據(jù),能不能基于這些數(shù)據(jù)來幫我做下一步的決策,改善我的產(chǎn)品。例如讓用戶看視頻的時候旁邊彈出廣告,正好是他想買的東西;再如讓用戶聽音樂時,另外推薦一些他非常想聽的其他音樂。
用戶在我的應(yīng)用或者網(wǎng)站上隨便點點鼠標,輸入文字對我來說都是數(shù)據(jù),我就是要將其中某些東西提取出來、指導(dǎo)實踐、形成智慧,讓用戶陷入到我的應(yīng)用里面不可自拔,上了我的網(wǎng)就不想離開,手不停地點、不停地買。
很多人說雙十一我都想斷網(wǎng)了,我老婆在上面不斷地買買買,買了A又推薦B,老婆大人說,“哎呀,B也是我喜歡的啊,老公我要買”。你說這個程序怎么這么牛,這么有智慧,比我還了解我老婆,這件事情是怎么做到的呢?
2. 數(shù)據(jù)如何升華為智慧
數(shù)據(jù)的處理分幾個步驟,完成了才最后會有智慧。
第一個步驟叫數(shù)據(jù)的收集。首先得有數(shù)據(jù),數(shù)據(jù)的收集有兩個方式:
•第一個方式是拿,專業(yè)點的說法叫抓取或者爬取。例如搜索引擎就是這么做的:它把網(wǎng)上的所有的信息都下載到它的數(shù)據(jù)中心,然后你一搜才能搜出來。比如你去搜索的時候,結(jié)果會是一個列表,這個列表為什么會在搜索引擎的公司里面?就是因為他把數(shù)據(jù)都拿下來了,但是你一點鏈接,點出來這個網(wǎng)站就不在搜索引擎它們公司了。比如說新浪有個新聞,你拿百度搜出來,你不點的時候,那一頁在百度數(shù)據(jù)中心,一點出來的網(wǎng)頁就是在新浪的數(shù)據(jù)中心了。
•第二個方式是推送,有很多終端可以幫我收集數(shù)據(jù)。比如說小米手環(huán),可以將你每天跑步的數(shù)據(jù),心跳的數(shù)據(jù),睡眠的數(shù)據(jù)都上傳到數(shù)據(jù)中心里面。
第二個步驟是數(shù)據(jù)的傳輸。一般會通過隊列方式進行,因為數(shù)據(jù)量實在是太大了,數(shù)據(jù)必須經(jīng)過處理才會有用?上到y(tǒng)處理不過來,只好排好隊,慢慢處理。
第三個步驟是數(shù)據(jù)的存儲,F(xiàn)在數(shù)據(jù)就是金錢,掌握了數(shù)據(jù)就相當(dāng)于掌握了錢。要不然網(wǎng)站怎么知道你想買什么?就是因為它有你歷史的交易的數(shù)據(jù),這個信息可不能給別人,十分寶貴,所以需要存儲下來。
第四個步驟是數(shù)據(jù)的處理和分析。上面存儲的數(shù)據(jù)是原始數(shù)據(jù),原始數(shù)據(jù)多是雜亂無章的,有很多垃圾數(shù)據(jù)在里面,因而需要清洗和過濾,得到一些高質(zhì)量的數(shù)據(jù)。對于高質(zhì)量的數(shù)據(jù),就可以進行分析,從而對數(shù)據(jù)進行分類,或者發(fā)現(xiàn)數(shù)據(jù)之間的相互關(guān)系,得到知識。
比如盛傳的沃爾瑪超市的啤酒和尿布的故事,就是通過對人們的購買數(shù)據(jù)進行分析,發(fā)現(xiàn)了男人一般買尿布的時候,會同時購買啤酒,這樣就發(fā)現(xiàn)了啤酒和尿布之間的相互關(guān)系,獲得知識,然后應(yīng)用到實踐中,將啤酒和尿布的柜臺弄的很近,就獲得了智慧。
第五個步驟是對于數(shù)據(jù)的檢索和挖掘。檢索就是搜索,所謂外事不決問Google,內(nèi)事不決問百度。內(nèi)外兩大搜索引擎都是將分析后的數(shù)據(jù)放入搜索引擎,因此人們想尋找信息的時候,一搜就有了。
另外就是挖掘,僅僅搜索出來已經(jīng)不能滿足人們的要求了,還需要從信息中挖掘出相互的關(guān)系。比如財經(jīng)搜索,當(dāng)搜索某個公司股票的時候,該公司的高管是不是也應(yīng)該被挖掘出來呢?如果僅僅搜索出這個公司的股票發(fā)現(xiàn)漲的特別好,于是你就去買了,其實其高管發(fā)了一個聲明,對股票十分不利,第二天就跌了,這不坑害廣大股民么?所以通過各種算法挖掘數(shù)據(jù)中的關(guān)系,形成知識庫,十分重要。
3. 大數(shù)據(jù)時代,眾人拾柴火焰高
當(dāng)數(shù)據(jù)量很小時,很少的幾臺機器就能解決。慢慢的,當(dāng)數(shù)據(jù)量越來越大,最牛的服務(wù)器都解決不了問題時,怎么辦呢?這時就要聚合多臺機器的力量,大家齊心協(xié)力一起把這個事搞定,眾人拾柴火焰高。
對于數(shù)據(jù)的收集:就IoT來講,外面部署這成千上萬的檢測設(shè)備,將大量的溫度、濕度、監(jiān)控、電力等數(shù)據(jù)統(tǒng)統(tǒng)收集上來;就互聯(lián)網(wǎng)網(wǎng)頁的搜索引擎來講,需要將整個互聯(lián)網(wǎng)所有的網(wǎng)頁都下載下來。這顯然一臺機器做不到,需要多臺機器組成網(wǎng)絡(luò)爬蟲系統(tǒng),每臺機器下載一部分,同時工作,才能在有限的時間內(nèi),將海量的網(wǎng)頁下載完畢。
對于數(shù)據(jù)的傳輸:一個內(nèi)存里面的隊列肯定會被大量的數(shù)據(jù)擠爆掉,于是就產(chǎn)生了基于硬盤的分布式隊列,這樣隊列可以多臺機器同時傳輸,隨你數(shù)據(jù)量多大,只要我的隊列足夠多,管道足夠粗,就能夠撐得住。
對于數(shù)據(jù)的存儲:一臺機器的文件系統(tǒng)肯定是放不下的,所以需要一個很大的分布式文件系統(tǒng)來做這件事情,把多臺機器的硬盤打成一塊大的文件系統(tǒng)。
對于數(shù)據(jù)的分析:可能需要對大量的數(shù)據(jù)做分解、統(tǒng)計、匯總,一臺機器肯定搞不定,處理到猴年馬月也分析不完。于是就有分布式計算的方法,將大量的數(shù)據(jù)分成小份,每臺機器處理一小份,多臺機器并行處理,很快就能算完。例如著名的Terasort對1個TB的數(shù)據(jù)排序,相當(dāng)于1000G,如果單機處理,怎么也要幾個小時,但并行處理209秒就完成了。
所以說什么叫做大數(shù)據(jù)?說白了就是一臺機器干不完,大家一起干。可是隨著數(shù)據(jù)量越來越大,很多不大的公司都需要處理相當(dāng)多的數(shù)據(jù),這些小公司沒有這么多機器可怎么辦呢?
4. 大數(shù)據(jù)需要云計算,云計算需要大數(shù)據(jù)
說到這里,大家想起云計算了吧。當(dāng)想要干這些活時,需要很多的機器一塊做,真的是想什么時候要就什么時候要,想要多少就要多少。
例如大數(shù)據(jù)分析公司的財務(wù)情況,可能一周分析一次,如果要把這一百臺機器或者一千臺機器都在那放著,一周用一次非常浪費。那能不能需要計算的時候,把這一千臺機器拿出來;不算的時候,讓這一千臺機器去干別的事情?
誰能做這個事兒呢?只有云計算,可以為大數(shù)據(jù)的運算提供資源層的靈活性。而云計算也會部署大數(shù)據(jù)放到它的PaaS平臺上,作為一個非常非常重要的通用應(yīng)用。因為大數(shù)據(jù)平臺能夠使得多臺機器一起干一個事兒,這個東西不是一般人能開發(fā)出來的,也不是一般人玩得轉(zhuǎn)的,怎么也得雇個幾十上百號人才能把這個玩起來。
所以說就像數(shù)據(jù)庫一樣,其實還是需要有一幫專業(yè)的人來玩這個東西,F(xiàn)在公有云上基本上都會有大數(shù)據(jù)的解決方案了,一個小公司需要大數(shù)據(jù)平臺的時候,不需要采購一千臺機器,只要到公有云上一點,這一千臺機器都出來了,并且上面已經(jīng)部署好了的大數(shù)據(jù)平臺,只要把數(shù)據(jù)放進去算就可以了。
云計算需要大數(shù)據(jù),大數(shù)據(jù)需要云計算,二者就這樣結(jié)合了。
四、人工智能擁抱大數(shù)據(jù)
雖說有了大數(shù)據(jù),人的欲望卻不能夠滿足。雖說在大數(shù)據(jù)平臺里面有搜索引擎這個東西,想要什么東西一搜就出來了。但也存在這樣的情況:我想要的東西不會搜,表達不出來,搜索出來的又不是我想要的。
例如音樂軟件推薦了一首歌,這首歌我沒聽過,當(dāng)然不知道名字,也沒法搜。但是軟件推薦給我,我的確喜歡,這就是搜索做不到的事情。當(dāng)人們使用這種應(yīng)用時,會發(fā)現(xiàn)機器知道我想要什么,而不是說當(dāng)我想要時,去機器里面搜索。這個機器真像我的朋友一樣懂我,這就有點人工智能的意思了。
人們很早就在想這個事情了。最早的時候,人們想象,要是有一堵墻,墻后面是個機器,我給它說話,它就給我回應(yīng)。如果我感覺不出它那邊是人還是機器,那它就真的是一個人工智能的東西了。
五、基于三者關(guān)系的美好生活
終于云計算的三兄弟湊齊了,分別是IaaS、PaaS和SaaS。所以一般在一個云計算平臺上,云、大數(shù)據(jù)、人工智能都能找得到。一個大數(shù)據(jù)公司,積累了大量的數(shù)據(jù),會使用一些人工智能的算法提供一些服務(wù);一個人工智能公司,也不可能沒有大數(shù)據(jù)平臺支撐。
所以,當(dāng)云計算、大數(shù)據(jù)、人工智能這樣整合起來,便完成了相遇、相識、相知的過程。
本文內(nèi)容整理來源與網(wǎng)絡(luò),只為分享,致力推動河南互聯(lián)網(wǎng)IT產(chǎn)業(yè),振興河南IT行業(yè),這是我們的夢想!