什么是應(yīng)用程序容器和操作系統(tǒng)級(jí)虛擬化
讓我們想象1分鐘,你有常用的虛擬主機(jī)環(huán)境。在這個(gè)環(huán)境中,你必須安全地隔離物理資源在多數(shù)用戶(hù)之間。用戶(hù)必須被隔離在虛擬環(huán)境中,并擁有自己的虛擬空間。
現(xiàn)在,為了管理這些用戶(hù)和各自的資源,你部署了一個(gè)強(qiáng)大的工具,它允許在操作系統(tǒng)的內(nèi)核有多個(gè)用戶(hù)實(shí)例的空間情況下,所有的分離和相互分割。彼此之間相互孤立和隔離。這些用戶(hù)空間實(shí)例也被稱(chēng)之為容器。使容器內(nèi)的用戶(hù)體驗(yàn)到的操作就像在自己專(zhuān)門(mén)的電腦上。系統(tǒng)管理員在整體上對(duì)這些容器有整體的權(quán)利,可以圍繞資源管理設(shè)置策略,容器之間的互用性以及需要的安全性參數(shù)。從哪里,系統(tǒng)管理員還可以管理和監(jiān)控這些容器,甚至圍繞動(dòng)態(tài)負(fù)載平衡的各種節(jié)點(diǎn)之間可以在節(jié)點(diǎn)之間設(shè)置自動(dòng)化策略。
所有這些定義了操作系統(tǒng)層面的虛擬化。
現(xiàn)在,讓我們研究的更深入一點(diǎn)。操作系統(tǒng)層面的虛擬化是一個(gè)優(yōu)秀的工具用于創(chuàng)建有力隔離的多租戶(hù)環(huán)境。然而,然有一些新的挑戰(zhàn)組織正面臨著處理容器和操作系統(tǒng)級(jí)的虛擬化:
- 如果你有非常大量容器,都需要各種各樣虛擬機(jī)資源?
- 如果你需要更好的自動(dòng)化和控制的部署和管理什么?
- 如何創(chuàng)建一個(gè)不僅僅是在linux服務(wù)器上運(yùn)行的容器平臺(tái)?
- 如何部署解決方案?在公有云或者私有云,甚至二者之間的任何地方。
我們來(lái)看一個(gè)具體的例子:應(yīng)用容器制造具有一個(gè)強(qiáng)有力的影響。 就像dockerare已經(jīng)加入新的抽象層面,同時(shí)也自動(dòng)化系統(tǒng)層面的虛擬化平臺(tái)運(yùn)行在linux server。通過(guò)使用cgroup Docker實(shí)施新的各種隔離功能,來(lái)允許隔離的容器跑在各自的linux實(shí)例上??缭酱罅抗?jié)點(diǎn)同大量容器一起工作時(shí),重新啟動(dòng)一個(gè)新的虛擬主機(jī)幫助消除過(guò)載?
所有的這一點(diǎn),重要的是要明白,越來(lái)越多的企業(yè)正在部署基于Linux服務(wù)器工作負(fù)載。這些工作負(fù)載運(yùn)行大型數(shù)據(jù)庫(kù),數(shù)據(jù)挖掘,大數(shù)據(jù)引擎,等等。在這些Linux內(nèi)核,容器使用率也在提高集。這里有一些就像Docker 能夠幫助的方法。
- 大容器控制:應(yīng)用容器能夠幫助抽象操作系統(tǒng)層面的虛擬化進(jìn)程.在提供服務(wù)的時(shí)候,這給系統(tǒng)管理員更大地控制權(quán),更安全以及進(jìn)程限制,甚至更智能資源的隔離。另一個(gè)大的方面是允許和控制如何跨越各種系統(tǒng)共享資源。
- 創(chuàng)建分布式系統(tǒng):像Docker一樣的平臺(tái)允許系統(tǒng)管理員管理容器,容器內(nèi)運(yùn)行的任務(wù),運(yùn)行的服務(wù)和一些其他分布式進(jìn)程,多節(jié)點(diǎn),系統(tǒng)。當(dāng)有一個(gè)大的系統(tǒng)的時(shí)候,Docker可以按需分配資源環(huán)境中,當(dāng)他們需要的時(shí)候,每個(gè)節(jié)點(diǎn)能夠獲取與之所需的相應(yīng)資源.從哪里,你需要將需要大量的規(guī)模和資源的系統(tǒng)整合。如:MongoDB. 正因?yàn)槿绱?,大?shù)據(jù)平臺(tái)現(xiàn)在橫跨許多不同的、高度分散的節(jié)點(diǎn)。這些節(jié)點(diǎn)位于私有的數(shù)據(jù)中心,或者公有云,或者服務(wù)器提供商。你如何把容器與云集成?
- 集成云與超越:在6月份的時(shí)候,Microsoft Azure增加了Docker容器進(jìn)而支持Linux VM,使“Dockerized”Linux應(yīng)用程序的廣泛的生態(tài)系統(tǒng)運(yùn)行在Azure云。更多的云利用,利用Docker的容器系統(tǒng)也可以集成其他平臺(tái)如chef,Puppet,openstack 和 AWS。甚至最近紅帽也宣布將先進(jìn)的linux工具如 systemd 和selinux集成到Docker里。這些工具允許你跨越容器系統(tǒng),除了你自己的數(shù)據(jù)中心。新功能允許你創(chuàng)建自己的混合云生態(tài)系統(tǒng)生成自己的數(shù)據(jù)中心容器,例如,AWS。
Docker以及其他開(kāi)源項(xiàng)目不斷抽象操作系統(tǒng)層面的虛擬化允許基于linux的workload更好的分布。在容器和自動(dòng)化方面,像Docker這樣的技術(shù)是有幫助的。事實(shí)上,作為一種在諸多環(huán)境中運(yùn)行Linux和Windows服務(wù)器重組合的實(shí)現(xiàn)。在Windows Server下的波微軟計(jì)劃集成和支持docker容器,從而在Windows和Linux服務(wù)器上有Docker開(kāi)放的解決方案。如果你是在一個(gè)基于Linux服務(wù)器上容器的解決方案上工作的話,開(kāi)始看看如何應(yīng)用容器可以幫助發(fā)展你的生態(tài)系統(tǒng)。