Docker容器一夜成名的故事
企業IT對Docker容器充滿信心,某些分析師紛紛猜測Docker容器在下個階段會在服務器整合領域取代虛擬機。
新集裝箱化方式的有趣之處在于其并非新生事物,容器的概念在Unix早期通過使用chroot命令就已經實現了。Linux容器技術是在2008年引入的,Docker軟件最初就是基于Linux容器構建的。這么說來,容器如今突然引發人們興趣,原因何在?
集裝箱化應用共享通用的操作系統內核,實例不需要在各自獨立的操作系統之上運行。應用可以在幾秒鐘之內完成部署,而且比基于 hypervisor的虛擬化使用的資源更少。然而由于應用都依賴于通用的操作系統內核,這種方式僅適用于共享精確操作系統版本的應用。Docker找到了一種解決該限制的方法。
Docker一路領先
Docker 是由一家PaaS公司dotCloud在2013年推出的一個開源項目。Docker依賴于Linux內核特性比如命名空間以及cgroups,以確保資源隔離并將應用與其依賴項一起打包封裝,使應用能夠在不同的Linux操作系統之上運行——支持一定程度的可移植性,允許開發人員使用任何語言編寫應用,并能夠輕松地將應用從筆記本遷移到測試或生產服務器——無論底層使用的是哪種Linux發行版。正是可移植性激起了開發者以及管理員的興趣。
Docker的市場銷售副總裁David Messina說:“在Docker之前,應用或服務的可移植性從未得到過保證。正是由于Docker容器所采用的分離應用限制的方式,幫助我們解決了依賴問題。”
開發人員幾乎馬上開始注意到這種新的方式能夠解決他們所面臨的最大問題之一。在2013年8月發布交互式指南之后的一個月,Docker稱 10000名開發人員進行了試用。在一年之內,紅帽以及亞馬遜增加了對Docker的商業支持——即使Docker主管警告用戶不要用于生產應用也無濟于事。Docker 在2014年6月發布1.0版本時,Docker引擎軟件已經被下載了275萬次。現在這一數字達到了一億次。
451 Research的研究經理Jay Lyman說,分析師認為Docker軟件正合時宜,越來越多的公司投資云計算并處于向DevOps遷移的過程中。
Lyman說:“ Docker提供了一個集成用戶界面,提供了更高級別的簡便性。你不必成為一名Linux內核專家就能夠使用Docker,這拓寬了潛在開發人員的規模。”
Docker 獲得的關注越多,瑕疵也會被放大,而且有可能瞬間變得過于流行,至少這是Cal Leeming的思維。Cal Leeming是一名軟件工程師同時也是Docker批評家,他通過博客以及社交媒體表達了對Docker的關注。在生產環境中試用六個月以后,Cal Leeming說他發現Docker軟件和Docker Hub Registry運行緩慢而且令人失望。
“我可以很清楚地看到,它們承擔著投入資金提高產出的壓力,”Leeming說,“我評論Docker的原因不是要破壞或者影響該項目。但如此多的人正在試圖將Docker視作下一個行業標準。當你看到這種事并且知道解決方案有缺陷,你需要反擊。”
然而,Docker贏得了某些很有名的用戶,包括PayPal、Spotify以及Yelp,這些用戶正在發現該軟件的價值。
Yik Yak是一家總部位于亞特蘭大市的移動應用公司,該公司的CTO Tom Chernetsky說:“我們使用Docker能夠非常快地為不同的開發者構建開發及測試環境,而且不會干涉生產系統。對于快速發展的公司來說,Docker是游戲規則的顛覆者。”
Docker 出乎意料的成功引起了一些容器虛擬化競爭對手的注意,激勵他們開發自己的虛擬容器。在2014年底,CoreOS CEO Alex Polvi介紹了該公司新的容器項目Rocket,作為對Docker“在根本上有缺陷”方式的直接回應。Docker的技術方法并不安全,因為其需要一個中央Docker守護進程。而Rocket依賴于系統級守護進程創建容器。
451 Research的研究經理Jay Lyman說:“容器的官方標準仍有待觀察。我認為我們已經看到的和hypervisor更接近。VMware占據主導地位,應用最為廣泛。但其肯定不是標準,我們可能會看到類似于Dockr和Rocket的其他容器。”