掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
容器解決了這個問題。正如 Docker 解釋的,“容器鏡像是軟件的一個輕量的、獨(dú)立的、可執(zhí)行的包,包括了執(zhí)行它所需要的所有東西:代碼、運(yùn)行環(huán)境、系統(tǒng)工具、系統(tǒng)庫、設(shè)置?!?/strong>

什么是容器?你需要它們嗎?為什么?在這篇文章中,我們會回答這些基本問題。
但是,為了回答這些問題,我們要提出更多的問題。當(dāng)你開始考慮怎么用容器適配你的工作時,你需要弄清楚:你在哪開發(fā)應(yīng)用?你在哪測試它?你在哪使用它?
你可能在你的筆記本電腦上開發(fā)應(yīng)用,你的電腦上已經(jīng)裝好了所需要的庫文件、擴(kuò)展包、開發(fā)工具和開發(fā)框架。它在一個模擬生產(chǎn)環(huán)境的機(jī)器上進(jìn)行測試,然后被用于生產(chǎn)環(huán)境。問題是這三種環(huán)境不一定都是一樣的;它們沒有同樣的工具、框架和庫。你在你機(jī)器上開發(fā)的應(yīng)用不一定可以在生產(chǎn)環(huán)境中正常工作。容器解決了這個問題。正如 Docker 解釋的,“容器鏡像是軟件的一個輕量的、獨(dú)立的、可執(zhí)行的包,包括了執(zhí)行它所需要的所有東西:代碼、運(yùn)行環(huán)境、系統(tǒng)工具、系統(tǒng)庫、設(shè)置?!?/p>
這代表著,一旦一個應(yīng)用被封裝成容器,那么它所依賴的下層環(huán)境就不再重要了。它可以在任何地方運(yùn)行,甚至在混合云環(huán)境下也可以。這是容器在開發(fā)人員,執(zhí)行團(tuán)隊,甚至 CIO (信息主管)中變得如此流行的原因之一。
現(xiàn)在開發(fā)人員或運(yùn)維人員不再需要關(guān)注他們要使用什么平臺來運(yùn)行應(yīng)用。開發(fā)人員不會再說:“這在我的系統(tǒng)上運(yùn)行得好好的?!?/p>
容器的另一個重大優(yōu)勢是它的隔離性和安全性。因為容器將應(yīng)用和運(yùn)行平臺隔離開了,應(yīng)用以及它周邊的東西都會變得安全。同時,不同的團(tuán)隊可以在一臺設(shè)備上同時運(yùn)行不同的應(yīng)用——對于傳統(tǒng)應(yīng)用來說這是不可以的。
這不是虛擬機(jī)( VM )所提供的嗎?既是,也不是。虛擬機(jī)可以隔離應(yīng)用,但它負(fù)載太高了。在一份文獻(xiàn)中[1],Canonical 比較了容器和虛擬機(jī),結(jié)果是:“容器提供了一種新的虛擬化方法,它有著和傳統(tǒng)虛擬機(jī)幾乎相同的資源隔離水平。但容器的負(fù)載更小,它占用更少的內(nèi)存,更為高效。這意味著可以實(shí)現(xiàn)高密度的虛擬化:一旦安裝,你可以在相同的硬件上運(yùn)行更多應(yīng)用。”另外,虛擬機(jī)啟動前需要更多的準(zhǔn)備,而容器只需幾秒就能運(yùn)行,可以瞬間啟動。
現(xiàn)在,一個龐大的,由供應(yīng)商和解決方案組成的生態(tài)系統(tǒng)已經(jīng)可以讓公司大規(guī)模地運(yùn)用容器,不管是用于編排、監(jiān)控、記錄或者生命周期管理。
為了保證容器可以運(yùn)行在任何地方,容器生態(tài)系統(tǒng)一起成立了開源容器倡議[2](OCI)。這是一個 Linux 基金會的項目,目標(biāo)在于創(chuàng)建關(guān)于容器運(yùn)行環(huán)境和容器鏡像格式這兩個容器核心部分的規(guī)范。這兩個規(guī)范確保容器領(lǐng)域中不會有任何不一致。
在很長的一段時間里,容器是專門用于 Linux 內(nèi)核的,但微軟和 Docker 的密切合作將容器帶到了微軟平臺上?,F(xiàn)在你可以在 Linux、Windows、Azure、AWS、Google 計算引擎、Rackspace,以及大型計算機(jī)上使用容器。甚至 VMware 也正在發(fā)展容器,它的 vSphere Integrated Container[3](VIC)允許 IT 專業(yè)人員在他們平臺的傳統(tǒng)工作負(fù)載上運(yùn)行容器。
容器在開發(fā)人員中因為以上的原因而變得十分流行,同時他們也給 CIO 提供了很大的便利。將工作負(fù)載遷移到容器中的優(yōu)勢正在改變著公司運(yùn)行的模式。
傳統(tǒng)的應(yīng)用有大約十年的生命周期。新版本的發(fā)布需要多年的努力,因為應(yīng)用是依賴于平臺的,有時幾年也不能到達(dá)產(chǎn)品階段。由于這個生命周期,開發(fā)人員會盡可能在應(yīng)用里塞滿各種功能,這會使應(yīng)用變得龐大笨拙,漏洞百出。
這個過程影響了公司內(nèi)部的創(chuàng)新文化。當(dāng)人們幾個月甚至幾年都不能看到他們的創(chuàng)意被實(shí)現(xiàn)時,他們就不再有動力了。
容器解決了這個問題。因為你可以將應(yīng)用切分成更小的微服務(wù)。你可以在幾周或幾天內(nèi)開發(fā)、測試和部署。新特性可以添加成為新的容器。他們可以在測試結(jié)束后以最快的速度被投入生產(chǎn)。公司可以更快轉(zhuǎn)型,超過他們的競爭者。因為想法可以被很快轉(zhuǎn)化為容器并部署,這個方式使得創(chuàng)意爆炸式增長。
容器解決了許多傳統(tǒng)工作負(fù)載所面對的問題。但是,它并不能解決所有 IT 專業(yè)人員面對的問題。它只是眾多解決方案中的一個。在下一篇文章中,我們將會覆蓋一些容器的基本術(shù)語,然后我們會解釋如何開始構(gòu)建容器。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流