一文讀懂雲計算、大數據、人工智能

最近我們和美國的“貿易戰”打的是如火如荼,這位“推特治國”的川普總統總是給人一種“政治嬰兒,商業天才”的感覺,貿易戰的目的有很大一部分被認爲是遏制“中國製造2025”。中國製造2025是一系列宏偉的計劃,能夠使中國完成民族復興,其中重點發展領域就是信息技術相關的創新產業,具體一點就是目前火爆了的雲計算、大數據、人工智能。Ok,停。我們遇到了裝逼死角,如果有個妹子問:“哥哥,神馬是雲計算、大數據、人工智能啊?你跟人家講講嘛。”望着妹子崇拜的眼神你,那麼。這個時候小編的到來,讓你可以

一、雲計算

話說自然接種的雲是這麼形成的,各種各樣的小水滴凝結成雲,然後共享給大地上的生靈。雲計算的名字就是模仿自然界中雲的形成而來的。它是通過各種方式收集互聯網中的軟硬件資源,然後按照需求共享給各個用戶使用。雲計算主要就是對計算資源進行靈活有效的管理和分配,這些資源主要包含:計算資源、存儲資源、網絡資源三個方面。

那什麼是計算資源、網絡資源、存儲資源呢?比如說你買一臺筆記本,你想用這檯筆記本來看片片(壞笑.jpg)玩大型遊戲,那麼你就需要有一顆強勁的CPU、儘可能大的運行內存和能夠裝的下你慾望的硬盤。那麼CPU就是計算資源,你可能需要主頻高、核心數多的型號。硬盤就是存儲資源,要足夠大盡量的讀寫速度快,能夠滿足你追求“大又快”的需求。而內存是CPU和硬盤之間的橋樑,它的性能制約着整個計算機的性能。但是隻有這些還是不夠的,因爲你如果連一個QQ都上不了,怎麼和妹子聯繫以達到你不可告人的目的呢?你的小片片也得是從網絡上下載不是(當然小編不知道什麼是自拍),這就是網絡資源。

但是物理設備(比如一臺筆記本)是非常缺乏時間靈活性和空間靈活性的。例如:我想現在就買一臺大型服務器,但是採購是需要時間的,買回來之後還需要機房等各種軟硬件環境的部署;後來我又想要一臺很小的電腦,CPU一顆、內存1G、硬盤20G,這樣的電腦現在可能都很難找到地方買。爲了實現按需分配資源的功能有人想出來一個叫“虛擬化”的方法。通俗點講就是準備一臺性能非常強大的計算機(例如64核心的CPU、128G內存、256T的硬盤、10G的網絡帶寬),然後根據用戶的需求,通過虛擬化的隔離技術,從這臺強大的計算機上劃分出一部分一部分形成一臺電腦(比如:2顆CPU、4G內存、500G硬盤、1G帶寬),每個用戶得到的這部分資源完全是透明化的,用戶自己會認爲這就是一臺完整的計算機。軟件虛擬化的過程是非常快的,通常幾分鐘就可以搞定。這樣空間靈活性和時間靈活性就得到了比較好的解決。

不過虛擬化只是在用戶端解決了較好的靈活性,但是在後臺的執行端,工程師們需要手動的進行虛擬機的分配,這個過程相對來說是比較複雜的,而且如果只是幾臺十幾臺的規模,那麼手動分配還可以實現,但是現在的互聯網規模動輒就是上萬臺、幾十萬臺,人工分配顯然已經不可能完成。人們就又想了一個辦法,把所有的計算機在邏輯層面放到一個池子裏,這個池子叫做資源池,然後通過調度算法組建一個調度中心,不管用戶使用使用多少CPU、內存、硬盤、帶寬都可以通過申請由調動中心從資源池中選擇相應的資源組成虛擬機分配給用戶,到此就可以稱作爲雲計算了。當資源池資源不夠用了我們可以再向資源池中接入機房就可以了,而且這些機房可以在世界各地,這一系列操作對用戶來說都是透明的,對工程師來說只要保證調度中心和資源池穩定運行就好。

OK,到目前這個階段我們的雲計算基本實現了時間靈活性和空間靈活性,實現了計算、存儲、網絡等硬件資源的彈性利用。這也就是我們通常所說的基礎設施及服務,IaaS(Infranstracture as a Service)雲。但是人的慾望和惰性是無限,它們兩個一直是人類進步不竭的動力。IaaS雲創建出來的虛擬機都是空的,也就是沒有裝任何軟件甚至是操作系統,如果一個電商公司在雙十一想要突發的增加1000臺機器,那麼他們就必須再手動重新按照配置相應的軟件,這裏面由大量的重複性工作,因爲由很大一部分軟件是通用的。這就像我們買房子,如果用Iaas雲買,就類似買了毛坯房,我們每買一個房子都需要對房子進行刷牆、鋪地板磚等最基礎的操作,但如果是精裝修的房子(通用應用),我們只要按照我們的喜好添置傢俱和一些裝飾品就可以了(差異化應用),省去了很多不必要的麻煩。這樣“精裝修”的房子就類似我們所說的PaaS(Platform as a Service)雲。將一些一般都能用到的軟件和開發環境安裝好提供給用戶,用戶拿到虛擬機之後可以直接或者只需經過很少的部署就可以使用,這就叫平臺及服務。

至此,我們解決了老的問題,新的問題又出現了(慾望啊慾望、懶惰啊懶惰),在實際應用中,我們的運行環境紛繁複雜、新舊版本交錯,使我們部署自己的應用時經常出錯,即便時使用腳本進行自動化部署,但是隻要時部署環境有一丁點不同,就可能產生部署錯誤。於是我們引入了容器(Container)的概念。Container有集裝箱的意思,集裝箱的特點是標準(方方正正)、封裝(與外界隔離)。

在沒有集裝箱的時代,船員們在碼頭換船的時候都需要把物品全都搬下來,散落一地,然後再搬到另一個船上,而另一個船的構造能不能合理的放下這些物品還不一定,有了集裝箱之後,所有的東西裝成一個個集裝箱,每個船隻再儘量設置成符合放集裝箱的結構,這樣換船的時候直接從一個船搬到另一個船就好了,方便快捷。

我們的自主應用要實現這樣的形勢,就需要先將應用所需的基本環境和文件、數據等信息打包封裝,與其他信息隔離,把這些封裝好的信息做成“鏡像”,鏡像就類似在集裝箱關上門的那一刻,孫悟空喊了一聲“定”,把這些內容都保存在了這一刻,使這些容器不管放到什麼環境下都是相同的內容。

容器太多也是雜亂無章,相應的又出現了一些對容器自動化部署、擴展、管理的平臺軟件。

雲計算髮展至此已經基本能夠滿足我們的需求了,從計算機誕生開始出現了很多軟硬件的商業公司,IBM這些靠硬件成長起來的公司至今依然是世界的龍頭,虛擬技術興起後,像VMware這樣的公司也是賺的盆滿鉢滿。但軟件不像硬件需要特別大的投資和非常雄厚的基礎,VMware公司的軟件是閉源的,也就是軟件的源代碼只有我自己知道,別人都不知道,誰用我的軟件誰就像我付錢,只要軟件成熟之後基本是一本萬利的,當然軟件的研發也不是輕而易舉的,有點類似於近來電影《我不是藥神》裏面的神藥。不過軟件技術遠不如研究新藥那麼難和耗時長,並且這個世界上有很多追求平等自由的人,有一些技術大牛看不慣一些資本家的壟斷,認爲軟件應該是全世界人類智慧的結晶,應該服務於全人類,所以這些大牛就自己開發出來一些軟件,並且公佈到互聯網上,共大家免費自由使用。這些軟件就被成爲開源軟件,當然現在很多軟件的開源原因很複雜,有得是爲了情懷,有得是爲了競爭,有得是爲了賺更多的錢。

從硬件到虛擬化,從虛擬化到雲計算,從雲計算到容器再到容器的集羣,我們偉大的軟件工程師們開發了一系列的開源軟件,虛擬化的有Xen、KVM、雲計算有openstack、容器有docker

容器集羣有kubernetes,衆所周知這些軟件都需要運行在一個操作系統之上,而開源操作系統Linux一經誕生,就技驚四座,以其小巧精湛、低成本、強穩定以及良好的移植和定製的特性,在全世界小到嵌入式設備大到超級計算機和成千上萬的計算機集羣90%以上都在使用它。所以良好的掌握Linux是從事雲計算行業的基礎和關鍵。

二、大數據

雲計算主要集中在計算,而我們計算的東西叫什麼呢?這個就是數據,究竟什麼是數據,好像沒有一個確切的定義,廣義上來說,我們現實世界的事物抽象成的邏輯符號就叫做數據。數據是不具備任何含義的,比如“165”我們可以說它是一個數也可以說它是三個數,但它什麼意思都表達不出來,如果我們把“165”加工一下變成“165cm”就變成一個長度了,這個“165cm”就叫做信息。信息對我們來說是有意義的,不過計算機當中存放的時候信息就又變成數據了。信息雖然對我們有意義,但是用處太小或者信息太雜亂,我們根本無從下手,如果我們把信息整理歸納總結,梳理成冊,就變成了知識。知識對我們來說就有意義的多了,我們從小到大上學就是爲了學習知識對吧,知識是人類進步的糧食。但是知識只有運用得當才能變成智慧,趙括就是隻有知識沒有智慧的人,而王陽明就是集天下之大成的智者。知識的運用叫做經驗,經驗和知識相輔相成不可偏廢,只有經驗沒有知識只能是低層次,只有知識沒有經驗只會是空中樓閣,不過有了經驗去學知識較難,有知識後去學經驗易。


  收集 

  運用 
  總結 
  加工 


那麼大數據是怎樣的呢?簡單的理解大數據就是體量非常非常巨大的數據。這麼大量的數據我們放着不用是非常愚蠢和可恥的,所以大數據技術也可以簡單的說成是將海量的數據轉換成智慧的這樣一個循環。通常我們需要這樣幾個步驟:

1.        數據收集:一種方式是通過爬取將互聯網上的所有信息都下載到一個數據中心;另一種是通過各種傳感器(物聯網的概念)收集現實世界中的各種各樣的數據(比如:溫度、心跳等等);

2.        數據存儲:收集到的數據需要根據一定的規則進行存儲下來,數據有得是具有一些共同的特點(比如各種表格)的被稱作結構化數據,還有很多沒有共同特點的叫做非結構化數據,這些所有的數據必須有效的存儲下來才能夠進行數據的二次利用(比如搜索);

3.        數據處理和分析:我們從各個渠道保存下來的原始數據都是雜亂無章的,有的有用、有的沒用、有的不知道有沒有用,所以我們要對原始數據進行清洗、過濾、分類等一系列操作,得到數據之間的相互關係和相互作用。比如沃爾瑪超市就在大量購買數據中發現人們買男士用品的時候經常會買一包兒童紙尿褲,所以它們就把這兩類商品放到一塊兒,提高了用戶的購買效率;

4.        數據檢索和挖掘:這一步是在上一步的基礎上進行更深入的探索,並且把結果放到互聯網上共人們使用。比如金融行業需要在海量的交易和其他相關信息中分析出股市甚至是某種股票的漲跌,這需要更多專業的分析,如果出錯率很大,別人就不會爲你的服務付費了。

這麼大量的數據需要經過這麼多步驟的運算,一臺機器明顯是不夠的,得需要成千上萬條機器,但是大數據的分析並不一定是每時每刻都在做的,比如我是一家財務公司,可能我一週只需要進行一次數據分析,而其他時間不需要這麼大量的計算機,那豈不是造成了很大的浪費,怎麼辦纔好呢?大家想到了把,就是雲計算,雲計算在這裏就可以很好的和大數據融合了。

三、大數據

前兩天小編的同事小劉問小編你知道什麼車最貴嗎?小編這麼窮怎麼可能知道,然後他就說不是蘭博基尼不是勞斯萊斯而是女朋友的購物車。據悉他幫女朋友清理了一下網上的購物車,差點給清理破產了。這就是商家奸詐的地方了,女人好像天生對購物時0抵抗力,他女友在買任何東西的時候都會收到一系列相關的推薦,比如你想買一輛單車去騎行窮遊最後可能買了一艘遊艇去夏威夷自駕,買不起沒關係,還有駭人聽聞的親密付功能。小劉感嘆怎麼收集比他自己還了解他女朋友啊。這就是人工智能的初步體驗了。提起人工只能你的印象是這個?這個?還是這個。沒錯,這也許是我們想象中的人工智能該有的樣子(奧創好像有點跑偏了),其實人工智能的概念早在二戰之前就提出了,人工智能之父圖靈就提出過著名的圖靈測試方法來驗證機器是否具有智能的特點。人工很好理解就是人爲造的,但是智能很難解釋清楚,它包含了太多的東西諸如意識、自我、心靈、無意識的精神等等,我們人類自己的智能都還沒有研究清楚,所以說人工智能究竟能發展到何種程度目前還是個未知數。但是讓機器模仿人類的行爲、部分思考方式,利用演繹和推理解決實際問題還是可以實現的。

怎樣讓機器具有這樣的演繹、推理的功能呢?最主要的是算法,我們現在的計算機通過各種算法能夠證明數學公式了,但是數學推理由非常嚴謹的推理過程,是可以程序化的,但我們平時的生活就沒有那麼嚴謹了,比如“夏天能穿多少穿多少,冬天也是能穿多少穿多少”,這個機器就很難理解是什麼意思了。所以機器只進行邏輯推理還是不夠的,我們要交給它一些知識,不過教給計算機知識就太難了,得是語言專家才行,必須把語言的結構、語法、使用習慣等等都做成公式交給計算機,但是即便是這樣也是不行的,因爲平時的生活中語言太千變萬化了,沒有人平時說話時嚴格按照語法來說的,並且還充斥着各種各樣的方言和俚語,是不可能都教給計算機的。

既然教不會就讓計算機自己學吧,怎麼學習呢?一般簡單的是通過統計學,把收集來的信息進行歸納總結髮現一定的規律,例如計算機作詞:

我們隨便寫一串數字,然後按照數位依次在形容詞、名詞和動詞中取出一個詞,然後稍作加工就能變成:,這樣是不是有點意思了,當然真正的學習算法要複雜的多。還有很多模仿人腦的算法例如人工神經網絡和深度學習算法等,人類的腦子裏面不是存儲着大量的規則,也不是記錄着大量的統計數據,而是通過神經元的觸發實現的,每個神經元有從其它神經元的輸入,當接收到輸入時,會產生一個輸出來刺激其它神經元。於是大量的神經元相互反應,最終形成各種輸出的結果。當某些男人看到美女瞳孔會放大,絕不是大腦根據身材比例進行規則判斷,也不是將人生中看過的所有的美女都統計一遍,而是神經元從視網膜觸發到大腦再回到瞳孔。在這個過程中,其實很難總結出每個神經元對最終的結果起到了哪些作用,反正就是起作用了。如果你這次看見美女瞳孔沒有放大,讓美女和其他人跑了,你就會對策略進行微調,下次就不會這麼做了,當然運用到計算機上這些調整的策略還是非常有技巧的,需要算法的高手來仔細的調整。

人工智能說到底也都是一些列的算法和算法自己產生的算法,這些算法是需要數據作爲養料進行餵養的,對於好的算法來說,數據量越大可能產生的結果就越正確,就像alphgo要經過無數次的對弈才能提高自己的水平一樣。並且人工智能對應的算法是相當複雜和龐大的,單臺計算機是不可能在短時間內完成的,所以人工智能就和雲計算大數據緊密的結合在了一起。

我們上面說過人工智能的算法非常的複雜,那麼對程序員來說要通過編程實現這樣的算法就會非常耗時,如果使用語法嚴格限制較多的語言編寫會很難實現,程序員的負擔也會非常大,在上世紀90年代出現的Python語言以其簡潔的語法、強大的第三方庫使它編程效率極高,在人工智能領域大放異彩。

四、如何學習雲計算、大數據、人工智能

在貿易戰、世界經濟復甦撲朔迷離的大環境下,如何使自己今後立於不敗之地,那麼學習Linux運維、雲計算、大數據、Python開發就會是一個非常好的選擇,大學裏面學這些課程需要四年啊,我們去哪裏學呢?對,就是馬哥教育!

馬哥教育全稱北京馬哥教育科技有限公司,於2007年由馬哥正式創辦,歷經十年發展,以“匠心精神,良心教育”爲宗旨,以國際“MVP”體系爲標準,培養了數萬名資深、專業的高端IT人才,80%以上學員在互聯網排名前300的企業高薪就業,擁有Linux運維、Python開發、雲計算等多個高端學科。憑藉馬哥教育職業IT培訓的高品質和畢業學員的良好口碑,其已經成爲業內知名互聯網公司重要人才戰略合作伙伴,獲得了百度、騰訊、阿里、中興、科大訊飛、大衆點評、51CTO、唯品會、京東、中國移動、 新浪、紅帽等互聯網巨頭的人才合作支持,2013年成爲51CTO官方推薦合作機構,與多家IT互聯網企業簽訂專項人才培養計劃,畢業學員平均薪資達10K以上。

 


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