為什么目前的PaaS都沒有成功?兼談云計算的發展方向
從操作系統發展的歷史可以看出,操作系統的最大作用是提供合適的抽象
操作系統是幫我們操控硬件的軟件,它就像是應用程序與硬件的中間者,在兩者之間扮演一個協調、管理的角色。它們的關系如下圖。
操作系統提供了幾個我們熟悉的概念去表示硬件設備,比如進程、虛擬存儲器、文件。它們表示的硬件設備如下圖所示。
可以看出文件是對I/O設備的抽象描述,而虛擬存儲器是對主存和I/O設備的統稱,最后,一個進程在此基礎上又加入了處理器。
但在目前的大規模多機集群的情況下,這個抽象已經失效了
由于摩爾定律的失效,單核CPU的效率無法提升,同時單機IO的無法擴展。但是商業和科研的上的數據需求又不斷的在擴大規模,導致了在服務端越來越依靠不斷的擴大機器規模來解決問題。
但機器規模的擴張僅僅是粗放型的,解決機器、系統、數據之間的協調成為巨大的問題
我們不再像以前那樣,通過shell或者視窗來登陸系統了,我們在手機上登陸的系統,背后的數據來自于一個又一個的大集群
那么,問題來了,目前的操作系統不足以抽象上面的機器
這導致了很多問題,對于程序員而言,我們寫的程序不再能簡單的編寫然后運行了,至少一個大規模的,需要被很多人訪問的系統是這樣的
對于民眾而言,他們不能直接接觸到這個集群,但是過年搶票的痛苦的背后其實來自于系統
新的抽象是云嗎?
這是目前的云計算的抽象圖,雖然看起來很酷,但實際上這個抽象還只是一個藍圖,并沒有像第一幅圖那樣已經實現。
正如微軟的win9,win10試圖用同一個操作系統UI解決手機和PC的問題那樣不切實際一樣,同樣的故事也在云端發生,IaaS提供給用戶的還是傳統的操作系統交互,登陸系統后你還是看到一樣的操作系統shell。
PaaS稍微好一些,PaaS能讓程序員把自己的程序分發部署、運行到集群上,但目前受限于安全性、性能、實現的考慮,用戶能在PaaS系統中獲得的自由非常小,并且又依賴于不同廠商的云實現。
Docker提供了一種思路,就是集裝箱方式來管理程序,或者說,這只是集群中的一項標準
和這個圖片所暗示的一樣,docker僅僅提供了集裝箱的標準,但與之配套的碼頭、裝卸機、中心控制等還沒有建立,這僅僅是個開始。人的自由還非常的小。
我們這個時代有無數的數據,但這些數據卻被禁錮在政府或者大商業公司的機房內,人類的大腦所能接受的數據量是有限的,可以想想目前我們的PC已經實質上性 能過剩了,手機也快了。唯有在云上給出系統的合理抽象,大多人才有機會去操縱和利用這些數據,并進化出我們和這個世界的新的交流方式。