Docker進入主流,PaaS大有可為
原創(chuàng)【2014年6月10日 51CTO專稿】今天云計算界有兩件大事,都跟輕量級虛擬機Docker相關(guān),一個是Docker經(jīng)過漫長的更新和改進之后,終于發(fā)布了1.0版,雖然在這之前已經(jīng)有很多云計算廠商將它用到生產(chǎn)環(huán)境;另一個是谷歌宣布擁抱Docker,GAE與GCE早已就Docker秘密研發(fā)多時,很快就將有重大發(fā)布,連線將其稱為“云計算的下一件大事”。
筆者認為,這意味著Docker技術(shù)將取代傳統(tǒng)的PaaS容器技術(shù),正式進入主流,Docker也將大幅拓寬PaaS的應(yīng)用范圍,隱隱有取代IaaS之勢。
事實上,在Docker的支持上, 國內(nèi)的云計算廠商并不落于人后,早在Docker發(fā)展處于早期的時候,百度BAE團隊就研究了Docker技術(shù),并在BAE3.0正式采用并推出了商用版,UCloud等也對Docker進行了支持。
為什么Docker如此受歡迎?
這要從PaaS說起。自從云計算被劃分為IaaS、PaaS、SaaS開始,PaaS就陷入一個尷尬的境地,它既不如IaaS那樣靈活而自由,又不如SaaS那樣可以直接推向消費者。有人說PaaS是未來的云計算,但是近幾年IaaS和SaaS各自發(fā)展,反而是PaaS幾乎裹足不前,雖然各種應(yīng)用引擎層出不窮,但是沒有什么人專門為PaaS開發(fā)應(yīng)用。這又是為什么呢?
這要歸罪于傳統(tǒng)的PaaS容器,傳統(tǒng)的Container技術(shù)存在安全性問題,并不能對應(yīng)用程序和系統(tǒng)、以及應(yīng)用程序之間進行很好的隔離。一些應(yīng)用引擎為了解決這個問題,于是禁用了語言環(huán)境的很多功能,比如SAE就禁用了PHP中的exec等函數(shù),而用SAE獨自的函數(shù)來代替。
這樣就帶來了問題,即在其他環(huán)境中開發(fā)的應(yīng)用無法無痛的移植到這些PaaS平臺中,即使是為了PaaS重新開發(fā)一個應(yīng)用,也無法利用別人開發(fā)好的類庫,這種自廢武功的行為使得PaaS成為雞肋。同時,傳統(tǒng)PaaS容器還有性能問題,創(chuàng)建和銷毀一個容器都需要很多的時間和資源。
為了解決這些問題,2013年3月PaaS廠商dotCloud發(fā)布了Docker.io,一個開源的全新linux輕量級虛擬機技術(shù)。它采用虛擬機技術(shù)來對資源進行隔離,顯著提升了性能,并且大大改進了部署應(yīng)用的便捷性。其中最重要的就是,它不再限制語言的功能了。
從BAE3.0的體驗來看,Docker技術(shù)的確名不虛傳,它采用了一種新的計價方式——執(zhí)行單元,而非CPU時間、發(fā)起連接數(shù)等,這也是因為虛擬機技術(shù)帶來的資源隔離,保證了自己的資源不被其他人所占用。
PaaS的未來
在傳統(tǒng)的容器條件下,雖然PaaS受到種種掣肘,但也是有應(yīng)用場景的。著名技術(shù)博主,曾主持淘寶聚石塔項目改版的陳皓對PaaS有自己的看法。他認為,PaaS需與具體業(yè)務(wù)相結(jié)合,為打造行業(yè)應(yīng)用服務(wù)。如聚石塔就是專為淘寶商家ERP服務(wù)的PaaS平臺,商家可以在這個平臺上開發(fā)和部署私有的ERP系統(tǒng)。其他的一些開發(fā)工具和框架也紛紛研發(fā)PaaS平臺服務(wù),為使用該工具的應(yīng)用提供托管,如國內(nèi)的Hybrid App開發(fā)平臺AppCan,以及跨平臺開發(fā)框架Qt。
而現(xiàn)在有了Docker的加持,PaaS將有更大的發(fā)揮空間,其中一個就是在云計算的基礎(chǔ)領(lǐng)域取代IaaS。目前的IaaS只是取代了傳統(tǒng)的服務(wù)器,其環(huán)境和應(yīng)用的部署與傳統(tǒng)相比差異很小,只是在運維上有很大的改變。PaaS這種開關(guān)式的環(huán)境搭建顯然比IaaS要方便很多,符合技術(shù)發(fā)展的趨勢。如果只是為部署一般應(yīng)用,PaaS足矣,但是IaaS大行其道的原因就是,每個公司都有不同的需求,而有些獨特的需求在模板化的運行環(huán)境中無法支撐。比如目前的BAE3.0的單個執(zhí)行單元無法支撐混合語言環(huán)境,單個執(zhí)行單元的資源有上限等等。
不過這些問題并不是不能解決的,用PaaS+Web API/IaaS的架構(gòu),將超出模板外的需求用Web API來實現(xiàn),如果對資源有需求則用單獨的IaaS來實現(xiàn),可以覆蓋多數(shù)需求。
因此,IaaS并不會消失,只是它的一部分使用場景被PaaS所占據(jù)而已。
曾有人將云計算比作水和電,我們不需要知道它們是從哪兒來的,只要一擰開關(guān),水和電就有了。顯然,PaaS符合這樣的設(shè)想。雖然在以前可能不能實現(xiàn),但是我們相信,在有了Docker之后,PaaS將在云計算家族里占據(jù)更重要的地位。