很遺憾,因您的浏覽器版本過低導緻無法獲得最佳浏覽體驗,推薦下載安裝谷歌浏覽器!

終于有人把雲計算、大數據和 AI 講明白了(一)

2019-02-13  來自: 雲唯IT實訓雲計算培訓大數據培訓 浏覽次數:150

一、雲計算最初是實現資源管理的靈活性


我們首先來說雲計算雲計算最初的目标是對資源的管理,管理的主要是計算資源,網絡資源,存儲資源三個方面。

0基礎轉行

1.1 管數據中心就像配電腦

什麼叫計算,網絡,存儲資源呢?就說你要買台筆記本電腦吧,你是不是要關心這台電腦什麼樣的CPU啊?多大的内存啊?這兩個我們稱為計算資源。

這台電腦要能上網吧,需要有個網口可以插網線,或者有無線網卡可以連接我們家的路由器,您家也需要到運營商比如聯通,移動,電信開通一個網絡,比如100M的帶寬,然後會有師傅弄一根網線到您家來,師傅可能會幫您将您的路由器和他們公司的網絡連接配置好,這樣您家的所有的電腦,手機,平闆就都可以通過您的路由器上網了。這就是網絡。

您可能還會問硬盤多大啊?原來硬盤都很小,10G之類的,後來500G,1T,2T的硬盤也不新鮮了。(1T是1024G),這就是存儲。

對于一台電腦是這個樣子的,對于一個數據中心也是同樣的。想象你有一個非常非常大的機房,裡面堆了很多的服務器,這些服務器也是有CPU,内存,硬盤的,也是通過類似路由器的設備上網的。這個時候的一個問題就是,運營數據中心的人是怎麼把這些設備統一的管理起來的呢?

1.2 靈活就是想啥時要都有,想要多少都行

管理的目标就是要達到兩個方面的靈活性。哪兩個方面呢?比如有個人需要一台很小很小的電腦,隻有一個CPU,1G内存,10G的硬盤,一兆的帶寬,你能給他嗎?像這種這麼小規格的電腦,現在随便一個筆記本電腦都比這個配置強了,家裡随便拉一個寬帶都要100M。然而如果去一個雲計算的平台上,他要想要這個資源的時候,隻要一點就有了。

所以說它就能達到兩個方面靈活性。

  • 第一個方面就是想什麼時候要就什麼時候要,比如需要的時候一點就出來了,這個叫做時間靈活性。

  • 第二個方面就是想要多少呢就有多少,比如需要一個很小很小的電腦,可以滿足,比如需要一個特别大的空間,以雲盤為例,似乎雲盤給每個人分配的空間動不動就就很大很大,随時上傳随時有空間,永遠用不完,這個叫做空間靈活性。

空間靈活性和時間靈活性,也即我們常說的雲計算的彈性。

為了解決這個彈性的問題,經曆了漫長時間的發展。

1.3 物理設備不靈活

首先第一個階段就是物理機,或者說物理設備時期。這個時期相當于客戶需要一台電腦,我們就買一台放在數據中心裡。物理設備當然是越來越牛,例如服務器,内存動不動就是百G内存,例如網絡設備,一個端口的帶寬就能有幾十G甚至上百G,例如存儲,在數據中心至少是PB級别的(一個P是1024個T,一個T是1024個G)。

然而物理設備不能做到很好的靈活性。首先它不能夠達到想什麼時候要就什麼時候要、比如買台服務器,哪怕買個電腦,都有采購的時間。突然用戶告訴某個雲廠商,說想要開台電腦,如果使用物理服務器,當時去采購啊就很難,如果說供應商啊關系一般,可能采購一個月,供應商關系好的話也需要一個星期。用戶等了一個星期後,這時候電腦才到位,用戶還要登錄上去開始慢慢部署自己的應用,時間靈活性非常差。第二是空間靈活性也不行,例如上述的用戶,要一個很小很小的電腦,現在哪還有這麼小型号的電腦啊。不能為了滿足用戶隻要一個G的内存是80G硬盤的,就去買一個這麼小的機器。但是如果買一個大的呢,因為電腦大,就向用戶多收錢,用戶說他隻用這麼小的一點,如果讓用戶多付錢就很冤。

1.4 虛拟化靈活多了

有人就想辦法了。第一個辦法就是虛拟化。用戶不是隻要一個很小的電腦麼?數據中心的物理設備都很強大,我可以從物理的CPU,内存,硬盤中虛拟出一小塊來給客戶,同時也可以虛拟出一小塊來給其他客戶,每個客戶都隻能看到自己虛的那一小塊,其實每個客戶用的是整個大的設備上其中的一小塊。虛拟化的技術能使得不同的客戶的電腦看起來是隔離的,我看着好像這塊盤就是我的,你看這呢這塊盤就是你的,實際情況可能我這個10G和您這個10G是落在同樣一個很大很大的這個存儲上的。

而且如果事先物理設備都準備好,虛拟化軟件虛拟出一個電腦是非常快的,基本上幾分鐘就能解決。所以在任何一個雲上要創建一台電腦,一點幾分鐘就出來了,就是這個道理。

這個空間靈活性和時間靈活性就基本解決了。

1.5 虛拟世界的賺錢與情懷

在虛拟化階段,最 牛的公司是Vmware,是實現虛拟化技術比較早的一家公司,可以實現計算,網絡,存儲的虛拟化,這家公司很牛,性能也做得非常好,然後虛拟化軟件賣的也非常好,賺了好多的錢,後來讓EMC(世界五百強,存儲廠商第 一 品 牌)給收購了。

但是這個世界上還是有很多有情懷的人的,尤其是程序員裡面,有情懷的人喜歡做一件什麼事情呢?開源。這個世界上很多軟件都是有閉源就有開源,源就是源代碼。就是說某個軟件做的好,所有人都愛用,這個軟件的代碼呢,我封閉起來隻有我公司知道,其他人不知道,如果其他人想用這個軟件,就要付我錢,這就叫閉源。但是世界上總有一些大牛看不慣錢都讓一家賺了去。大牛們覺得,這個技術你會我也會,你能開發出來,我也能,我開發出來就是不收錢,把代碼拿出來分享給大家,全世界誰用都可以,所有的人都可以享受到好處,這個叫做開源。

比如最近蒂姆·伯納斯·李就是個非常有情懷的人,2017年,他因“發明萬維網、第一個浏覽器和使萬維網得以擴展的基本協議和算法”而獲得2016年度的圖靈獎。圖靈獎就是計算機界的諾貝爾獎。然而他最令人敬佩的是,他将萬維網,也就是我們常見的www的技術無償貢獻給全世界免費使用。我們現在在網上的所有行為都應該感謝他的功勞,如果他将這個技術拿來收錢,應該和比爾蓋茨差不多有錢。

例如在閉源的世界裡有windows,大家用windows都得給微軟付錢,開源的世界裡面就出現了Linux。比爾蓋茨靠windows,Office這些閉源的軟件賺了很多錢,稱為世界首富,就有大牛開發了另外一種操作系統Linux。很多人可能沒有聽說過Linux,很多後台的服務器上跑的程序都是Linux上的,比如大家享受雙十一,支撐雙十一搶 購的系統,無論是淘寶,京東,考拉,都是跑在Linux上的。

再如有apple就有安卓。apple市值很高,但是蘋果系統的代碼我們是看不到的。于是就有大牛寫了安卓手機操作系統。所以大家可以看到幾乎所有的其他手機廠商,裡面都裝安卓系統,因為蘋果系統不開源,而安卓系統大家都可以用。

在虛拟化軟件也一樣,有了Vmware,這個軟件非常非常的貴。那就有大牛寫了兩個開源的虛拟化軟件,一個叫做Xen,一個叫做KVM,如果不做技術的,可以不用管這兩個名字,但是後面還是會提到。

1.6 虛拟化的半自動和雲計算的全自動

虛拟化軟件似乎解決了靈活性問題,其實不全對。因為虛拟化軟件一般創建一台虛拟的電腦,是需要人工指定這台虛拟電腦放在哪台物理機上的,可能還需要比較複雜的人工配置,所以使用Vmware的虛拟化軟件,需要考一個很牛的證書,能拿到這個證書的人,薪資是相當的高,也可見複雜程度。所以僅僅憑虛拟化軟件所能管理的物理機的集群規模都不是特别的大,一般在十幾台,幾十台,最多百台這麼一個規模。這一方面會影響時間靈活性,雖然虛拟出一台電腦的時間很短,但是随着集群規模的擴大,人工配置的過程越來越複雜,越來越耗時。另一方面也影響空間靈活性,當用戶數量多的時候,這點集群規模,還遠達不到想要多少要多少的程度,很可能這點資源很快就用完了,還得去采購。所以随着集群的規模越來越大,基本都是千台起步,動辄上萬台,甚至幾十上百萬台,如果去查一下BAT,包括網易,包括谷歌,亞馬遜,服務器數目都大的吓人。這麼多機器要靠人去選一個位置放這台虛拟化的電腦并做相應的配置,幾乎是不可能的事情,還是需要機器去做這個事情。

人們發明了各種各樣的算法來做這個事情,算法的名字叫做調度(Scheduler)。通俗一點的說,就是有一個調度中心,幾千台機器都在一個池子裡面,無論用戶需要多少CPU,内存,硬盤的虛拟電腦,調度中心會自動在大池子裡面找一個能夠滿足用戶需求的地方,把虛拟電腦啟動起來做好配置,用戶就直接能用了。這個階段,我們稱為池化,或者雲化,到了這個階段,才可以稱為雲計算,在這之前都隻能叫虛拟化。

1.7 雲計算的私有與公有

雲計算大緻分兩種,一個是私有雲,一個是公有雲,還有人把私有雲和公有雲連接起來稱為混合雲,我們暫且不說這個。私有雲就是把虛拟化和雲化的這套軟件部署在别人的數據中心裡面,使用私有雲的用戶往往很有錢,自己買地建機房,自己買服務器,然後讓雲廠商部署在自己這裡,Vmware後來除了虛拟化,也推出了雲計算的産品,并且在私有雲市場賺的盆滿缽滿。所謂公有雲就是虛拟化和雲化軟件部署在雲廠商自己數據中心裡面的,用戶不需要很大的投入,隻要注冊一個賬号,就能在一個網頁上點一下創建一台虛拟電腦,例如AWS也即亞馬遜的公有雲,例如國内的阿裡雲,騰訊雲,網易雲等。

亞馬遜呢為什麼要做公有雲呢?我們知道亞馬遜原來是國外比較大的一個電商,它做電商的時候也肯定會遇到類似雙11的場景,在某一個時刻大家都沖上來買東西。當大家都沖上買東西的時候,就特别需要雲的時間靈活性和空間靈活性。因為它不能時刻準備好所有的資源,那樣太浪費了。但也不能什麼都不準備,看着雙十一這麼多用戶想買東西登不上去。所以需要雙十一的時候,創建一大批虛拟電腦來支撐電商應用,過了雙十一再把這些資源都釋放掉去幹别的。所以亞馬遜是需要一個雲平台的。

然而商用的虛拟化軟件實在是太貴了,亞馬遜總不能把自己在電商賺的錢全部給了虛拟化廠商吧。于是亞馬遜基于開源的虛拟化技術,如上所述的Xen或者KVM,開發了一套自己的雲化軟件。沒想到亞馬遜後來電商越做越牛,雲平台也越做越牛。而且由于他的雲平台需要支撐自己的電商應用,而傳統的雲計算廠商多為IT廠商出身,幾乎沒有自己的應用,因而亞馬遜的雲平台對應用更加的友好,迅速發展成為雲計算的第 一 品 牌,賺了很多錢。在亞馬遜公布其雲計算平台财報之前,人們都猜測,亞馬遜電商賺錢,雲也賺錢嗎?後來一公布财報,發現不是一般的賺錢,僅僅去年,亞馬遜AWS年營收達122億美元,運營利潤31億美元。

1.8 雲計算的賺錢與情懷

公有雲的第一名亞馬遜過得很爽,第二名Rackspace過的就一般了。沒辦法,這就是互聯網行業的殘酷性,多是赢者通吃的模式。所以第二名如果不是雲計算行業的,很多人可能都沒聽過了。第二名就想,我幹不過老大怎麼辦呢?開源吧。如上所述,亞馬遜雖然使用了開源的虛拟化技術,但是雲化的代碼是閉源的,很多想做又做不了雲化平台的公司,隻能眼巴巴的看着亞馬遜掙大錢。Rackspace把源代碼一公開,整個行業就可以一起把這個平台越做越好,兄弟們大家一起上,和老大拼了。

于是Rackspace和美國航空航天局合作創辦了開源軟件OpenStack,如圖所示OpenStack的架構圖,不是雲計算行業的不用弄懂這個圖,但是能夠看到三個關鍵字,Compute計算,Networking網絡,Storage存儲。還是一個計算,網絡,存儲的雲化管理平台。

當然第二名的技術也是非常棒的,有了OpenStack之後,果真像Rackspace想象的一樣,所有想做雲的大企業都瘋了,你能想象到的所有如雷貫耳的大型IT企業,IBM,惠普,戴爾,華為,聯想等等,都瘋了。原來雲平台大家都想做,看着亞馬遜和Vmware賺了這麼多錢,眼巴巴看着沒辦法,想自己做一個好像難度還挺大。現在好了,有了這樣一個開源的雲平台OpenStack,所有的IT廠商都加入到這個社區中來,對這個雲平台進行貢獻,包裝成自己的産品,連同自己的硬件設備一起賣。有的做了私有雲,有的做了公有雲,OpenStack已經成為開源雲平台的事實标準。

1.9 IaaS,�0�2資源層面的靈活性

随着OpenStack的技術越來越成熟,可以管理的規模也越來越大,并且可以有多個OpenStack集群部署多套,比如北京部署一套,杭州部署兩套,廣州部署一套,然後進行統一的管理。這樣整個規模就更大了。在這個規模下,對于普通用戶的感知來講,基本能夠做到想什麼時候要就什麼什麼藥,想要多少就要多少。還是拿雲盤舉例子,每個用戶雲盤都分配了5T甚至更大的空間,如果有1億人,那加起來空間多大啊。其實背後的機制是這樣的,分配你的空間,你可能隻用了其中很少一點,比如說它分配給你了5個T,這麼大的空間僅僅是你看到的,而不是真的就給你了,你其實隻用了50個G,則真實給你的就是50個G,随着你文件的不斷上傳,分給你的空間會越來越多。當大家都上傳,雲平台發現快滿了的時候(例如用了70%),會采購更多的服務器,擴充背後的資源,這個對用戶是透明的,看不到的,從感覺上來講,就實現了雲計算的彈性。其實有點像銀行,給儲戶的感覺是什麼時候取錢都有,隻要不同時擠兌,銀行就不會垮。

這裡做一個簡單的總結,到了這個階段,雲計算基本上實現了時間靈活性和空間靈活性,實現了計算,網絡,存儲資源的彈性。計算,網絡,存儲我們常稱為基礎設施Infranstracture, 因而這個階段的彈性稱為資源層面的彈性,管理資源的雲平台,我們稱為基礎設施服務,就是我們常聽到的IaaS,Infranstracture As A Service。

二、雲計算不光管資源,也要管應用

0基礎轉行

有了IaaS,實現了資源層面的彈性就夠了嗎?顯然不是。還有應用層面的彈性。這裡舉個例子,比如說實現一個電商的應用,平時十台機器就夠了,雙十一需要一百台。你可能覺得很好辦啊,有了IaaS,新創建九十台機器就可以了啊。但是90台機器創建出來是空的啊,電商應用并沒有放上去啊,隻能你公司的運維人員一台一台的弄,還是需要很長時間才能安裝好的。雖然資源層面實現了彈性,但是沒有應用層的彈性,依然靈活性是不夠的。

有沒有方法解決這個問題呢?于是人們在IaaS平台之上又加了一層,用于管理資源以上的應用彈性的問題,這一層通常稱為PaaS(Platform As A Service)。這一層往往比較難理解,其實大緻分兩部分,一部分我稱為你自己的應用自動安裝,一部分我稱為通用的應用不用安裝。

我們先來說第一部分,自己的應用自動安裝。比如電商應用是你自己開發的,除了你自己,其他人是不知道怎麼安裝的,比如電商應用,安裝的時候需要配置支付寶或者微信的賬号,才能别人在你的電商上買東西的時候,付的錢是打到你的賬戶裡面的,除了你,誰也不知道,所以安裝的過程平台幫不了忙,但是能夠幫你做的自動化,你需要做一些工作,将自己的配置信息融入到自動化的安裝過程中方可。比如上面的例子,雙十一新創建出來的90台機器是空的,如果能夠提供一個工具,能夠自動在這新的90台機器上将電商應用安裝好,就能夠實現應用層面的真正彈性。例如Puppet, Chef, Ansible, Cloud Foundary都可以幹這件事情,最 新 的容器技術Docker能更好的幹這件事情,不做技術的可以不用管這些詞。

第二部分,通用的應用不用安裝。所謂通用的應用,一般指一些複雜性比較高,但是大家都在用的,例如數據庫。幾乎所有的應用都會用數據庫,但是數據庫軟件是标準的,雖然安裝和維護比較複雜,但是無論誰安裝都是一樣。這樣的應用可以變成标準的PaaS層的應用放在雲平台的界面上。當用戶需要一個數據庫的時候,一點就出來了,用戶就可以直接用了。有人問,既然誰安裝都一個樣,那我自己來好了,不需要花錢在雲平台上買。當然不是,數據庫是一個非常難的東西,光Oracle這家公司,靠數據庫就能賺這麼多錢。買Oracle也是要花很多很多錢的。然而大多數雲平台會提供Mysql這樣的開源數據庫,又是開源,錢不需要花這麼多了,但是維護這個數據庫,卻需要專門招一個很大的團隊,如果這個數據庫能夠優化到能夠支撐雙十一,也不是一年兩年能夠搞定的。比如您是一個做單車的,當然沒必要招一個非常大的數據庫團隊來幹這件事情,成本太高了,應該交給雲平台來做這件事情,專業的事情專業的人來自,雲平台專門養了幾百人維護這套系統,您隻要專注于您的單車應用就可以了。

要麼是自動部署,要麼是不用部署,總的來說就是應用層你也要少操心,這就是PaaS層的重要作用。

0基礎轉行

雖說腳本的方式能夠解決自己的應用的部署問題,然而不同的環境千差萬别,一個腳本往往在一個環境上運行正确,到另一個環境就不正确了。

而容器是能更好的解決這個問題的。

0基礎轉行

容器是 Container,Container另一個意思是集裝箱,其實容器的思想就是要變成軟件交付的集裝箱。集裝箱的特點,一是封裝,二是标準。

0基礎轉行

在沒有集裝箱的時代,假設将貨物從 A運到 B,中間要經過三個碼頭、換三次船。每次都要将貨物卸下船來,擺的七零八落,然後搬上船重新整齊擺好。因此在沒有集裝箱的時候,每次換船,船員們都要在岸上待幾天才能走。

0基礎轉行

有了集裝箱以後,所有的貨物都打包在一起了,并且集裝箱的尺寸全部一緻,所以每次換船的時候,一個箱子整體搬過去就行了,小時級别就能完成,船員再也不用上岸長時間耽擱了。

這是集裝箱“封裝”、“标準”兩大特點在生活中的應用。

0基礎轉行

那麼容器如何對應用打包呢?還是要學習集裝箱,首先要有個封閉的環境,将貨物封裝起來,讓貨物之間互不幹擾,互相隔離,這樣裝貨卸貨才方便。好在 Ubuntu中的LXC技術早就能做到這一點。

封閉的環境主要使用了兩種技術,一種是看起來是隔離的技術,稱為 Namespace,也即每個 Namespace中的應用看到的是不同的 IP地址、用戶空間、程号等。另一種是用起來是隔離的技術,稱為 Cgroups,也即明明整台機器有很多的 CPU、内存,而一個應用隻能用其中的一部分。

所謂的鏡像,就是将你焊好集裝箱的那一刻,将集裝箱的狀态保存下來,就像孫悟空說:“定”,集裝箱裡面就定在了那一刻,然後将這一刻的狀态保存成一系列文件。這些文件的格式是标準的,誰看到這些文件都能還原當時定住的那個時刻。将鏡像還原成運行時的過程(就是讀取鏡像文件,還原那個時刻的過程)就是容器運行的過程。

有了容器,使得 PaaS層對于用戶自身應用的自動部署變得快速而優雅。


關鍵詞: 0基礎轉行   雲計算培訓   大數據培訓   IT培訓  

雲唯IT實訓 一家對結果負責的IT定崗實訓機構  專注雲計算培訓、大數據培訓的高新IT人才培訓基地

【0基礎 0費用 IT培訓 名企名師 高薪就業】隻專注在IT雲計算培訓,大數據培訓領域。


版權所有Copyright 2014 - 2019

技術支持:北京IT雲計算培訓 網站地圖 XML

本站關鍵字: IT培訓 雲計算培訓 大數據培訓 Web前端培訓 大數據營銷培訓


掃一掃訪問移動端
http://nxosw.juhua774388.cn| http://a6s0.juhua774388.cn| http://bcbjtu4.juhua774388.cn| http://arfto.juhua774388.cn| http://6icfl.juhua774388.cn|