Docker 將改變所有事情

jopen 11年前發布 | 11K 次閱讀 Docker 分布式/云計算/大數據

Docker是一個自動化部署應用的開源引擎,它將任何應用看作為一個可以運行在任何地方的輕量、便攜及自給自足的容器。

是的。但什么是docker呢,你也許會問?讓我體驗一下。

目前為止,如果你需要在生產環境中運行的任何應用,你需要非常小心的配置環境并處理其中的所有依賴關系。

例如,如果你有一個rails應用,它運行在安裝了ruby2.0.0、最新版本的rails和Mysq數據庫的ubuntu服務器上。你需要在處理好所有依賴的基礎上將生產環境配置就緒,并在此之上部署應用。

但當有另一個Rails應用需要使用相同環境時會怎樣呢。你需要安裝另外一個與之前生產環境相同的實例來運行第二個應用。

你可能已經感覺到了docker試圖解決的問題。docker試圖使使存在潛在資源共享的應用互不影響。簡單來說docker試圖使生產應用在共享資源上運行,就像一個桌面用戶在同一系統上運行多個程序那樣。

我認為docker項目將會給服務器層面帶來幾個巨大的影響,下面我會列出。

云平臺

當前云平臺提供按需求伸縮擴張和按使用模型付費的服務(但并不完全)

提供和構建時間

目前云平臺的愿景要求你,必須維護一個絕對低限度的實例,來全天候地服務于所有應用。具體點來說,作為云服務的使用者,即使現在沒有一個用戶在使用你的應用,你也需要維護一個最低功能的實例

云程序之所以要做成這樣,是因為一些云應用的屬性,像程序的提供和構建時間這樣的,其重新啟動的時間至少需要幾分鐘。所以,為了以防萬一,你必須很好地維護一個實例。

這兒也正是Docker優勢所在, docker幾乎不存在應用的提供和構建時間,即使是開始一個docker容器,有時還不到一秒種。docker的這個特性幾乎可以讓使用者完全不需要一個占用著專門處理器,內存和磁盤空間還得全天候運行的實例了。

實例抽象

云服務提供商通過提供一個獨立的虛擬機實例來獲利。使用者根據使用這些實例的時間來付費。這些實例都是彼此隔離的,而且資源都是自己的,因此通過虛擬機實例來收費也是合理的。

在使用容器的情況下, 操作系統被許多容器共享。此外,既然這些容器沒不會一直需要一個專用的處理器和的內存。通過抽象實例付費的方法可以拋棄了,通過你使用的模型來付費的方法出現了。

專業化服務的提供商,比如數據庫托管和圖形加工處理提供商,可以大大受益于這樣的解耦實例。不是通過分配資源這樣的選擇服務多少收費,而是通過實際服務使用量這樣可插拔式的服務來收費。最后說一下,抽象底層機器將有利于衡量服務使用量

按小時支付模式

大多數的云主機提供商要求用戶按小時支付(即使你只用了15分鐘然后就把你的實例殺掉了),但這已經比原來需要購買專用硬件已經好很多了。但是,這仍然不是你只支付你所用的部分。通過像docker一樣的共享資源環境的模式,客戶只需要支付他們所用的CPU周期和內存就可以了。

開發的便利

到目前為止,開發者們被要求維護不同的開發環境和產品環境。這種不一致性不可避免的帶來了問題。Docker承諾將會通過使開發和部署在相同的容器中來消除這些情況,這也將使得開發更加容易并且少一些痛苦。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!