今天要講這三個(gè)話題,一個(gè)是云計(jì)算,一個(gè)大數(shù)據(jù),一個(gè)人工智能,我為什么要講這三個(gè)東西呢?因?yàn)檫@三個(gè)東西現(xiàn)在非常非常的火,它們之間好像互相有關(guān)系,一般談云計(jì)算的時(shí)候也會(huì)提到大數(shù)據(jù),談人工智能的時(shí)候也會(huì)提大數(shù)據(jù),談人工智能的時(shí)候也會(huì)提云計(jì)算。所以說感覺他們又相輔相成不可分割,如果是非技術(shù)的人員來講可能比較難理解說這三個(gè)之間的相互關(guān)系,所以有必要解釋一下。
一、云計(jì)算最初是實(shí)現(xiàn)資源管理的靈活性
我們首先來說云計(jì)算,云計(jì)算最初的目標(biāo)是對(duì)資源的管理,管理的主要是計(jì)算資源,網(wǎng)絡(luò)資源,存儲(chǔ)資源三個(gè)方面。
1.1 管數(shù)據(jù)中心就像配電腦
什么叫計(jì)算,網(wǎng)絡(luò),存儲(chǔ)資源呢?就說你要買臺(tái)筆記本電腦吧,你是不是要關(guān)心這臺(tái)電腦什么樣的CPU???多大的內(nèi)存?。窟@兩個(gè)我們稱為計(jì)算資源。
這臺(tái)電腦要能上網(wǎng)吧,需要有個(gè)網(wǎng)口可以插網(wǎng)線,或者有無線網(wǎng)卡可以連接我們家的路由器,您家也需要到運(yùn)營(yíng)商比如聯(lián)通,移動(dòng),電信開通一個(gè)網(wǎng)絡(luò),比如100M的帶寬,然后會(huì)有師傅弄一根網(wǎng)線到您家來,師傅可能會(huì)幫您將您的路由器和他們公司的網(wǎng)絡(luò)連接配置好,這樣您家的所有的電腦,手機(jī),平板就都可以通過您的路由器上網(wǎng)了。這就是網(wǎng)絡(luò)。
您可能還會(huì)問硬盤多大???原來硬盤都很小,10G之類的,后來500G,1T,2T的硬盤也不新鮮了。(1T是1000G),這就是存儲(chǔ)。
對(duì)于一臺(tái)電腦是這個(gè)樣子的,對(duì)于一個(gè)數(shù)據(jù)中心也是同樣的。想象你有一個(gè)非常非常大的機(jī)房,里面堆了很多的服務(wù)器,這些服務(wù)器也是有CPU,內(nèi)存,硬盤的,也是通過類似路由器的設(shè)備上網(wǎng)的。這個(gè)時(shí)候的一個(gè)問題就是,運(yùn)營(yíng)數(shù)據(jù)中心的人是怎么把這些設(shè)備統(tǒng)一的管理起來的呢?
1.2 靈活就是想啥時(shí)要都有,想要多少都行
管理的目標(biāo)就是要達(dá)到兩個(gè)方面的靈活性。哪兩個(gè)方面呢?比如有個(gè)人需要一臺(tái)很小很小的電腦,只有一個(gè)CPU,1G內(nèi)存,10G的硬盤,一兆的帶寬,你能給他嗎?像這種這么小規(guī)格的電腦,現(xiàn)在隨便一個(gè)筆記本電腦都比這個(gè)配置強(qiáng)了,家里隨便拉一個(gè)寬帶都要100M。然而如果去一個(gè)云計(jì)算的平臺(tái)上,他要想要這個(gè)資源的時(shí)候,只要一點(diǎn)就有了。
所以說它就能達(dá)到兩個(gè)方面靈活性。
第一個(gè)方面就是想什么時(shí)候要就什么時(shí)候要,比如需要的時(shí)候一點(diǎn)就出來了,這個(gè)叫做時(shí)間靈活性。
第二個(gè)方面就是想要多少呢就有多少,比如需要一個(gè)很小很小的電腦,可以滿足,比如需要一個(gè)特別大的空間,以云盤為例,似乎云盤給每個(gè)人分配的空間動(dòng)不動(dòng)就就很大很大,隨時(shí)上傳隨時(shí)有空間,永遠(yuǎn)用不完,這個(gè)叫做空間靈活性。
空間靈活性和時(shí)間靈活性,也即我們常說的云計(jì)算的彈性。
為了解決這個(gè)彈性的問題,經(jīng)歷了漫長(zhǎng)時(shí)間的發(fā)展。
1.3 物理設(shè)備不靈活
首先第一個(gè)階段就是物理機(jī),或者說物理設(shè)備時(shí)期。這個(gè)時(shí)期相當(dāng)于客戶需要一臺(tái)電腦,我們就買一臺(tái)放在數(shù)據(jù)中心里。物理設(shè)備當(dāng)然是越來越牛,例如服務(wù)器,內(nèi)存動(dòng)不動(dòng)就是百G內(nèi)存,例如網(wǎng)絡(luò)設(shè)備,一個(gè)端口的帶寬就能有幾十G甚至上百G,例如存儲(chǔ),在數(shù)據(jù)中心至少是PB級(jí)別的(一個(gè)P是1000個(gè)T,一個(gè)T是1000個(gè)G)。
然而物理設(shè)備不能做到很好的靈活性。首先它不能夠達(dá)到想什么時(shí)候要就什么時(shí)候要、比如買臺(tái)服務(wù)器,哪怕買個(gè)電腦,都有采購的時(shí)間。突然用戶告訴某個(gè)云廠商,說想要開臺(tái)電腦,如果使用物理服務(wù)器,當(dāng)時(shí)去采購啊就很難,如果說供應(yīng)商啊關(guān)系一般,可能采購一個(gè)月,供應(yīng)商關(guān)系好的話也需要一個(gè)星期。用戶等了一個(gè)星期后,這時(shí)候電腦才到位,用戶還要登錄上去開始慢慢部署自己的應(yīng)用,時(shí)間靈活性非常差。第二是空間靈活性也不行,例如上述的用戶,要一個(gè)很小很小的電腦,現(xiàn)在哪還有這么小型號(hào)的電腦啊。不能為了滿足用戶只要一個(gè)G的內(nèi)存是80G硬盤的,就去買一個(gè)這么小的機(jī)器。但是如果買一個(gè)大的呢,因?yàn)殡娔X大,就向用戶多收錢,用戶說他只用這么小的一點(diǎn),如果讓用戶多付錢就很冤。
1.4 虛擬化靈活多了
有人就想辦法了。第一個(gè)辦法就是虛擬化。用戶不是只要一個(gè)很小的電腦么?數(shù)據(jù)中心的物理設(shè)備都很強(qiáng)大,我可以從物理的CPU,內(nèi)存,硬盤中虛擬出一小塊來給客戶,同時(shí)也可以虛擬出一小塊來給其他客戶,每個(gè)客戶都只能看到自己虛的那一小塊,其實(shí)每個(gè)客戶用的是整個(gè)大的設(shè)備上其中的一小塊。虛擬化的技術(shù)能使得不同的客戶的電腦看起來是隔離的,我看著好像這塊盤就是我的,你看這呢這塊盤就是你的,實(shí)際情況可能我這個(gè)10G和您這個(gè)10G是落在同樣一個(gè)很大很大的這個(gè)存儲(chǔ)上的。
而且如果事先物理設(shè)備都準(zhǔn)備好,虛擬化軟件虛擬出一個(gè)電腦是非??斓?,基本上幾分鐘就能解決。所以在任何一個(gè)云上要?jiǎng)?chuàng)建一臺(tái)電腦,一點(diǎn)幾分鐘就出來了,就是這個(gè)道理。
這個(gè)空間靈活性和時(shí)間靈活性就基本解決了。
1.5 虛擬世界的賺錢與情懷
在虛擬化階段,最牛的公司是Vmware,是實(shí)現(xiàn)虛擬化技術(shù)比較早的一家公司,可以實(shí)現(xiàn)計(jì)算,網(wǎng)絡(luò),存儲(chǔ)的虛擬化,這家公司很牛,性能也做得非常好,然后虛擬化軟件賣的也非常好,賺了好多的錢,后來讓EMC(世界五百強(qiáng),存儲(chǔ)廠商第一品牌)給收購了。
但是這個(gè)世界上還是有很多有情懷的人的,尤其是程序員里面,有情懷的人喜歡做一件什么事情呢?開源。這個(gè)世界上很多軟件都是有閉源就有開源,源就是源代碼。就是說某個(gè)軟件做的好,所有人都愛用,這個(gè)軟件的代碼呢,我封閉起來只有我公司知道,其他人不知道,如果其他人想用這個(gè)軟件,就要付我錢,這就叫閉源。但是世界上總有一些大??床粦T錢都讓一家賺了去。大牛們覺得,這個(gè)技術(shù)你會(huì)我也會(huì),你能開發(fā)出來,我也能,我開發(fā)出來就是不收錢,把代碼拿出來分享給大家,全世界誰用都可以,所有的人都可以享受到好處,這個(gè)叫做開源。
比如最近蒂姆·伯納斯·李就是個(gè)非常有情懷的人,2017年,他因“發(fā)明萬維網(wǎng)、第一個(gè)瀏覽器和使萬維網(wǎng)得以擴(kuò)展的基本協(xié)議和算法”而獲得2016年度的圖靈獎(jiǎng)。圖靈獎(jiǎng)就是計(jì)算機(jī)界的諾貝爾獎(jiǎng)。然而他最令人敬佩的是,他將萬維網(wǎng),也就是我們常見的www的技術(shù)無償貢獻(xiàn)給全世界免費(fèi)使用。我們現(xiàn)在在網(wǎng)上的所有行為都應(yīng)該感謝他的功勞,如果他將這個(gè)技術(shù)拿來收錢,應(yīng)該和比爾蓋茨差不多有錢。
例如在閉源的世界里有windows,大家用windows都得給微軟付錢,開源的世界里面就出現(xiàn)了Linux。比爾蓋茨靠windows,Office這些閉源的軟件賺了很多錢,稱為世界首富,就有大牛開發(fā)了另外一種操作系統(tǒng)Linux。很多人可能沒有聽說過Linux,很多后臺(tái)的服務(wù)器上跑的程序都是Linux上的,比如大家享受雙十一,支撐雙十一搶購的系統(tǒng),無論是淘寶,京東,考拉,都是跑在Linux上的。
再如有apple就有安卓。apple市值很高,但是蘋果系統(tǒng)的代碼我們是看不到的。于是就有大牛寫了安卓手機(jī)操作系統(tǒng)。所以大家可以看到幾乎所有的其他手機(jī)廠商,里面都裝安卓系統(tǒng),因?yàn)樘O果系統(tǒng)不開源,而安卓系統(tǒng)大家都可以用。
在虛擬化軟件也一樣,有了Vmware,這個(gè)軟件非常非常的貴。那就有大牛寫了兩個(gè)開源的虛擬化軟件,一個(gè)叫做Xen,一個(gè)叫做KVM,如果不做技術(shù)的,可以不用管這兩個(gè)名字,但是后面還是會(huì)提到。
1.6 虛擬化的半自動(dòng)和云計(jì)算的全自動(dòng)
虛擬化軟件似乎解決了靈活性問題,其實(shí)不全對(duì)。因?yàn)樘摂M化軟件一般創(chuàng)建一臺(tái)虛擬的電腦,是需要人工指定這臺(tái)虛擬電腦放在哪臺(tái)物理機(jī)上的,可能還需要比較復(fù)雜的人工配置,所以使用Vmware的虛擬化軟件,需要考一個(gè)很牛的證書,能拿到這個(gè)證書的人,薪資是相當(dāng)?shù)母撸部梢姀?fù)雜程度。所以僅僅憑虛擬化軟件所能管理的物理機(jī)的集群規(guī)模都不是特別的大,一般在十幾臺(tái),幾十臺(tái),最多百臺(tái)這么一個(gè)規(guī)模。這一方面會(huì)影響時(shí)間靈活性,雖然虛擬出一臺(tái)電腦的時(shí)間很短,但是隨著集群規(guī)模的擴(kuò)大,人工配置的過程越來越復(fù)雜,越來越耗時(shí)。另一方面也影響空間靈活性,當(dāng)用戶數(shù)量多的時(shí)候,這點(diǎn)集群規(guī)模,還遠(yuǎn)達(dá)不到想要多少要多少的程度,很可能這點(diǎn)資源很快就用完了,還得去采購。所以隨著集群的規(guī)模越來越大,基本都是千臺(tái)起步,動(dòng)輒上萬臺(tái),甚至幾十上百萬臺(tái),如果去查一下BAT,包括網(wǎng)易,包括谷歌,亞馬遜,服務(wù)器數(shù)目都大的嚇人。這么多機(jī)器要靠人去選一個(gè)位置放這臺(tái)虛擬化的電腦并做相應(yīng)的配置,幾乎是不可能的事情,還是需要機(jī)器去做這個(gè)事情。
人們發(fā)明了各種各樣的算法來做這個(gè)事情,算法的名字叫做調(diào)度(Scheduler)。通俗一點(diǎn)的說,就是有一個(gè)調(diào)度中心,幾千臺(tái)機(jī)器都在一個(gè)池子里面,無論用戶需要多少CPU,內(nèi)存,硬盤的虛擬電腦,調(diào)度中心會(huì)自動(dòng)在大池子里面找一個(gè)能夠滿足用戶需求的地方,把虛擬電腦啟動(dòng)起來做好配置,用戶就直接能用了。這個(gè)階段,我們稱為池化,或者云化,到了這個(gè)階段,才可以稱為云計(jì)算,在這之前都只能叫虛擬化。
1.7 云計(jì)算的私有與公有
云計(jì)算大致分兩種,一個(gè)是私有云,一個(gè)是公有云,還有人把私有云和公有云連接起來稱為混合云,我們暫且不說這個(gè)。私有云就是把虛擬化和云化的這套軟件部署在別人的數(shù)據(jù)中心里面,使用私有云的用戶往往很有錢,自己買地建機(jī)房,自己買服務(wù)器,然后讓云廠商部署在自己這里,Vmware后來除了虛擬化,也推出了云計(jì)算的產(chǎn)品,并且在私有云市場(chǎng)賺的盆滿缽滿。所謂公有云就是虛擬化和云化軟件部署在云廠商自己數(shù)據(jù)中心里面的,用戶不需要很大的投入,只要注冊(cè)一個(gè)賬號(hào),就能在一個(gè)網(wǎng)頁上點(diǎn)一下創(chuàng)建一臺(tái)虛擬電腦,例如AWS也即亞馬遜的公有云,例如國內(nèi)的阿里云,騰訊云,網(wǎng)易云等。
亞馬遜呢為什么要做公有云呢?我們知道亞馬遜原來是國外比較大的一個(gè)電商,它做電商的時(shí)候也肯定會(huì)遇到類似雙11的場(chǎng)景,在某一個(gè)時(shí)刻大家都沖上來買東西。當(dāng)大家都沖上買東西的時(shí)候,就特別需要云的時(shí)間靈活性和空間靈活性。因?yàn)樗荒軙r(shí)刻準(zhǔn)備好所有的資源,那樣太浪費(fèi)了。但也不能什么都不準(zhǔn)備,看著雙十一這么多用戶想買東西登不上去。所以需要雙十一的時(shí)候,創(chuàng)建一大批虛擬電腦來支撐電商應(yīng)用,過了雙十一再把這些資源都釋放掉去干別的。所以亞馬遜是需要一個(gè)云平臺(tái)的。
然而商用的虛擬化軟件實(shí)在是太貴了,亞馬遜總不能把自己在電商賺的錢全部給了虛擬化廠商吧。于是亞馬遜基于開源的虛擬化技術(shù),如上所述的Xen或者KVM,開發(fā)了一套自己的云化軟件。沒想到亞馬遜后來電商越做越牛,云平臺(tái)也越做越牛。而且由于他的云平臺(tái)需要支撐自己的電商應(yīng)用,而傳統(tǒng)的云計(jì)算廠商多為IT廠商出身,幾乎沒有自己的應(yīng)用,因而亞馬遜的云平臺(tái)對(duì)應(yīng)用更加的友好,迅速發(fā)展成為云計(jì)算的第一品牌,賺了很多錢。在亞馬遜公布其云計(jì)算平臺(tái)財(cái)報(bào)之前,人們都猜測(cè),亞馬遜電商賺錢,云也賺錢嗎?后來一公布財(cái)報(bào),發(fā)現(xiàn)不是一般的賺錢,僅僅去年,亞馬遜AWS年?duì)I收達(dá)122億美元,運(yùn)營(yíng)利潤(rùn)31億美元。
1.8 云計(jì)算的賺錢與情懷
公有云的第一名亞馬遜過得很爽,第二名Rackspace過的就一般了。沒辦法,這就是互聯(lián)網(wǎng)行業(yè)的殘酷性,多是贏者通吃的模式。所以第二名如果不是云計(jì)算行業(yè)的,很多人可能都沒聽過了。第二名就想,我干不過老大怎么辦呢?開源吧。如上所述,亞馬遜雖然使用了開源的虛擬化技術(shù),但是云化的代碼是閉源的,很多想做又做不了云化平臺(tái)的公司,只能眼巴巴的看著亞馬遜掙大錢。Rackspace把源代碼一公開,整個(gè)行業(yè)就可以一起把這個(gè)平臺(tái)越做越好,兄弟們大家一起上,和老大拼了。
于是Rackspace和美國航空航天局合作創(chuàng)辦了開源軟件OpenStack,如圖所示OpenStack的架構(gòu)圖,不是云計(jì)算行業(yè)的不用弄懂這個(gè)圖,但是能夠看到三個(gè)關(guān)鍵字,Compute計(jì)算,Networking網(wǎng)絡(luò),Storage存儲(chǔ)。還是一個(gè)計(jì)算,網(wǎng)絡(luò),存儲(chǔ)的云化管理平臺(tái)。
當(dāng)然第二名的技術(shù)也是非常棒的,有了OpenStack之后,果真像Rackspace想象的一樣,所有想做云的大企業(yè)都瘋了,你能想象到的所有如雷貫耳的大型IT企業(yè),IBM,惠普,戴爾,華為,聯(lián)想等等,都瘋了。原來云平臺(tái)大家都想做,看著亞馬遜和Vmware賺了這么多錢,眼巴巴看著沒辦法,想自己做一個(gè)好像難度還挺大?,F(xiàn)在好了,有了這樣一個(gè)開源的云平臺(tái)OpenStack,所有的IT廠商都加入到這個(gè)社區(qū)中來,對(duì)這個(gè)云平臺(tái)進(jìn)行貢獻(xiàn),包裝成自己的產(chǎn)品,連同自己的硬件設(shè)備一起賣。有的做了私有云,有的做了公有云,OpenStack已經(jīng)成為開源云平臺(tái)的事實(shí)標(biāo)準(zhǔn)。
1.9 IaaS, 資源層面的靈活性
隨著OpenStack的技術(shù)越來越成熟,可以管理的規(guī)模也越來越大,并且可以有多個(gè)OpenStack集群部署多套,比如北京部署一套,杭州部署兩套,廣州部署一套,然后進(jìn)行統(tǒng)一的管理。這樣整個(gè)規(guī)模就更大了。在這個(gè)規(guī)模下,對(duì)于普通用戶的感知來講,基本能夠做到想什么時(shí)候要就什么什么藥,想要多少就要多少。還是拿云盤舉例子,每個(gè)用戶云盤都分配了5T甚至更大的空間,如果有1億人,那加起來空間多大啊。其實(shí)背后的機(jī)制是這樣的,分配你的空間,你可能只用了其中很少一點(diǎn),比如說它分配給你了5個(gè)T,這么大的空間僅僅是你看到的,而不是真的就給你了,你其實(shí)只用了50個(gè)G,則真實(shí)給你的就是50個(gè)G,隨著你文件的不斷上傳,分給你的空間會(huì)越來越多。當(dāng)大家都上傳,云平臺(tái)發(fā)現(xiàn)快滿了的時(shí)候(例如用了70%),會(huì)采購更多的服務(wù)器,擴(kuò)充背后的資源,這個(gè)對(duì)用戶是透明的,看不到的,從感覺上來講,就實(shí)現(xiàn)了云計(jì)算的彈性。其實(shí)有點(diǎn)像銀行,給儲(chǔ)戶的感覺是什么時(shí)候取錢都有,只要不同時(shí)擠兌,銀行就不會(huì)垮。
這里做一個(gè)簡(jiǎn)單的總結(jié),到了這個(gè)階段,云計(jì)算基本上實(shí)現(xiàn)了時(shí)間靈活性和空間靈活性,實(shí)現(xiàn)了計(jì)算,網(wǎng)絡(luò),存儲(chǔ)資源的彈性。計(jì)算,網(wǎng)絡(luò),存儲(chǔ)我們常稱為基礎(chǔ)設(shè)施Infranstracture, 因而這個(gè)階段的彈性稱為資源層面的彈性,管理資源的云平臺(tái),我們稱為基礎(chǔ)設(shè)施服務(wù),就是我們常聽到的IaaS,Infranstracture As A Service。