作者: 劉超 �(zhuǎn)載自劉超的通俗云計算微信公眾號�(fā)表時間:2018-03-22 15:18:58瀏覽量:1637�����
今天跟大家講講云計算、大�(shù)�(jù)和人工智�。這三個詞�(xiàn)在非?;穑⑶宜鼈冎g好像互相有關(guān)��
一般談云計算的時候會提到大數(shù)�(jù)、談人工智能的時候會提大�(shù)�(jù)、談人工智能的時候會提云計算…�感覺三者之間相輔相成又不可分割�
但如果是非技�(shù)的人�,就可能比較難理解這三者之間的相互�(guān)系,所以有必要解釋一��
云計算最初的目標(biāo)
我們首先來說云計算。云計算最初的目標(biāo)是對資源的管理,管理的主要是計算資源、網(wǎng)�(luò)資源、存儲資源三個方��
管數(shù)�(jù)中心就像配電�
什么叫計算、網(wǎng)�(luò)、存儲資源?
比如你要買臺筆記本電�,是不是要關(guān)心這臺電腦是什么樣� CPU?多大的�(nèi)�?這兩個就被我們稱為計算資��
這臺電腦要上�(wǎng),就需要有個可以插�(wǎng)線的�(wǎng)口,或者有可以連接我們家路由器的無線�(wǎng)��
您家也需要到�(yùn)營商比如�(lián)�、移動或者電信開通一個網(wǎng)�(luò),比� 100M 的帶�。然后會有師傅弄一根網(wǎng)線到您家�,師傅可能會幫您將您的路由器和他們公司的�(wǎng)�(luò)連接配置��
這樣您家的所有的電腦、手�(jī)、平板就都可以通過您的路由器上�(wǎng)了。這就是網(wǎng)�(luò)資源�
您可能還會問硬盤多大?過去的硬盤都很�,大小如 10G 之類�;后來即� 500G�1T�2T 的硬盤也不新鮮了�(1T � 1000G),這就是存儲資��
對于一臺電腦是這個樣子的,對于一個數(shù)�(jù)中心也是同樣�。想象你有一個非常非常大的機(jī)�,里面堆了很多的服務(wù)�,這些服務(wù)器也是有 CPU、內(nèi)�、硬盤的,也是通過類似路由器的�(shè)備上�(wǎng)的�
這時的問題就是:�(yùn)營數(shù)�(jù)中心的人是怎么把這些�(shè)備統(tǒng)一的管理起來的��
靈活就是想啥時要都有,想要多少都�
管理的目�(biāo)就是要達(dá)到兩個方面的靈活�。具體哪兩個方面呢�
舉個例子來理解�比如有個人需要一臺很小的電腦,只有一� CPU�1G �(nèi)存�10G 的硬�、一兆的帶寬,你能給他嗎�
像這么小規(guī)格的電腦,現(xiàn)在隨便一個筆記本電腦都比這個配置強(qiáng)�,家里隨便拉一個寬帶都� 100M。然而如果去一個云計算的平臺上,他想要這個資源時,只要一�(diǎn)就有��
這種情況下它就能�(dá)到兩個方面的靈活性:
· 時間靈活性:想什么時候要就什么時候要,需要的時候一�(diǎn)就出來了�
· 空間靈活性:想要多少就有多少。需要一個空間很小的電腦,可以滿足;需要一個特別大的空間例如云�,云盤給每個人分配的空間動不動就很大很�,隨時上傳隨時有空間,永�(yuǎn)用不�,也是可以滿足的�
空間靈活性和時間靈活性,即我們常說的云計算的彈�。而解決這個彈性的問題,經(jīng)歷了漫長時間的發(fā)��
物理�(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è)備不能做到很好的靈活性:
· 首先是它缺乏時間靈活��不能夠達(dá)到想什么時候要就什么時候要。比如買臺服�(wù)器、買個電�,都要有采購的時間�
如果突然用戶告訴某個云廠商,說想要開臺電腦,使用物理服�(wù)器,�(dāng)時去采購就很�。與供應(yīng)商關(guān)系好的可能需要一個星期,與供�(yīng)商關(guān)系一般的就可能需要采購一個月�
用戶等了很久電腦才到�,這時用戶還要登錄上去慢慢開始部署自己的應(yīng)�。時間靈活性非常差�
· 其次是它的空間靈活性也不行�例如上述的用戶需要一個很小很小的電腦,但�(xiàn)在哪還有這么小型號的電腦?不能為了滿足用戶只要一� G 的內(nèi)存�80G 硬盤�,就去買一個這么小的�(jī)��
但是如果買一個大�,又會因為電腦大,需要向用戶多收�,可用戶需要用的只有那么小一�(diǎn),所以多付錢就很冤�
虛擬化靈活多�
有人就想辦法�。第一個辦法就是虛擬化。用戶不是只要一個很小的電腦��
�(shù)�(jù)中心的物理設(shè)備都很強(qiáng)大,我可以從物理� CPU、內(nèi)�、硬盤中虛擬出一小塊來給客戶,同時也可以虛擬出一小塊來給其他客戶�
每個客戶只能看到自己的那一小塊,但其實(shí)每個客戶用的是整個大的設(shè)備上的一小塊�
虛擬化的技�(shù)使得不同客戶的電腦看起來是隔離的。也就是我看著好像這塊盤就是我�,你看著這塊盤就是你�,但�(shí)際情況可能我的這� 10G 和你的這� 10G 是落在同樣一個很大很大的存儲��
而且如果事先物理�(shè)備都�(zhǔn)備好,虛擬化軟件虛擬出一個電腦是�??斓?,基本上幾分鐘就能解�。所以在任何一個云上要�(chuàng)建一臺電�,一�(diǎn)幾分鐘就出來�,就是這個道理�
這樣空間靈活性和時間靈活性就基本解決��
虛擬世界的賺錢與情懷
在虛擬化階段,最牛的公司� VMware。它是實(shí)�(xiàn)虛擬化技�(shù)比較早的一家公�,可以實(shí)�(xiàn)計算、網(wǎng)�(luò)、存儲的虛擬��
這家公司很牛,性能做得非常�,虛擬化軟件賣得也非常好,賺了好多的�,后來讓 EMC(世界五百�(qiáng),存儲廠商第一品牌)給收購了�
但這個世界上還是有很多有情懷的人�,尤其是程序員里靀有情懷的人喜歡做什么事�?開源�
這個世界上很多軟件都是有閉源就有開�,源就是源代�。也就是�,某個軟件做的好,所有人都愛�,但這個軟件的代碼被我封閉起來,只有我公司知道,其他人不知��
如果其他人想用這個軟�,就要向我付錢,這就叫閉�。但世界上總有一些大牛看不慣錢都讓一家賺了去的情�。大牛們覺�,這個技�(shù)你會我也�;你能開�(fā)出來,我也能�
我開�(fā)出來就是不收�,把代碼拿出來分享給大家,全世界誰用都可�,所有的人都可以享受到好處,這個叫做開��
比如最近的蒂姆·伯納�·李就是個非常有情懷的人�2017 �,他���(fā)明萬維網(wǎng)、第一個瀏覽器和使萬維網(wǎng)得以�(kuò)展的基本�(xié)議和算法�而獲� 2016 年度的圖靈獎�
圖靈獎就是計算機(jī)界的諾貝爾獎。然而他最令人敬佩的是,他將萬維網(wǎng),也就是我們常見的 WWW 技�(shù)無償貢獻(xiàn)給全世界免費(fèi)使用�
我們現(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)的代碼我們是看不到的,于是就有大牛寫了安卓手�(jī)操作系統(tǒng)�
所以大家可以看到幾乎所有的其他手機(jī)廠商,里面都裝安卓系�(tǒng)。原因就是蘋果系�(tǒng)不開源,而安卓系�(tǒng)大家都可以用�
在虛擬化軟件也一�,有� VMware,這個軟件非常貴。那就有大牛寫了兩個開源的虛擬化軟�,一個叫� Xen,一個叫� KVM,如果不做技�(shù)的,可以不用管這兩個名�,但是后面還是會提到�
虛擬化的半自動和云計算的全自�
要說虛擬化軟件解決了靈活性問�,其�(shí)并不全對。因為虛擬化軟件一般創(chuàng)建一臺虛擬的電腦,是需要人工指定這臺虛擬電腦放在哪臺物理�(jī)上的�
這一過程可能還需要比較復(fù)雜的人工配置。所以使� VMware 的虛擬化軟件,需要考一個很牛的證書,而能拿到這個證書的�,薪資是相當(dāng)�,也可見其復(fù)雜程度�
所以僅僅憑虛擬化軟件所能管理的物理�(jī)的集群規(guī)模都不是特別�,一般在十幾�、幾十臺、最多百臺這么一個規(guī)��
這一方面會影響時間靈活性:雖然虛擬出一臺電腦的時間很短,但是隨著集群規(guī)模的�(kuò)大,人工配置的過程越來越�(fù)�,越來越耗時�
另一方面也影響空間靈活性:�(dāng)用戶�(shù)量多�,這點(diǎn)集群�(guī)�,還�(yuǎn)�(dá)不到想要多少要多少的程度,很可能這點(diǎn)資源很快就用完了,還得去采購�
所以隨著集群的�(guī)模越來越�,基本都是千臺起步,動輒上萬�、甚至幾十上百萬臺。如果去查一� BAT,包括網(wǎng)易、谷�、亞馬遜,服�(wù)器數(shù)目都大的嚇人�
這么多機(jī)器要靠人去選一個位置放這臺虛擬化的電腦并做相應(yīng)的配�,幾乎是不可能的事情,還是需要機(jī)器去做這個事��
人們發(fā)明了各種各樣的算法來做這個事�,算法的名字叫做�(diào)�(Scheduler)�
通俗一�(diǎn)��就是有一個調(diào)度中�,幾千臺�(jī)器都在一個池子里�,無論用戶需要多� CPU、內(nèi)存、硬盤的虛擬電腦,調(diào)度中心會自動在大池子里面找一個能夠滿足用戶需求的地方,把虛擬電腦啟動起來做好配置,用戶就直接能用了�
這個階段我們稱為池化或者云�。到了這個階段,才可以稱為云計算,在這之前都只能叫虛擬化�
云計算的私有與公�
云計算大致分兩種:一個是私有�,一個是公有�,還有人把私有云和公有云連接起來稱為混合�,這里暫且不說這個�
· 私有云:把虛擬化和云化的這套軟件部署在別人的�(shù)�(jù)中心里面。使用私有云的用戶往往很有�,自己買地建�(jī)房、自己買服務(wù)�,然后讓云廠商部署在自己這里�
VMware 后來除了虛擬�,也推出了云計算的產(chǎn)�,并且在私有云市場賺的盆滿缽滿�
· 公有云:把虛擬化和云化軟件部署在云廠商自己數(shù)�(jù)中心里面�,用戶不需要很大的投入,只要注冊一個賬�,就能在一個網(wǎng)頁上�(diǎn)一下創(chuàng)建一臺虛擬電腦�
例如 AWS 即亞馬遜的公有云;國�(nèi)的阿里云、騰訊云、網(wǎng)易云等�
亞馬遜為什么要做公有云�?我們知道亞馬遜原來是國外比較大的一個電�,它做電商時也肯定會遇到類似雙十一的場景:在某一個時刻大家都沖上來買東西�
�(dāng)大家都沖上買東西時,就特別需要云的時間靈活性和空間靈活�。因為它不能時刻�(zhǔn)備好所有的資源,那樣太浪費(fèi)�。但也不能什么都不準(zhǔn)備,看著雙十一這么多用戶想買東西登不上��
所以需要雙十一�,就�(chuàng)建一大批虛擬電腦來支撐電商應(yīng)�,過了雙十一再把這些資源都釋放掉去干別的。因此亞馬遜是需要一個云平臺��
然而商用的虛擬化軟件實(shí)在是太貴了,亞馬遜總不能把自己在電商賺的錢全部給了虛擬化廠商�
于是亞馬遜基于開源的虛擬化技�(shù),如上所述的 Xen 或� KVM,開�(fā)了一套自己的云化軟件。沒想到亞馬遜后來電商越做越�,云平臺也越做越��
由于它的云平臺需要支撐自己的電商�(yīng)�;而傳�(tǒng)的云計算廠商多為 IT 廠商出身,幾乎沒有自己的�(yīng)�,所以亞馬遜的云平臺對應(yīng)用更加友�,迅速發(fā)展成為云計算的第一品牌,賺了很多錢�
在亞馬遜公布其云計算平臺財報之前,人們都猜測,亞馬遜電商賺錢,云也賺錢嗎?后來一公布財報,發(fā)�(xiàn)不是一般的賺錢。僅僅去年,亞馬� AWS 年營收達(dá) 122 億美�,運(yùn)營利� 31 億美��
云計算的賺錢與情�
公有云的第一名亞馬遜過得很爽,第二名 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 賺了這么多錢,眼巴巴看著沒辦�,想自己做一個好像難度還挺大�
�(xiàn)在好�,有了這樣一個開源的云平� OpenStack,所有的 IT 廠商都加入到這個社區(qū)中來,對這個云平臺�(jìn)行貢�(xiàn),包裝成自己的產(chǎn)�,連同自己的硬件設(shè)備一起賣�
有的做了私有�,有的做了公有云�OpenStack 已經(jīng)成為開源云平臺的事實(shí)�(biāo)�(zhǔn)�
IaaS,資源層面的靈活�
隨著 OpenStack 的技�(shù)越來越成�,可以管理的�(guī)模也越來越大,并且可以有多� OpenStack 集群部署多套�
比如北京部署一�、杭州部署兩套、廣州部署一�,然后�(jìn)行統(tǒng)一的管�。這樣整個規(guī)模就更大��
在這個規(guī)模下,對于普通用戶的感知來講,基本能夠做到想什么時候要就什么時候要,想要多少就要多少�
還是拿云盤舉例子,每個用戶云盤都分配� 5T 甚至更大的空�,如果有 1 億人,那加起來空間多大啊�
其實(shí)背后的機(jī)制是這樣的:分配你的空間,你可能只用了其中很少一�(diǎn),比如說它分配給你了 5 � T,這么大的空間僅僅是你看到�,而不是真的就給你��
你其�(shí)只用� 50 � G,則真實(shí)給你的就� 50 � G,隨著你文件的不斷上�,分給你的空間會越來越多�
�(dāng)大家都上�,云平臺�(fā)�(xiàn)快滿了的時�(例如用了 70%),會采購更多的服�(wù)器,�(kuò)充背后的資源,這個對用戶是透明�、看不到��
從感覺上來講,就�(shí)�(xiàn)了云計算的彈�。其�(shí)有點(diǎn)像銀行,給儲戶的感覺是什么時候取錢都�,只要不同時擠兌,銀行就不會��
總結(jié)
到了這個階�,云計算基本上實(shí)�(xiàn)了時間靈活性和空間靈活性;�(shí)�(xiàn)了計�、網(wǎng)�(luò)、存儲資源的彈��
計算、網(wǎng)�(luò)、存儲我們常稱為基礎(chǔ)�(shè)� Infranstracture, 因而這個階段的彈性稱為資源層面的彈��
管理資源的云平臺,我們稱為基�(chǔ)�(shè)施服�(wù),也就是我們常聽到� IaaS�Infranstracture As A Service��
云計算不光管資源,也要管�(yīng)�
有了 IaaS,實(shí)�(xiàn)了資源層面的彈性就夠了�?顯然不是,還有�(yīng)用層面的彈��
這里舉個例子:比如說實(shí)�(xiàn)一個電商的�(yīng)�,平時十臺機(jī)器就夠了,雙十一需要一百臺。你可能覺得很好辦啊,有� IaaS,新�(chuàng)建九十臺�(jī)器就可以了啊�
� 90 臺機(jī)器創(chuàng)建出來是空的,電商應(yīng)用并沒有放上�,只能讓公司的運(yùn)維人員一臺一臺的弄,需要很長時間才能安裝好��
雖然資源層面�(shí)�(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 臺機(jī)器是空的,如果能夠提供一個工�,能夠自動在這新� 90 臺機(jī)器上將電商應(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ù)庫軟件是�(biāo)�(zhǔn)�,雖然安裝和維護(hù)比較�(fù)�,但無論誰安裝都是一樣�
這樣的應(yīng)用可以變成標(biāo)�(zhǔn)� PaaS 層的�(yīng)用放在云平臺的界面上。當(dāng)用戶需要一個數(shù)�(jù)庫時,一�(diǎn)就出來了,用戶就可以直接用了�
有人問,既然誰安裝都一個樣,那我自己來好了,不需要花錢在云平臺上買。當(dāng)然不�,數(shù)�(jù)庫是一個非常難的東�,光 Oracle 這家公司,靠�(shù)�(jù)庫就能賺這么多錢。買 Oracle 也是要花很多錢的�
然而大多數(shù)云平臺會提供 MySQL 這樣的開源數(shù)�(jù)�,又是開源,錢不需要花這么多了�
但維�(hù)這個數(shù)�(jù)�,卻需要專門招一個很大的�(tuán)�,如果這個數(shù)�(jù)庫能夠優(yōu)化到能夠支撐雙十一,也不是一年兩年能夠搞定的�
比如您是一個做單車�,當(dāng)然沒必要招一個非常大的數(shù)�(jù)庫團(tuán)隊來干這件事情,成本太高了,應(yīng)該交給云平臺來做這件事情�
專業(yè)的事情專�(yè)的人來做,云平臺專門�(yǎng)了幾百人維護(hù)這套系統(tǒng),您只要專注于您的單車應(yīng)用就可以��
要么是自動部署,要么是不用部�,總的來說就是應(yīng)用層你也要少操心,這就� PaaS 層的重要作用�
雖說腳本的方式能夠解決自己的�(yīng)用的部署問題,然而不同的�(huán)境千差萬�,一個腳本往往在一個環(huán)境上�(yùn)行正�,到另一個環(huán)境就不正確了�
而容器是能更好地解決這個問��
容器� Container�Container 另一個意思是集裝�,其�(shí)容器的思想就是要變成軟件交付的集裝�。集裝箱的特�(diǎn):一是封裝,二是�(biāo)�(zhǔn)�
在沒有集裝箱的時代,假設(shè)將貨物從 A �(yùn)� B,中間要�(jīng)過三個碼�、換三次��
每次都要將貨物卸下船來,擺得七零八落,然后搬上船重新整齊擺好。因此在沒有集裝箱時,每次換�,船員們都要在岸上待幾天才能走�
有了集裝箱以�,所有的貨物都打包在一起了,并且集裝箱的尺寸全部一致,所以每次換船時,一個箱子整體搬過去就行�,小時級別就能完成,船員再也不用上岸長時間耽擱��
這是集裝��封裝����(biāo)�(zhǔn)�兩大特點(diǎn)在生活中的應(yīng)��
那么容器如何對應(yīng)用打包呢?還是要�(xué)�(xí)集裝箱。首先要有個封閉的�(huán)�,將貨物封裝起來,讓貨物之間互不干擾、互相隔離,這樣裝貨卸貨才方�。好� Ubuntu 中的 LXC 技�(shù)早就能做到這一�(diǎn)�
封閉的環(huán)境主要使用了兩種技�(shù)�
· 看起來是隔離的技�(shù),稱� Namespace�也即每� Namespace 中的�(yīng)用看到的是不同的 IP 地址、用戶空�、程號等�
· 用起來是隔離的技�(shù),稱� Cgroups�也即明明整臺�(jī)器有很多� CPU、內(nèi)�,而一個應(yīng)用只能用其中的一部分�
所謂的鏡像,就是將你焊好集裝箱的那一刻,將集裝箱的狀�(tài)保存下來,就像孫悟空說:���,集裝箱里面就定在了那一�,然后將這一刻的狀�(tài)保存成一系列文件�
這些文件的格式是�(biāo)�(zhǔn)�,誰看到這些文件都能還原�(dāng)時定住的那個時�。將鏡像還原成運(yùn)行時的過程(就是讀取鏡像文�,還原那個時刻的過程�,就是容器運(yùn)行的過程�
有了容器,使� PaaS 層對于用戶自身應(yīng)用的自動部署變得快速而優(yōu)��
大數(shù)�(jù)擁抱云計�
� PaaS 層中一個復(fù)雜的通用�(yīng)用就是大�(shù)�(jù)平臺。大�(shù)�(jù)是如何一步一步融入云計算的呢�
? 2018 上海邁迅威視覺科技有限公司 版權(quán)所� 滬ICP�17045574�-2
技�(shù)支持�國人在線 免責(zé)聲明 �(wǎng)站地�