分布式入門菜鳥的一些思考,各位大神發現錯誤歡迎指正!
這些天自己看了一些有關分布式和云相關的資料,也正在著手想玩玩Hadoop,Storm和Spark這些開源分布式的平臺。但在此之前做為小白的我(現在也是小白,只是看了幾天書對概念架構有了一定的了解),一直認為分布式就幾乎等于云,他倆之間幾乎是相等的關系。的確不可否認,分布式和云之間有著很大的關系,但是其實又是完全不同的兩個東西。從兩種東西的屬性來說就不同。
分布式是已經逐漸成熟的一種技術,對應的每一種概念,都以具體技術的形式體現出來。對于hadoop來說,hdfs管理著分布式的存儲,mapreduce做為開發架構方便程序員對大數據進行開發和處理,還有Hive,zookeeper等除Apache之外其他公司提供的一些工具,這些種種工具形成了一個大的分布式的產業鏈,能夠實在的解決很多因為數據量過大難以解決的問題。
說到數據量大的問題,突然想到前段時間的一個新聞,阿里巴巴最后一臺小型機正式下線。意味著阿里走向了完全分布式的時代。從有計算機到現在,人們就一直為解決數據處理的問題發愁,剛開始人們的思路是將茫茫多的數據移動到一臺機器上進行處理,并希望CPU的能力越來越強大,內存越來越大,硬盤也能越來越大。。。但是這一切并不隨人愿,剛開始內存從32k升級到64k簡直是簡單,成本不高,但是到后來逐漸發現,當內存從128g升級到256g的時候所需要的開銷簡直不能再大,cpu等各個部件的升級已經跟不上人們所期望的計算機對數據的處理速度。但是從另一方面來說這也促進了CPU,內存,硬盤的發展。后來谷歌(因該是谷歌最先提出的)開始轉換思路,并不一位追求機器的高性能,而是希望將多臺機器聯合起來發揮性能。從計算機方面來說,這是創新的一步,但是從正常人的生活經驗來說,這是再正常不過的思路,群毆總比單干要爽得多。所以分布式也就在谷歌的三篇論文的影響下發展起來了。
相比較而言,云現在來說其實更多的就是框架和概念,實際被落實應用的很少,有一個部分已經落實并有了很大的前景,那就是VMware。啥?這不就是虛擬機么?沒錯,就是虛擬機,現在云很大情況下就是虛擬機的概念,比如阿里云和Amazon提供的云服務,在你選擇購買方案的時候會提供你多種配置,會詢問你是要幾個CPU核數,要多大的內存,以及多大的硬盤空間,其實這不就相當于在自己電腦上安裝一個虛擬機,然后讓你設置各種參數一樣嗎?查詢了一下價格發現,我去四核以上貴的要死,內存8g簡直逆天,一個月租下來的費用能換幾個Mac。。。但是要知道相比之前的IOE(IBM,Oracle,E。。忘了)架構已經便宜了太多,IOE架構不夸張動輒幾百萬,而且還不算雇傭費用,維修費用等等。有了AWS和阿里云之后,中小型公司就不需要雇傭大量的服務器管理員管理服務器,因為這些公司可以將Web等一些服務放在阿里、亞馬遜,服務器可以由它們統一管理,有了它們甚至不用擔心服務器的安全因為有什么問題供應商可以解決,而且一旦中招倒霉的肯定也不是你一個。。這也就是現在被提及的去IOE化,其實也可以算是省錢計劃。。。
再說一下百度云,其實這個云真的不是什么了不起的東西,其實從思想上來說用到的就是分布式存儲,以及一些云端查詢計算功能,如果發現你上傳的內容已經存在,那就根本不需要你上傳文件了,給你個索引放在你的目錄下點擊就能下載了,縱使你把某些奇奇怪怪的文件改個名字還是能被查出來,這有賴于百度云里的文件檢查機制,但是你用格式工廠轉換個格式再上傳那就被認為是新文件。所以從某種程度上說百度云其實并沒有什么隱私,至少技術上沒有隱私,你存的其實都是索引。
說了分布式和云,那么兩者之間存在怎么樣的關系呢?其實通過我上面兩段的講述分布式和云是兩個相反的思想,分布式是要將多個小型機的能力聚集起來形成一個大的資源池,云的思想從當下服務來看,是將大的資源池分給各個用戶。說兩者不想管不可能,因為現在想要把資源池做大都借助于分布式的技術;但是說相等或者近似相等也是不可以的,因為本質上,云是概念,一個大的概念下需要有多種技術的支撐,分布式可以說是眾多技術中至關重要的一個,實現云海需要各種大數據分析方法,智能算法等等。。。