Docker如何將錯綜復雜的Linux代碼轉成開發者的魔法
我們經常發現,一些新技術的出現總會吸引大量的目光。我們都應該知道接下來會發生什么,這些新技術都將成為大大小小公司的關鍵基礎設施。
Hadoop, MongoDB, 和Node.js 已經走過了這條路子了(當然還有其他許多技術)那么接下來在2013年中,最有可能走上這條路子的技術應該就屬Docker容器了。
Docker是基于一個21時間初出現的一個開源項目Linux容器(Linux container),Linux容器(Linux container)是將應用相互獨立地運行在單獨的服務器上。但是一個也叫Docker的公司(原來公司名稱是DotCloud,后改名為 Docker)將Linux容器(Linux container)這項技術,優化得更容易實現而且更加有用,也就是現在的Docker容器。通過Docker,Linux容器(Linux container)發展成為一個優秀的工具,它可以幫助開發者可以輕松地將應用,從測試環境轉移到生產環境中,然后從一個云端轉移到另外一個云端,這些過程甚至都無需修改任何代碼。
在某種程度上,Docker容器有些和虛擬機相似。但是 Docker 容器更加輕量化,而且需要更少的CPU和內存資源。此外,構建容器的代碼對開發者都是可見的,該項目是在Apache開源項目許可之下。
在三月份Docker已經可以自由獲得,許多創業者們已經將產品部署在Docker之上了。有時這被稱為“Docker-as-a-Service” 其中包括 Orchard 和Copper.io’s StackDock。
許多大公司也開始積極地擁抱Docker容器,在早期構建面向公眾的基礎架構即服務(IaaS)的云平臺上,Google聲稱會加入對于操作系統軟件的支持,包括Docker。Red Hat也開始著手加入Docker大軍,在最新的RedHat企業版7的Beta版中加入對Docker的支持。
CenturyLink正在計劃構建下一代云計算的平臺,一個稱為CTL-C的項目和Docker很有可能唱主角。高速增長的IaaS服務提供商DigitakOcean,開發了一個可以在他們的虛擬服務器Droplet中,啟動Docker容器的應用。
VMware,一個虛擬機陣營最強大的公司,已經在自己的產品中提供了對于Docker的支持。其中包括vSphere,這是在物理服務器上運行的虛擬機。此外還包括 vCloud Hybrid Service ,VMware公司的公共云服務,該服務需要連接企業本地的數據中心。盡管該公司對于Docker,好像還沒有發表正式聲明,但是該公司的一位女發言人聲稱他們已經給VentureBeat發了封電子郵件。
最近的例子來自中國。中國搜索公司百度,他們聲稱百度的平臺即服務 (PaaS)產品百度App Engine,已經是基于Docker了。根據上周發布的Docker文章中,百度解釋了他們之所以選擇Docker容器的原因是,百度需要支持多種編程語言和框架。此外還要希望實現一個比傳統沙盒模型更低成本的開發部署服務。
這些小家伙能做些什么
Docker在商業化應用中,不單單只是個開源工具。許多大公司的工程師已經開始探討,如何使Docker適用于公司關鍵的工作流中。
在eBay,,公司的速遞服務,依靠Docker容器開發和測試,以及生產使用的環境即將到來。這是eBay的資深技術人員Ted Dziuba,在7月一次Docker活動講話中提到的。
“一個容器,到處運行” ,他認為,只要開發者了解如何讓容器彼此連接,那么,開發者的工作更加簡單。
在RelateIQ,這是一個提供顧客人際關系的初創公司,他們已經可以在Docker容器中輕松部署豐富的開發環境了。 John Fiedler,公司的IT部門職員,在他最近發表在Docker博客帖子上的兩篇博客中,指出公司將要在生產環境中使用Docker 。
俄國搜索公司 Yandex借助Docker容器,將他們的Paas服務中的應用孤立化,該服務名為Cocaine。Yandex使用Cocaine在滿足內部需求的同時,還作為一個平臺,來向用戶提供自己的瀏覽器的服務。
Rackspace電子郵件服務的開發者,Mailgun和CloudFlare也已經公開討論Docker。雖然開發者非常喜歡容器模型,但是你要明白的是,可是特別對于Docker的版本,還處于開發版本狀態。公司已經開始謹慎地對待Docker了。
僅僅在幾個月之內就發生這么多關于Docker的事情。開發Docker容器的公司,也公開了源碼,好讓開發者可以檢驗其正確性。
Docker容器開始是dotClode公司的內部技術,用了支持提供PaaS服務的。Docker的首席執行官Ben在VentureBeat的采訪中說道。在dotCloud的工程師使用Linux容器的同時,也使用其他開源技術。比如稱為cgroups和namespace的Linux內核特性。這樣的容器不會太過于復雜。
“如果你使用LXC(Linux容器)那么會有一堆特別的語言需要學習”他說道。 “但是我們提供了一個標準的API(程序開發接口),這使得開發者更容易在容器內部署和打包應用。此外也方便系統管理員,可以在一臺服務器上運行10個或100個甚至更多的容器。”
在我們采訪談話結束之后,Golub發了封電子郵件解釋了他們對于該技術的一些需求,同時也介紹了dotCloud以外的廣大用戶的需求:
在運行dotCloud的PaaS期間, 我們有大量的用戶應用在使用我的設備。數量繁多的"stacks"運行在我們的共享宿主機器上。在某種程度上,這簡直就是一個小版本的“地獄矩陣”,那兒你有大量的應用,各種語言,不同的框架。同時在大量不同的服務器之間,還需要高效,穩定和安全的協作。我們通過使用容器技術來管理這么一個環境,也就是這個技術最后發展成為Docker。
在我們運行dotCloud期間, 用戶的需求是很清楚的,他們不僅僅只需要大量的stack環境,而且還有任意使用stack的能力。用戶希望他們的應用不僅能運行在我們的設備上,而且可以在任何設備間輕松轉移,不管設備是共有,還是私有,是虛擬,還是真實,都可以做到靈活轉移并運行他們偏向的操作系統。此外,他們還希望我們能夠整合他們選擇的相關技術,比如:Chef, Puppet, Salt, OpenStack 等等。據我所知沒有任何公司可以提供如此包羅萬象的解決方案,但是,我們可以提供一個能夠滿足上述需求的環境。這就是Docker的源起。 |
現在Docker已經是 “無法想象的成功” Golub描述道。難怪在十月份,公司會改變名稱,用Docker替代原來的公司名dotCloud。
“我覺得我們偶然遇到了一些奇妙的東西,它們可以讓開發者,系統管理員,CIO以及在痛苦"地獄"中的每個人都變得更加輕松 ” Golub解釋道.
該公司不會只提供開源技術,它們仍然提供PaaS服務。但是明年,它們會通過新的途徑,獲取Docker容器的利潤。
“一般來說,容器一處構建,到處運行。因此你需要一個中心服務器來承載Docker容器,首先將容器上傳到中心服務器,然后需要該容器的就會下載到本地” Golub說道。托管服務可以擔此重任,應該最先考慮。管理工具可以幫助管理員跟蹤容器運行的地點,創建者是誰,以及當前性能如何。
公司也希望通過提供專業的服務來帶來利潤,比如為Docker容器使用者提供技術支持,然后收取一定服務費用。也可以通過與其他公司合作,這些公司使用Docker容器來銷售自身服務,這也是一種盈利手段。Golud說,不管容器的突破性進展,能夠帶來多少的現金流,稍微停下一會,回顧自己的努力是非常值得的,特別是承認這一年來公司如此大規模地貢獻應用開發的努力。
VentureBeat正在制作一個排名報道的top 'arms merchants' of the cloud。看一下我們最初的建議和完成我們的調查來幫助我們建立一個有效的排名。在下個月,我們會發表該官方排名。對于填寫調查的朋友,我們會送您一次免費的擴展報道機會。
英文原文:How Docker turned intricate Linux code into developer pixie dust
譯文鏈接:http://www.oschina.net/translate/how-docker-turned-intricate-linux-code-into-developer-pixie-dust