摘要 : 一切看起來都是那么的美好,如果后來的事情按照這個設(shè)想進行下去的話,軟件廠商和程序員都會松好幾口氣,那樣我們的頭發(fā)還能和「普通地鐵站」里的人一樣,倔強的飄在風(fēng)里。
2010年,幾個大胡子年輕人在舊金山成立了一家做 PaaS 平臺的公司,起名為「dotCloud」,這個名字讓我想起了微軟的「DotNet」。
dotCloud 主要是基于 PaaS 平臺為開發(fā)者或開發(fā)商提供技術(shù)服務(wù)。什么是 PaaS 呢?PaaS 的全稱是 Platform as a Service,也就是平臺即服務(wù),這個概念在2010年熱的一塌糊涂,直到現(xiàn)在也沒涼下來。舉個例子來說,傳統(tǒng)的軟件產(chǎn)品開發(fā)一般是這樣的:
1、確定產(chǎn)品定位和需求,確定首次迭代的范圍。
2、制作界面原型。
3、技術(shù)選型,然后根據(jù)技術(shù)選型為每個開發(fā)者搭建開發(fā)環(huán)境和技術(shù)棧,例如 Java 環(huán)境、Python 環(huán)境、Ruby 環(huán)境、數(shù)據(jù)庫、中間件等等。
4、構(gòu)建基礎(chǔ)技術(shù)框架和服務(wù),包括日志、存儲、消息、緩存、搜索、數(shù)據(jù)源、集群擴展等等。
5、模擬用戶容量,構(gòu)建測試環(huán)境。
6、開始編寫真正的業(yè)務(wù)代碼,實現(xiàn)產(chǎn)品功能。
7、迭代開發(fā)/測試,生生不息,周而復(fù)始,直到頭發(fā)掉光為止……
如果采用完善的 PaaS 平臺,可以直接忽略3、4、5三個步驟。無論你選擇哪個技術(shù)棧,PaaS 都會為你提供相關(guān)的配套設(shè)置,包括語言環(huán)境、運行環(huán)境、存儲和各種基礎(chǔ)服務(wù)。dotCloud 不僅支持諸如 PHP、MySql 等傳統(tǒng)技術(shù)框架,還包括 Node.js、MongoDB 等新興技術(shù)?;?dotCloud 提供的開發(fā)工具和技術(shù)框架,你可以直接使用 dotCloud 的 SDK 編寫代碼和構(gòu)建業(yè)務(wù)服務(wù),并在聯(lián)網(wǎng)的時候把這些代碼推送到云端,實現(xiàn)自動部署和測試。
dotCloud 把需要花費大量時間的手工工作和重復(fù)勞動抽象成組件和服務(wù),并放到了云端,另外,它還提供了各種監(jiān)控、告警和控制功能,方便開發(fā)者管理和監(jiān)控自己的產(chǎn)品。dotCloud 最初運行在 Amazon 的 EC2 上,不過由于 dotClout 高度的抽象層次,理論上 dotCloud 可以運行在各種各樣的云服務(wù)上面(我猜這就是 Docker 的功勞)。
一切看起來都是那么的美好,如果后來的事情按照這個設(shè)想進行下去的話,軟件廠商和程序員都會松好幾口氣,那樣我們的頭發(fā)還能和「普通地鐵站」里的人一樣,倔強的飄在風(fēng)里。
遺憾的是,我們抵達的是「中關(guān)村地鐵站」!
PaaS 并沒有這樣一直春暖花開下去,事實上給開發(fā)者或程序猿做東西一直是件非常危險的事情,程序猿是一種很奇怪的動物,雖然他們常常分不清楚女友的發(fā)型和衣服款式,但是對開發(fā)環(huán)境和開發(fā)工具卻非常敏感并要求極高,稍不注意就會傷害到他們脆弱的心。所謂文人相輕,程序猿也不例外,對自己人常常是下死手的。所以,PaaS 的概念雖好,但是由于認知、理念和技術(shù)的局限性,市場的接受度并不高,市場的規(guī)模也不夠大。
除此之外,還有巨頭不斷進場攪局,IBM 的藍云,微軟的 Azure,Amazon 的 EC2,Google 的 GAE,VMware 的 Cloud Foundry 等等,可謂強敵環(huán)伺,而且強敵都不差錢,想玩多久就玩多久,想玩多大玩多大。在這種情況下,雖然 dotCloud 在2011年初拿到了1000萬美元的融資,但依然舉步維艱。
再也不能這樣下去了!dotCloud 的創(chuàng)始人 Solomon Hykes 把大伙召集到一起,說,咱們過的不舒服,也不能讓別人痛快了,干脆把我們的核心引擎開源扔到市面上看看,如何?大家面面相覷,最后把拳頭砸到桌面上,就這么辦。
山重水復(fù)疑無路,柳暗花明又一村!
這個基于 Linux Container 技術(shù)的核心管理引擎一經(jīng)開源立刻得到了「業(yè)界」的熱烈吹捧,首當(dāng)其沖的當(dāng)然是程序猿們。看到好的開源產(chǎn)品,這幫平時靜若處子的貨色就像猴子看到賣桃的一樣,一窩蜂沖上去,邊吃邊說好吃。這個容器管理引擎大大降低了容器技術(shù)的使用門檻,輕量級,可移植,虛擬化,語言無關(guān),寫了程序扔上去做成鏡像可以隨處部署和運行,開發(fā)、測試和生產(chǎn)環(huán)境徹底統(tǒng)一了,還能進行資源管控和虛擬化。程序員們流著口水驚呼,太方便了,太方便了。
業(yè)界幾個大佬也沒閑著,看看程序員們歡喜雀躍,再看看自己平臺上笨重的 PaaS,紛紛表示要接入或支持這個引擎。連最傳統(tǒng)的過氣帶頭大哥微軟都信誓旦旦的說,要以Windows 原生的方式運行這個引擎。
這個引擎的名字叫做 Docker,以 Go 語言寫成。
這個結(jié)果是 dotCloud 公司的幾個創(chuàng)始人萬萬沒想到的,他們本來是按照窮小子模式來培育 Docker 的,沒成想直接蹦出一個婀娜多姿的大美女,明眸善睞,顧盼生姿,不僅把各類程序猿迷的神魂顛倒,而且旁邊幾個高樓大廈里的土豪也時不時過來搭訕聊天。哥兒幾個坐不住了,開始合計。
咱本來是想撿點芝麻,結(jié)果懷里掉了個大西瓜,怎么辦?
目光堅定,勇往直前,為了理想繼續(xù)撿芝麻!
你傻呀,別和杭州那個產(chǎn)品經(jīng)理學(xué),這么好的機會砸腦門上,咱就甭躲了,專心培養(yǎng)西瓜吧。
從此以后,他們開始專心研發(fā) Docker 產(chǎn)品和維護相關(guān)社區(qū),過上了幸福而快樂的生活。2013年10月 dotCloud 公司更名為 Docker 股份有限公司,2014年8月 Docker 宣布把平臺即服務(wù)的業(yè)務(wù)「dotCloud」出售給位于德國柏林的平臺即服務(wù)提供商「cloudControl」,dotCloud 的歷史告一段落。同年8月,Docker 內(nèi)部員工 James Turnbull 發(fā)布了面向開發(fā)者、運維和系統(tǒng)管理員的 Docker 電子書《The Docker Book》。
過去12個月,Docker 迅速成長為云計算相關(guān)領(lǐng)域最受歡迎的開源項目,Amazon、Google、IBM、Microsoft、Red Hat 和 VMware 分別表示已經(jīng)支持 Docker 技術(shù)或準(zhǔn)備支持。據(jù)說,有 Linux 的地方,就可以運行 Docker??辞樾?Windows 也快了。
有意栽花花不開,無心插柳柳成蔭!
Docker 這個技術(shù)到底能解決什么問題呢?預(yù)知后事如何,且聽下回分解。