雲計算、大數據、人工智能整合:是相遇、相識到相知

  一談雲計算的時候會提到大數據、談人工智能的時候會提大數據、談人工智能的時候會提雲計算……感覺三者之間相輔相成又不可分割。

  但如果是非技術的人員,就可能比較難理解這三者之間的相互關係,所以有必要解釋一下。

  雲計算最初的目標

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

  管數據中心就像配電腦

  什麼叫計算、網絡、存儲資源?

  比如你要買檯筆記本電腦,是不是要關心這臺電腦是什麼樣的 CPU?多大的內存?這兩個就被我們稱爲計算資源。

  這臺電腦要上網,就需要有個可以插網線的網口,或者有可以連接我們家路由器的無線網卡。

  您家也需要到運營商比如聯通、移動或者電信開通一個網絡,比如 100M 的帶寬。然後會有師傅弄一根網線到您家來,師傅可能會幫您將您的路由器和他們公司的網絡連接配置好。

  這樣您家的所有的電腦、手機、平板就都可以通過您的路由器上網了。這就是網絡資源。

  您可能還會問硬盤多大?過去的硬盤都很小,大小如 10G 之類的;後來即使 500G、1T、2T 的硬盤也不新鮮了。(1T 是 1000G),這就是存儲資源。
雲計算、大數據、人工智能整合:是相遇、相識到相知

  對於一臺電腦是這個樣子的,對於一個數據中心也是同樣的。想象你有一個非常非常大的機房,裏面堆了很多的服務器,這些服務器也是有 CPU、內存、硬盤的,也是通過類似路由器的設備上網的。

  這時的問題就是:運營數據中心的人是怎麼把這些設備統一的管理起來的呢?

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

  管理的目標就是要達到兩個方面的靈活性。具體哪兩個方面呢?

  舉個例子來理解:比如有個人需要一臺很小的電腦,只有一個 CPU、1G 內存、10G 的硬盤、一兆的帶寬,你能給他嗎?

  像這麼小規格的電腦,現在隨便一個筆記本電腦都比這個配置強了,家裏隨便拉一個寬帶都要 100M。然而如果去一個雲計算的平臺上,他想要這個資源時,只要一點就有了。

  這種情況下它就能達到兩個方面的靈活性:

  時間靈活性:想什麼時候要就什麼時候要,需要的時候一點就出來了。

  空間靈活性:想要多少就有多少。需要一個空間很小的電腦,可以滿足;需要一個特別大的空間例如雲盤,雲盤給每個人分配的空間動不動就很大很大,隨時上傳隨時有空間,永遠用不完,也是可以滿足的。

  空間靈活性和時間靈活性,即我們常說的雲計算的彈性。而解決這個彈性的問題,經歷了漫長時間的發展。

  物理設備不靈活

  第一個階段是物理設備時期。這個時期客戶需要一臺電腦,我們就買一臺放在數據中心裏。

  物理設備當然是越來越牛:

  例如服務器,內存動不動就是百 G 內存。

  例如網絡設備,一個端口的帶寬就能有幾十 G 甚至上百 G。

  例如存儲,在數據中心至少是 PB 級別的(一個 P 是 1000 個 T,一個 T 是 1000 個 G)。

  然而物理設備不能做到很好的靈活性:

  首先是它缺乏時間靈活性。不能夠達到想什麼時候要就什麼時候要。比如買臺服務器、買個電腦,都要有采購的時間。

  如果突然用戶告訴某個雲廠商,說想要開臺電腦,使用物理服務器,當時去採購就很難。與供應商關係好的可能需要一個星期,與供應商關係一般的就可能需要採購一個月。

  用戶等了很久電腦纔到位,這時用戶還要登錄上去慢慢開始部署自己的應用。時間靈活性非常差。
雲計算、大數據、人工智能整合:是相遇、相識到相知

  其次是它的空間靈活性也不行。例如上述的用戶需要一個很小很小的電腦,但現在哪還有這麼小型號的電腦?不能爲了滿足用戶只要一個 G 的內存、80G 硬盤的,就去買一個這麼小的機器。

  但是如果買一個大的,又會因爲電腦大,需要向用戶多收錢,可用戶需要用的只有那麼小一點,所以多付錢就很冤。

  虛擬化靈活多了

  有人就想辦法了。第一個辦法就是虛擬化。用戶不是隻要一個很小的電腦麼?

  數據中心的物理設備都很強大,我可以從物理的 CPU、內存、硬盤中虛擬出一小塊來給客戶,同時也可以虛擬出一小塊來給其他客戶。

  每個客戶只能看到自己的那一小塊,但其實每個客戶用的是整個大的設備上的一小塊。

  虛擬化的技術使得不同客戶的電腦看起來是隔離的。也就是我看着好像這塊盤就是我的,你看着這塊盤就是你的,但實際情況可能我的這個 10G 和你的這個 10G 是落在同樣一個很大很大的存儲上。

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

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

  虛擬世界的賺錢與情懷

  在虛擬化階段,最牛的公司是 VMware。它是實現虛擬化技術比較早的一家公司,可以實現計算、網絡、存儲的虛擬化。

  這家公司很牛,性能做得非常好,虛擬化軟件賣得也非常好,賺了好多的錢,後來讓 EMC(世界五百強,存儲廠商第一品牌)給收購了。

  但這個世界上還是有很多有情懷的人的,尤其是程序員裏面。有情懷的人喜歡做什麼事情?開源。

  這個世界上很多軟件都是有閉源就有開源,源就是源代碼。也就是說,某個軟件做的好,所有人都愛用,但這個軟件的代碼被我封閉起來,只有我公司知道,其他人不知道。

  如果其他人想用這個軟件,就要向我付錢,這就叫閉源。但世界上總有一些大牛看不慣錢都讓一家賺了去的情況。大牛們覺得,這個技術你會我也會;你能開發出來,我也能。

  我開發出來就是不收錢,把代碼拿出來分享給大家,全世界誰用都可以,所有的人都可以享受到好處,這個叫做開源。

  比如最近的蒂姆·伯納斯·李就是個非常有情懷的人。2017 年,他因“發明萬維網、第一個瀏覽器和使萬維網得以擴展的基本協議和算法”而獲得 2016 年度的圖靈獎。

  圖靈獎就是計算機界的諾貝爾獎。然而他最令人敬佩的是,他將萬維網,也就是我們常見的 WWW 技術無償貢獻給全世界免費使用。

  我們現在在網上的所有行爲都應該感謝他的功勞,如果他將這個技術拿來收錢,應該和比爾蓋茨差不多有錢。

  開源和閉源的例子有很多:例如在閉源的世界裏有 Windows,大家用 Windows 都得給微軟付錢;開源的世界裏面就出現了 Linux。

  比爾蓋茨靠 Windows、Office 這些閉源的軟件賺了很多錢,稱爲世界首富,就有大牛開發了另外一種操作系統 Linux。

  很多人可能沒有聽說過 Linux,很多後臺的服務器上跑的程序都是 Linux 上的,比如大家享受雙十一,無論是淘寶、京東、考拉……支撐雙十一搶購的系統都是跑在 Linux 上的。

  再如有 Apple 就有安卓。Apple 市值很高,但是蘋果系統的代碼我們是看不到的,於是就有大牛寫了安卓手機操作系統。

  所以大家可以看到幾乎所有的其他手機廠商,裏面都裝安卓系統。原因就是蘋果系統不開源,而安卓系統大家都可以用。

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

  虛擬化的半自動和雲計算的全自動

  要說虛擬化軟件解決了靈活性問題,其實並不全對。因爲虛擬化軟件一般創建一臺虛擬的電腦,是需要人工指定這臺虛擬電腦放在哪臺物理機上的。

  這一過程可能還需要比較複雜的人工配置。所以使用 VMware 的虛擬化軟件,需要考一個很牛的證書,而能拿到這個證書的人,薪資是相當高,也可見其複雜程度。

  所以僅僅憑虛擬化軟件所能管理的物理機的集羣規模都不是特別大,一般在十幾臺、幾十臺、最多百臺這麼一個規模。

  這一方面會影響時間靈活性:雖然虛擬出一臺電腦的時間很短,但是隨着集羣規模的擴大,人工配置的過程越來越複雜,越來越耗時。

  另一方面也影響空間靈活性:當用戶數量多時,這點集羣規模,還遠達不到想要多少要多少的程度,很可能這點資源很快就用完了,還得去採購。

  所以隨着集羣的規模越來越大,基本都是千臺起步,動輒上萬臺、甚至幾十上百萬臺。如果去查一下 BAT,包括網易、谷歌、亞馬遜,服務器數目都大的嚇人。

  這麼多機器要靠人去選一個位置放這臺虛擬化的電腦並做相應的配置,幾乎是不可能的事情,還是需要機器去做這個事情。

  人們發明了各種各樣的算法來做這個事情,算法的名字叫做調度(Scheduler)。

  通俗一點說,就是有一個調度中心,幾千臺機器都在一個池子裏面,無論用戶需要多少 CPU、內存、硬盤的虛擬電腦,調度中心會自動在大池子裏面找一個能夠滿足用戶需求的地方,把虛擬電腦啓動起來做好配置,用戶就直接能用了。

  這個階段我們稱爲池化或者雲化。到了這個階段,纔可以稱爲雲計算,在這之前都只能叫虛擬化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章