多云環(huán)境實現(xiàn)容器效益最大化
與虛擬機相比,容器技術(shù)具有大量的優(yōu)勢。我們不僅要了解容器是如何實現(xiàn)多云應用程序可移植性的承諾,而且也要知道其不足之處。
對于那些希望跨云平臺實現(xiàn)應用程序可移植性的企業(yè)來說,容器技術(shù)可以是一個可行的選項。通過精心規(guī)劃和使用合適的工具,IT團隊是可以直面挑戰(zhàn)并在多云環(huán)境中實現(xiàn)容器技術(shù)優(yōu)勢的。
為了了解在多云環(huán)境下實現(xiàn)應用程序可移植性的潛在好處和風險,我們可將它與它的替代解決方案虛擬機進行比較。容器與虛擬機的不同之處在于:應用程序鏡像與這些鏡像中所包含的內(nèi)容,以及生命周期管理等方面。
虛擬機部署要求應用程序鏡像具有操作系統(tǒng)、中間件和應用軟件的完整軟件包。因此,這些鏡像可以在符合應用程需求的硬件功能和資源容量(例如CPU和內(nèi)存)的任何虛擬機上正常運行。只要主機服務(wù)器的虛擬機管理程序與虛擬機兼容,并且應用鏡像所使用的任何都可以在云平臺上使用,那么用戶也就沒有什么重大的執(zhí)行方面問題。
另一方面,容器應用鏡像并不包含操作系統(tǒng)或所有的中間件組件。所以,它們的正常運行主要依賴于容器主機和容器軟件本身。這意味著,如果容器需要跨云供應商的不同應用程序鏡像,那么它們可能會在多云環(huán)境中造成挑戰(zhàn)。
但是,大多數(shù)容器軟件都將應用打包在一個標準容器中間件集合中,然后那個容器就可以跨容器軟件將要運行的任意主機上實現(xiàn)可移植性。只要用戶能夠確保每一臺基礎(chǔ)設(shè)施即服務(wù)(IaaS)主機上都部署了相同可用的操作系統(tǒng)和容器軟件,那么這種可移植性一般來說就會正常發(fā)揮作用。但如果用戶無法確保上述要求,那么容器就根本無法保持可移植性。
對于涉及容器技術(shù)的多云規(guī)劃來說,可選擇都基于相同容器主機操作系統(tǒng)和框架的公共云資源和私有云資源。如果用戶所使用的操作系統(tǒng)或中間件功能并未在所有的操作系統(tǒng)發(fā)布版本中得到支持,那么就必須特別謹慎了。通過使用標準基,用戶可能可以對其容器化的應用實現(xiàn)跨云平臺的遷移而不會出現(xiàn)執(zhí)行問題。否則,用戶則需要避免多云環(huán)境部署或需要遷移至虛擬機。
多云環(huán)境容器的運行效益
盡管存在著一些規(guī)劃方面的挑戰(zhàn),用戶還是能夠在多云部署中實現(xiàn)容器的一些優(yōu)勢。
例如在運行方面,Docker和其他容器系統(tǒng)會包括一個配置和參數(shù)架構(gòu),這個架構(gòu)會將所有工作負載運行所需的組件都打包在一個單一的軟件包中,從而更便于針對特定環(huán)境調(diào)試容器鏡像。在虛擬機系統(tǒng)中,配置和參數(shù)都是根本不在管理范圍內(nèi)的——虛擬機的操作系統(tǒng)、驅(qū)動程序和應用程序都是完全與管理和底層主機隔離的。
因此,運行人員必須為每一家云供應商準備一個不同的鏡像,從而帶來了更多的工作量和導致錯誤的機會。這一點不同可以實現(xiàn)不同云供應商之間的容器可移植性。但是,用戶將需要確保所有特定供應商組件與應用程序配置之間的無關(guān)性,以便***限度利用這個功能。換而言之,容器對特定供應商API或其他功能的依賴程度越高,遷移的難度也越大。
網(wǎng)絡(luò)與多組件應用
網(wǎng)絡(luò)是容器技術(shù)發(fā)揮其優(yōu)越性的另一個領(lǐng)域。多組件應用(例如那些基于微服務(wù)器的應用)都是多云計算環(huán)境中常見的應用,而那些應用組件都必須處于聯(lián)通狀態(tài)。虛擬機沒有特定的網(wǎng)絡(luò)模式;應用在操作系統(tǒng)和中間件的支持下能夠完成相當多的工作 。這就要求運行人員為應用組件建立一個網(wǎng)絡(luò)以便能夠在多云環(huán)境中實現(xiàn)應用程序組件在每一個IaaS平臺上的可用性。不同的是,容器設(shè)定了一個通用的子網(wǎng)模型來實現(xiàn)連接,這種做法更易于管理。
管理人員可以更容易地擴展容器系統(tǒng)并通過容器集群提高其彈性。一個集群為應用組件定義了一系列的托管點,并且它們都是便攜的。但是,在多云環(huán)境中還是需要花一點功夫提高容器組件的可擴展性和和彈性,因為一般情況下集群會共享一個子網(wǎng)。當他們需要跨越云平臺邊界時,這就可能會帶來挑戰(zhàn),因為不同的供應商會使用不同的子網(wǎng)劃分規(guī)則或限制(例如不同節(jié)點之間的負載平衡),而這些規(guī)則或限制會影響集群的功能。
對于擴展規(guī)模和提高跨多云部署中多組件彈性來說,虛擬機通常是更好的選擇。這是因為虛擬機需要更精細的網(wǎng)絡(luò)詳細信息,從而降低遷移至另一家供應商時出現(xiàn)錯誤的風險。
諸如Docker之類的單個容器平臺并不適用于多云環(huán)境中的可移植性,至少不適用于實際的IT運營環(huán)境。但是,諸如Kubernetes之類的開發(fā)運營工具可以解決這一問題,而且這些工具有可能會發(fā)展成為支持虛擬云的概念,或者是可以跨越私有云和多云的一個單一模式。