雲計算的未來暢想(二)
人類未來最大的矛盾,是日益增長的數據處理與有限算力之間的矛盾,雲計算的本質不就是計算資源與存儲資源,如果最終用戶那裡也有可以使用的計算資源或者存儲資源,為什麼不能利用起來呢?
2016年10月,阿里雲宣布全面下調中國區的雲產品價格,最高降幅達50%,這是阿里雲一年內的第17次下調價格,就在大家擔心這次降價是否會引起雲計算的價格戰的時候,出現了一條有意思的新聞:
中國經濟網評論員張捷在《我財經》節目中表示,這個現象反映出更深層次的問題,我國政策制定者要多想想。雲計算是利用客戶電腦的富裕資源去計算的,裝了各種軟體以後,原來做點文字處理,電腦的空閑度70%,忙度在30%,現在的基本上電腦忙度都是在70%以上,多出來的這些都是被用來做雲計算還不知道。中國電腦多,有關的法律門檻限制是最少的,成本就低,國外的法律限制多,肯定成本就高。
張捷指出,以前利用客戶電腦富餘的能力,給別人做運算又不讓客戶完全知道,客戶收不著費,也分不著錢,我們把它叫做流氓軟體。現在叫做雲計算了,外國有些地方會有法律的限制,必須給客戶分錢,但是在中國有些公司用別人電腦的資源進行雲服務的時候,並沒有給用戶分什麼錢,這也是為什麼成本低且能降價的原因。
——新聞內容來源於網路
懂的人有些笑笑也就過去了,部分人還會轉發一下朋友圈,表達一下嘲諷;不懂的人也不知道咋回事,信以為真的應該也不少。
但是,回頭一想,雲計算的本質不就是計算資源與存儲資源,如果最終用戶那裡也有可以使用的計算資源或者存儲資源,為啥不利用起來呢?
不是不可以,我們先看兩個概念:
分散式計算
分散式計算是一種計算方法,和集中式計算是相對的。
隨著計算技術的發展,有些應用需要非常巨大的計算能力才能完成,如果採用集中式計算,需要耗費相當長的時間。分散式計算將該應用分解成很多小部分,分配給多台計算機進行處理。這樣可以節約整體計算時間,大大提高計算效率。
並行計算
並行計算或稱平行計算是相對於串列計算來說的。它是一種一次可執行多個指令的演算法,目的是提高計算速度,及通過擴大問題求解規模,解決大型而複雜的計算問題。
所謂並行計算可分為時間上的並行和空間上的並行。時間上的並行就是指流水線技術,而空間上的並行則是指用多個處理器並發的執行計算。
可以看到,並行計算也是分散式計算,但是比分散式計算要求更高而已。
分散式計算求的是計算資源最大化,並行計算看重計算效率最高。如果只是想利用用戶手中的客戶端計算資源的分散式計算早就已經存在了。
SETI@home程序在用戶的個人計算機上,通常在屏幕保護模式下或後台模式運行。它利用的是多餘的處理器資源,不影響用戶正常使用計算機。SETI@home項目自1999年5月17日開始正式運行。至2004年5月,累積進行了近5×10E21次浮點運算,處理了超過13億個數據單元,截至 2005 年關閉之前,它已經吸引了 543 萬用戶,這些用戶的電腦累積工作 243 萬年,分析了大量積壓數據。
SETI@home是一項利用全球聯網的計算機共同搜尋地外文明(SETI)的科學實驗計劃,由美國著名高等學府加州大學伯克利分校創立,中心平台設立在伯克利空間科學實驗室(Space Sciences Laboratory, SSL)。志願者可以通過運行一個免費程序下載並分析從射電望遠鏡傳來的數據來加入這個項目。
更多了解,可以查看該項目官網 SETI@home
你看到了,只有用戶自願,並通過一個小程序載入一定的數據量,就可以做一些簡單的分散式計算了,而且這裡的分散式計算比大規模的集中式並行雲計算髮生的更早。
除了尋找外星人和引力波,還有更為腳踏實地的分散式計算項目。解決較為複雜的數學問題,例如:GIMPS(尋找最大的梅森素數)。研究尋找最為安全的密碼系統,例如:RC-72(密碼破解)。生物病理研究,例如:Folding@home(研究蛋白質摺疊,誤解,聚合及由此引起的相關疾病)。各種各樣疾病的藥物研究,例如:United Devices(尋找對抗癌症的有效的藥物)。研究艾滋病的生理原理和相關藥物的FightAIDS@home等等。
這種分散式計算技術的發展,也慢慢的形成標準化的平台服務,如BOINC,World Community Grid (簡稱WCG)等分散式計算平台,可以讓更多的人感受到分散式計算的好處。
BOINC 是 Berkeley OpenInfrastructure for Network Computing 的首字母縮寫,即伯克利開放式網路計算平台,是用於志願計算和網格計算的開放的中間件系統。BOINC 最早就是為了支持 SETI@home 項目而開發的,之後逐漸成了最為主流的分散式計算平台,為眾多的數學、物理、化學、生命科學、地球科學等學科類別的項目所使用。BOINC 的開發目的是為了幫助研究人員更方便地獲得分布在世界各地的志願者的計算資源。BOINC 的前景非常可觀,有可能發展成一種業界標準,有了 BOINC 平台,分散式計算的開發和推廣工作變得更加容易簡便。而統一的界面,統一的方式將會大大方便新加入分散式計算的用戶,而不必研究每個不同項目的參與方法、積分演算法等。BOINC已經成熟,目前有上百個項目已經成功運行於BOINC平台之上。
World Community Grid (簡稱WCG)是一個分散式計算平台,它允許您參與到多個項目的研究中去。研究組織可以在項目申請頁面提交自己的研究課題以便從 World Community Grid 處獲得免費的計算資源。 World Community Grid利用計算機的閑置計算能力,來進行一些有益於全人類的工程。藉助於屏幕保護程序,網格技術將更加易用、安全、自由。當您需要使用您的計算機時,網格計算軟體將自動停止運行直到您的計算機再次進入閑置狀態。它是一項全球博愛事業(由 IBM 和一些科研、慈善、教育組織發起),將個人和商業計算機中未使用的計算能力用於博愛事業。
這類分散式計算基本上有一些共同的特性,比如任務容易切片、下發與回收,對最終計算時間要求沒那麼高,計算之間的實時性、關聯性並不強,最後通過客戶端的程序(如屏保)來實現在個人電腦上的分散式計算,而不是真正的強關聯,實時性高的並行計算。目前以上的分散式計算都是公益性質的,也就是說,並沒有拿用戶的計算資源來賺取利潤。
但是,目前的雲計算,包括AWS,阿里雲等等,提供的是並行雲計算,追求的不僅僅是分散式,而且還有運行效率保障,運行環境的高可用等等。
這種分散式計算有沒有可能性發展成為目前的並行雲計算呢?隨著技術的進步,理論上可以解決這樣的問題,只是用戶是否願意,解決這個問題的技術是否成熟,成本是否划算。
如果技術的進步,能利用用戶手裡的計算與存儲資源做到真正的並行計算,就可以把全世界的計算資源有效的利用起來,從而實現全民雲計算。當然,這種模式的基礎還是需要最終用戶的許可,如果最終用戶在不知情的情況下被利用,那往往就真是流氓軟體,或者是病毒了,如被用於DoS攻擊的殭屍電腦(Zombie computer),簡稱「殭屍(zombie)」,有些人稱之為「肉雞」,接入互聯網的電腦被病毒感染後,受控於黑客,可以隨時按照黑客的指令展開拒絕服務(DoS)攻擊或發送垃圾信息。
我們再思考一個問題,為什麼現在的雲計算廠商要提供可擴展的公共雲計算服務,甚至我們剛才還在設想利用所有的可利用的計算與存儲資源,實現真正的全民雲計算?
原因只有一個,擔心本地計算資源的不夠,甚至是本地私有雲,資源也是有上限的,而公共雲計算資源,甚至全民雲計算資源是極其豐富並且是彈性可擴展的。
就算我們現在造出了計算能力與存儲能力足夠強大的計算機,感覺只要他的計算能力與存儲能力足夠強大,就可以不需要公共雲計算了。這是一個非常美好的願景,但是,不要忘記了一件事情,計算與存儲的需求也是無限的往上擴張的。哪一天,當一台計算機,甚至一個本地集群(私有雲)也無法無法滿足計算與存儲需求的時候,最終還會回到彈性計算的公共雲計算的道路上來!
雲計算與大數據時代,數據也會越來越多,特別是在數據指數級爆發的時候,計算也會越來越複雜。
大劉在《詩云》描述出來的神級文明,想保存用漢語寫下來的所有可能的詩句,就幾乎不得不耗費掉整個太陽,以及吞食帝國所有的資源。再比如,我們在未來的一個時間,為了能複製或者是復活人類,我們肯定會想存儲人身上每個原子的排布位置!就跟人的慾望是無止境的一樣,我們對計算與存儲的需求同樣如此,我從不相信有限的資源能解決無限的需求,而公共雲計算才能解決彈性擴展。
公共雲計算必將長久存在,而且是未來主要的模式。最終兩點總結:
1、將數據逆向發送給客戶終端,利用客戶端剩餘計算能力完成更龐大的分散式計算並不是不可能,已經在很多場合在使用了,隨著技術的進步,這種模式將會越來越廣泛的用於一些專業化的計算,甚至並行雲計算,從而實現真正的全民雲計算。目前是解決日益不足的計算與存儲資源的問題。
2、就算存在私有雲的可能性,與公共雲的連接也必不可少,也就是至少」混合雲「模式是一個可預期的長期存在。就算計算速度與存儲技術的快速發展,也不要指望私有雲能承載所有的計算需求,因為計算與存儲需求本身也是在快速增長的,公共雲計算必不可少,而且是未來趨勢。
推薦閱讀:
※雲計算如果真的成熟了,還會有獨立的操作系統么?或者說,還會有人賣獨立的操作系統么?
※為什麼說華為的雲計算業務必將成功?
※Salesforce 為什麼能夠在 CRM 市場獲得成功?
※微軟通過裁員加速雲計算轉型:這樣才務實
※AWS在中國正式擁有合法身份(詳見題注),這可能對當前國內雲計算格局造成怎樣的影響?