作者 | Swapnil Bhartiya
譯者 | Lonaparte_CHENG (lonaparte) ? ? 共計翻譯:2 篇 貢獻時間:37 天
什麼是容器?你需要它們嗎?為什麼?在這篇文章中,我們會回答這些基本問題。
但是,為了回答這些問題,我們要提出更多的問題。當你開始考慮怎麼用容器適配你的工作時,你需要弄清楚:你在哪開發應用?你在哪測試它?你在哪使用它?
你可能在你的膝上型電腦上開發應用,你的電腦上已經裝好了所需要的庫檔案、擴充套件包、開發工具和開發框架。它在一個模擬生產環境的機器上進行測試,然後被用於生產環境。問題是這三種環境不一定都是一樣的;它們沒有同樣的工具、框架和庫。你在你機器上開發的應用不一定可以在生產環境中正常工作。
容器解決了這個問題。正如 Docker 解釋的,“容器映象是軟體的一個輕量的、獨立的、可執行的包,包括了執行它所需要的所有東西:程式碼、執行環境、系統工具、系統庫、設定。”
這代表著,一旦一個應用被封裝成容器,那麼它所依賴的下層環境就不再重要了。它可以在任何地方執行,甚至在混合雲環境下也可以。這是容器在開發人員,執行團隊,甚至 CIO (資訊主管)中變得如此流行的原因之一。
容器對開發人員的好處
現在開發人員或運維人員不再需要關註他們要使用什麼平臺來執行應用。開發人員不會再說:“這在我的系統上執行得好好的。”
容器的另一個重大優勢是它的隔離性和安全性。因為容器將應用和執行平臺隔離開了,應用以及它周邊的東西都會變得安全。同時,不同的團隊可以在一臺裝置上同時執行不同的應用——對於傳統應用來說這是不可以的。
這不是虛擬機器( VM )所提供的嗎?既是,也不是。虛擬機器可以隔離應用,但它負載太高了。在一份文獻中[1],Canonical 比較了容器和虛擬機器,結果是:“容器提供了一種新的虛擬化方法,它有著和傳統虛擬機器幾乎相同的資源隔離水平。但容器的負載更小,它佔用更少的記憶體,更為高效。這意味著可以實現高密度的虛擬化:一旦安裝,你可以在相同的硬體上執行更多應用。”另外,虛擬機器啟動前需要更多的準備,而容器只需幾秒就能執行,可以瞬間啟動。
容器對應用生態的好處
現在,一個龐大的,由供應商和解決方案組成的生態系統已經可以讓公司大規模地運用容器,不管是用於編排、監控、記錄或者生命週期管理。
為了保證容器可以執行在任何地方,容器生態系統一起成立了開源容器倡議[2](OCI)。這是一個 Linux 基金會的專案,標的在於建立關於容器執行環境和容器映象格式這兩個容器核心部分的規範。這兩個規範確保容器領域中不會有任何不一致。
在很長的一段時間裡,容器是專門用於 Linux 內核的,但微軟和 Docker 的密切合作將容器帶到了微軟平臺上。現在你可以在 Linux、Windows、Azure、AWS、Google 計算引擎、Rackspace,以及大型計算機上使用容器。甚至 VMware 也正在發展容器,它的 vSphere Integrated Container[3](VIC)允許 IT 專業人員在他們平臺的傳統工作負載上執行容器。
容器對 CIO 的好處
容器在開發人員中因為以上的原因而變得十分流行,同時他們也給 CIO 提供了很大的便利。將工作負載遷移到容器中的優勢正在改變著公司執行的樣式。
傳統的應用有大約十年的生命週期。新版本的釋出需要多年的努力,因為應用是依賴於平臺的,有時幾年也不能到達產品階段。由於這個生命週期,開發人員會盡可能在應用裡塞滿各種功能,這會使應用變得龐大笨拙,漏洞百出。
這個過程影響了公司內部的創新文化。當人們幾個月甚至幾年都不能看到他們的創意被實現時,他們就不再有動力了。
容器解決了這個問題。因為你可以將應用切分成更小的微服務。你可以在幾周或幾天內開發、測試和部署。新特性可以新增成為新的容器。他們可以在測試結束後以最快的速度被投入生產。公司可以更快轉型,超過他們的競爭者。因為想法可以被很快轉化為容器並部署,這個方式使得創意爆炸式增長。
結論
容器解決了許多傳統工作負載所面對的問題。但是,它並不能解決所有 IT 專業人員面對的問題。它只是眾多解決方案中的一個。在下一篇文章中,我們將會改寫一些容器的基本術語,然後我們會解釋如何開始構建容器。
透過 Linux 基金會和 edX 提供的免費的 “Introduction to Linux”[4] 課程學習更多 Linux 知識。
via: https://www.linux.com/blog/intro-to-Linux/2017/12/what-are-containers-and-why-should-you-care
作者:wapnil Bhartiya[6] 譯者:lonaparte 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出