【編者的話】做者主要介紹了本身選擇使用容器的6個主要緣由,這也是容器爲咱們的工做帶來的一些好處。設計模式
我使用容器已經將近三年,最初在一個技術支持團隊工做,主要是幫助客戶解決應用程序中的問題,並提供一些有關運行容器最佳作法的建議。現在我在的團隊,作的主要是容器開發並在咱們本身的OpenShift環境中使用,因爲個人技術支持背景,個人故障排除技巧能幫助我完成這項工做。網絡
我使用容器運行個人大部分任務,這讓個人工做變得比較輕鬆。我能夠在容器中運行任何軟件,不管是用於評估或者用於我本身的網站。一個事實是:容器在不少公司中變得愈來愈廣泛。Google的數據中心天天能夠不停地運轉數千個容器,Netflix每週能夠啓動超過100萬個容器,而許多其餘公司(不管是小型仍是大型)都在生產中使用容器來實現新的可擴展性。 考慮到這一點,我想列出我開始使用容器的六個主要緣由。架構
在個人工做中,我一直認爲KISS原則是最棒的,那爲何不使用簡單的工具來改善個人工做?我說容器很簡單,由於我只須要用兩個或三個命令就能夠在個人機器上運行一個操做系統以及整個軟件棧。因爲這種簡單性,我能夠節省大量運行容器的時間和精力,而不是花時間在建立虛擬機、安裝操做系統和安裝軟件。這樣,我就能夠專一於重要的事情。工具
容器的好處是它們直接運行在操做系統(Linux)層之上,而中間沒有hypervisor層。這使得容器比虛擬機使用的資源更少,我能夠在相同的硬件資源上啓動更多的容器。網站
另外一方面,容器使用的存儲空間也比虛擬機少,這更有吸引力。舉個例子,RHEL 7鏡像大小是193MB,還有一個替代的RHEL版本(咱們稱之爲RHEL Atomic),大小小於80MB。因爲鏡像大小的緣由,容器啓動的引導時間少於任何傳統運行操做系統的方式。雖然在虛擬機或裸機上安裝RHEL的啓動時間大約是1分鐘,但在容器內部運行的時間可能不超過15秒。雲計算
容器是不可變的,這項功能對我來講特別重要。它保證了在我機器上運行的容器能以相同的方式運行在任何一臺機器上。不會再有相似「它在個人機器上能夠工做」這樣的藉口。使用容器能夠避免這種狀況,甚至能夠運行在像AWS,IBM Bluemix,Google Cloud Platform,以及Azure這樣的雲端供應商上,而且得到相同的行爲。操作系統
想一想你要使用容器運行的軟件,我敢肯定若是你找不到所需軟件的鏡像,那麼很快會有人建立它,並在任何存儲庫中推出。大多數公司正在爲他們的軟件建立容器鏡像用以支持在容器上運行,你可使用這些鏡像來建立本身的配置。此外,還有不少有關容器的書籍(包括付費和免費的),這些書籍會教你如何開發,運行容器而且使其更加安全。翻譯
你找到一個能夠運行的鏡像,可是鏡像中缺乏你須要的特殊配置或者一些軟件。使用容器,你能夠擴展示存的鏡像,在容器中加入你須要的東西,而後根據你本身的需求製做一個更適合的鏡像。這樣,準備操做系統運行軟件的時間遠遠少於任何其餘方法。即便使用DevOps工具,如Puppet,Chef或者其餘,準備運行軟件環境的時間甚至超過運行一個新的容器。設計
雲計算是下一代計算,你能夠按需在你的環境中添加資源,並收集有關它們的運行指標。容器在設計中將全部這些要求以及更多的內容帶入雲計算,由於它們在出現任何問題時很容易進行更換。你沒必要爲丟失一個容器而擔憂,由於最早進的雲計算架構已經爲你管理容器,並啓動了一個新的容器來替代沒有響應的容器。
原文連接:Why I Started Using Containers(翻譯:肖遠昊)