云領域中出現越來越多的術語是“容器化”。如果你在關注云計算的趨勢,你可能聽說過它,或者至少聽說過最流行的容器平臺Docker。
為了在一臺機器或云實例上運行許多不同的應用程序,容器化正在成為虛擬化一個很流行的備選方案。虛擬化的許多優點它都有,但缺點則很少,使得它在從固定地點演播室轉換到虛擬運作時非常有用。
虛擬化涉及到仿真整個機器,包括硬件和操作系統,而容器化涉及到將一個或多個應用程序和支持文件(在Linux術語中稱為“用戶空間”)封裝到容器中,然后可以運行在一個通用操作系統(通常是Linux)上。

好處
例如,在一個虛擬化的場景中,您可能有一個運行VMWare ESXi超級管理者的服務器,在其上是用于服務X的4個Ubuntu Linux虛擬機,兩個用于服務Y的Red HatLinux虛擬機,以及幾個處理您擁有的任何Windows應用程序的Windows 10服務器虛擬機。
以這種方式使用虛擬化仍然比維護多臺實體機有更大的好處。管理更容易。啟動新服務器或更改個別虛擬機配置比修改硬件要容易得多。虛擬機之間的通信非常快速和高效。與容器化相比,它的缺點是與虛擬化有關的相對較大的開銷。這是因為每個VM都運行一個完整的OS內核,各有自己的專用內存,并通常各占用一定比例的CPU做很多相同的工作。
相比之下,容器化還允許在一臺機器上運行許多不同的孤立服務,但在容器內而不是在全部的虛擬機中。
從概念上講,容器可以被認為是一個非常輕量的、資源高效的VM。一個容器可以容納WheatNet-IP音頻驅動器和音頻播放軟件,而另一個容器可以容納電臺自動播出系統,每個容器完全隔離,但由相同的OS內核運行。
由于每個容器都獨立于其它容器運行,因此可以避免軟件組件之間的意外交互,并消除單點故障。每個應用程序或容器僅通過它們確定的API與其它應用程序或容器通信。
容器虛擬化層非常靈活,可以擴展以滿足任何服務不斷增長的需求。一旦確定在一個或多個容器中運行的服務,就可以在本地機器和公有云之間遷移這些容器化的服務。這使您可以更容易地在區域演播室本地或云提供商(如AWS或Azure等)中擴展服務。
而與虛擬化不同的是,沒有爭奪資源的額外管理開銷,并且容器化平臺甚至能夠在虛擬化平臺上運行。
最后一點對于長期規劃至關重要,因為亞馬遜、微軟及其它公共云提供商已經在它們的云實例上運行了超級管理者軟件。試圖在云提供商的機器實例上添加您自己的VM超級管理者軟件可能效果很差,或者根本不工作。相比之下,容器在幾乎所有云提供商和實例類型上都可以很好地工作。大多數提供商甚至提供了使您可以輕松地管理和協調運行在他們的云中的容器的工具。
從根本上說,容器化和虛擬化兩種異曲同工的方式。將幾個運行獨立服務的容器推送到云上并不能解決諸如互聯網上的通信延遲等問題,盡管如此,它將提供一些額外的安全保護和靈活性,并讓您更高效地分配資源,這正是云的優點所在。